Я хотел бы добавить систему лицензирования в приложение. Например: пользователь покупает лицензию на 1 месяц и после истечения этой программы (стиль Kinda Anti-Virus?).
Проблема в том, что приложение должно работать в системах, которые могут или не могут быть подключены к интернету, поэтому как защитить от изменений даты и времени?
Сохранение времени запуска приложения и закрытия в зашифрованном файле не будет работать, поскольку дата может быть изменена (при продолжительности работы программы 8 часов в день, можно будет продлить лицензию почти до 300% в идеальном случае - изменить время закрытия приложения время + 1 секунда до запуска программы).
Другой вопрос - есть ли способ защитить от программного обеспечения, такого как http://en.wikipedia.org/wiki/Deep_Freeze_(software)? (возможно, сканирование драйверов?)
EDIT:
В настоящее время я использую смарт-карту для хранения информации о лицензировании и буду использовать виртуализатор кода для критических функций (я знаю, что делать контрольные точки при вызовах API и проверять переданные данные - не нужно скрывать эти данные, просто чтобы обеспечить, чтобы все было запланировано)