nobodynoone
@nobodynoone

Какие есть методы защиты приложения ограничением по времени?

Какие на данный момент есть актуальные методы защиты прикладных программ (с++) методом ограничения работы по времени? Да, я прекрасно понимаю, что все можно сломать, но тем не менее хотелось бы все же реализовать хоть какую то защиту в этом плане.
  • Вопрос задан
  • 692 просмотра
Пригласить эксперта
Ответы на вопрос 3
На стойкость не претендую, решение из собственного опыта:
1) организовываем защищенное хранилище (напр, зашифрованный файл), который нельзя просто так прочесть и поменять - в нем мы будем хранить, сколько времени программе осталось работать, т.е. временной ресурс;
2) придумываем, как этот файл генерировать - создавать самой программой при отстутствии этого файла - плохая идея, т.к. юзер просто удалит его и триал сбросится. Неплохой вариант - генерить на сервере, сделать эдакий "запрос триальной лицензии"; после установки лицензия запрашивается, далее с этим файлом работает сама программа;
3) при каждом запуске файл читаем (с расшифровкой), смотрим сколько лицензированного времени осталось, ставим таймер (системное время использовать нельзя!), каждые N секунд вычитаем лицензированное время, обновляем файл. 30-60 секунд обычно вполне достаточно. Погрешность счета времени соотв. тоже будет до N секунд. Теоретически, каждые N-1 секунду прогу можно убивать и перезапускать, и тогда она не будет успевать вычитать счетчик времени, но я сомневаюсь, что в таких условиях программой вообще можно будет пользоваться.
Довольно нелохой вариант, если конечно на взлом вашего софта не претендует толпа людей, умеющих дебажить в Olly с закрытыми глазами.
А, ну да, и упаковщик какой-нибудь возьмите - еще немного усложните жизнь (хотя не сильно конечно).
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Преинсталлер для скачивания с отправкой информации о системе на сервер и последующей периодической проверкой и обновлением ключа. (ключ = файл лицензии для триал)

Перед отдачей файла - компилируйте со "стартовым" ключом, устанавливая триал.
Период запуска приложения без подключения к интернету - ограничить 10 днями.
Каждый запуск при наличии интернета - обновляем ключ.
Ответ написан
GavriKos
@GavriKos
Вопрос честно непонятен. Вам какую то библиотеку надо посоветовать, или алгоритм реализации, или что?
Я бы вообще советовал через сервер делать все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы