Я хочу предоставить свой продукт автономному приложению CRM для клиентов, которое написано в C++
на испытательный срок 30 дней. В настоящее время я делаю зашифрованный файл, в котором записана текущая дата, дата установки и некоторые вычисления, чтобы проверить эту разницу, если >30
— программное обеспечение не будет работать.
НО, что если клиент не меняет системную дату, я имею в виду, если он отключает синхронизацию времени? как я могу получить лицензию на работу в течение пробных дней?
Будут ли синхронизироваться часы, даже если дата неактивна?
Пожалуйста, дайте мне знать.
Как и с любой другой проблемой безопасности, вопрос не в том, возможно ли быть абсолютно безопасным (потому что это не так), а скорее в том, насколько безопасно.
Даже если вы сможете найти способ убедиться в правильности времени, что помешает пользователю удалить файл или изменить его? Или удалить пробную версию программного обеспечения, а затем снова установить его? Или декомпилировать его и убрать проверку файла?
КСТАТИ, Помимо программной архитектуры имеет обзор различных подходов к пробному и демонстрационному программному обеспечению. По сути, это отвечает на оригинальный вопрос Как на самом деле работает пробная версия программного обеспечения или антивируса?
Вы можете попробовать сохранить дату и время последнего запуска. Если вы обнаружите, что время было отменено (ваш последний запуск был в будущем), то вы четко знаете, что пользователь обманывает и может отказаться запускаться с сообщением об ошибке.
Это, однако, должно быть сделано осторожно. Время должно храниться в формате UTC, чтобы избежать всех странных вещей, которые случаются, когда наступает летнее время. А обнаружение перемотки времени должно иметь достаточный порог, чтобы дать пользователю некоторую свободу в настройке часов по уважительным причинам.