2014-09-16 2 views
0

Я создал систему активации, которая работает достаточно хорошо. Я подхожу прямо к делу. Я вставляю дату истечения срока действия программы в реестр через систему шифрования и каждый раз, когда я проверяю, когда программное обеспечение, если дата ПК соответствует записи. Система работает только в том случае, если пользователь отправляет данные о дате на ПК для получения дневной пробной версии без ограничений. Это, очевидно, повредит всю систему. Вы можете предотвратить это? Может быть, сохранить дату ПК в программе и проверить, не вмешался ли пользователь? Я полагаюсь на решения ваших экспертов по этой чувствительной теме.Проверьте, была ли изменена дата в VB.NET

Спасибо и извините за мой плохой английский.

+0

один из способов получения фактической даты - запрос сервера NIST; если вы используете шифрование, это означает, что все эти шаги находятся в вашем коде, и это довольно тривиально для предотвращения. – Plutonix

ответ

0

Лучшее, что я придумал, это иметь второй параметр реестра, в котором хранится дата и время локального компьютера. Я обновляю это, когда приложение запускается и закрывается.

Затем, когда вы проверяете свой параметр реестра на дату истечения срока действия, вы также проверяете эту другую дату, чтобы убедиться, что она старше текущей даты компьютера. Если нет, они подделывают время, и я их закрываю.

Если они умны и знают, что вы делаете (маловероятно), они могут продлить пробный период, переместив время на свой компьютер обратно после последнего закрытия. Это будет работать некоторое время, но в итоге у них не хватит времени.

PROs: уменьшает вероятность фальсификации, не требует подключения к Интернету

МИНУСЫ: Не работать с виртуальными машинами, которые имеют UNDO дисков, пользователь может размер испытательный срок, но не долго, требует написания в реестр.

ПРИМЕЧАНИЯ: Убедитесь, что вы всегда сохраняете время UTC в случае, если летнее время позволяет вернуться назад.

Вы должны убедиться, что в вашем установочном пакете создан первоначальный параметр реестра. Таким образом, если параметр реестра НЕ существует, вы можете предположить, что они попытались удалить его, чтобы вмешаться в пробный период - заблокировать их. В конце концов, если вы сделаете первоначальный параметр реестра в своем приложении, как вы узнаете, что это первый раз, когда он запущен, или тысячный, и они просто продолжают удалять записи в реестре?

+0

Можете ли вы показать мне свое решение? Меня это интересует. Вы можете связаться со мной по электронной почте на [email protected] спасибо – johsns

+0

Не совсем. Я больше не работаю для этой компании, поэтому у меня нет кода. Моя нынешняя компания не заботится о таких вещах. – Steve

1

Существует причина, по которой Office и Photoshop переносятся в облако, и множество новых игр требуют от пользователя всегда быть в сети, чтобы играть в нее. На самом деле нет надежного способа предотвратить использование пользователем какой-либо защиты на стороне клиента, которую вы могли бы реализовать. Даже если у вас есть приложение для набора номера, достаточно мотивированный пользователь может перенаправить этот трафик на свой собственный компьютер и фальсифицировать успешную авторизацию или исправить ваш код, чтобы не пытаться авторизации в первую очередь.

Вы вступаете в гонку вооружений здесь, пытаясь создать систему активации. Вам нужно решить, насколько вы готовы пойти, чтобы предотвратить несанкционированное использование вашего приложения. Чем сложнее вы это делаете, тем более вероятно, что он сломается, и тем более вероятно, что ваше приложение неправильно предотвратит использование законным пользователем.

Смежные вопросы