Задать вопрос
@prog199708

Как определить, что пользователь использует официальную версию клиента программы?

Надо определить, что пользователь использует официальную версию клиента, а не посторонние копии, как это можно сделать
  • Вопрос задан
  • 13512 просмотров
Подписаться 2 Простой 5 комментариев
Ответ пользователя Даниль Сафин К ответам на вопрос (7)
@Le0Wolf
C# Developper
Необходимо защитить от взлома или просто достаточно просто проверки лицензии?
Если первое - то это дорого и долго и один фиг 100% защиту создать невозможно. Если второе, то тупо создать какую то структуру, которая содержит всю информацию о лицензии, потом сериализовать ее в бинарный формат, после чего сформировать подпись, используя закрытый ключ, подпись тоже сериализовать и добавить к основному тексту. Полученный массив байт преобразовать в base64 или что то подобное - это будет лицензионный ключ. В приложение зашить открытый ключ и с помощью него проверять корректность подписи. Если подпись корректна, то можно проверять и тело ключа, например, на предмет окончания срока его действия. Примерно так работает абсолютное большинство проверок лицензии,но тут есть и минус - простой подменой публичного ключа в коде программы пользователь может заставить ее работать со своим ключём (примерно так кейгены работают - они патчат приложение и потом генерируют ключ, который будет валиден для нового открытого ключа). Задачу взлома можно усложнить, шифруя публичный ключ, разделяя его на блоки, используя всякую математику и пр. Но это уже выходит за рамки "простого" вопроса
Ответ написан
Комментировать