Я читаю между строк. Я думаю, вы хотите сделать "Пробную версию программного обеспечения". Тем более, что вы упомянули «взлом».
Лучшее несетевое решение, которое я могу представить для дат «пробного периода», — это не беспокоиться об абсолютной дате, а вместо этого реализовать обратный отсчет дня. Даже если вы проиграли в течение нескольких дней из-за того, что пользователь изменил дату и время CMOS/BIOS, вы все равно можете сохранить дату, время и количество системных тиков при последней загрузке и при следующей загрузке. вверх, если кажется, что дата сделала что-то иное, чем продвинулась вперед на небольшой промежуток времени, который меньше дня, затем уменьшите свой счетчик «дни, оставшиеся в вашей пробной версии». Вы также можете подсчитывать часы, в течение которых приложение было активным, и отсчитывать их тоже. Кто-то может продлить срок действия пробной версии на неопределенный срок, удерживая ваше приложение вдали от сети и откатывая часы, но если вы запускаете службу, которая всегда работает в фоновом режиме, вы можете поймать откат часов и деактивировать после того, как ваша фоновая служба обнаружит некоторое количество (скажем, три) отката часов.
Вероятно, я мог бы придумать способ довольно точно зафиксировать часы активности, используемые в приложении, намного точнее, чем дата.
На самом деле, если вы рассматриваете «пробную версию» программного обеспечения, почему бы просто не предоставить пользователю «xx часов пробного времени» вместо «30 дней». Если прошло 30 дней, а ваш пользователь не возился с датой/временем, чтобы продлить его, он может быть настолько раздражен тем, что срок действия вашей пробной версии истек до того, как он провел какое-либо время с вашим программным обеспечением, что вы можете потерять продажу.
Google Sketch-up Pro использует технику «обратного отсчета часов», и я обнаружил, что оценить ее намного проще.
Я думаю, что этот ответ на другой вопрос - лучший из тех, что я видел: Как лучше всего создать программу, которая работает только в предопределенный пробный период (оценочный период)?
Настоящий ответ таков: «Все, что вы можете сделать, есть много людей, которые попытаются победить и взломать это». Шутки в сторону. Сколько времени вы хотите потратить на шифрование и обфускацию? Так ты не заработаешь.
person
Warren P
schedule
19.07.2010