Предотвратить временную защиту от копирования?
У меня есть пробное программное обеспечение, которое я хочу распространять среди клиентов. Я хочу, чтобы пробное программное обеспечение перестало работать через 30 дней после установки.
Простая проверка системной даты в программном обеспечении является наиболее простым способом достижения этого, но неужели клиент не может легко обойти эту защиту, изменив системное время / дату в Windows?
Есть ли лучший способ выполнить то, что я хочу?
6 ответов
Лучше всего не предупреждать их, и через 30 дней (не забудьте проверить оба пути, в противном случае они могут установить часы в будущем, установить приложение и вернуть часы на сегодняшний день), он перестанет работать, а также заблокировать приложение после того, как период следа истек, поэтому, даже если они сбрасывают часы, они все равно должны быть заблокированы
Я бы проверил время изменения самого последнего измененного файла (возможно, есть несколько общих путей, которые часто обновляются, но вы можете просто выполнить поиск в файловой системе).
Кроме того, вы можете уменьшить "оставшееся время" (хранящееся в каком-то секретном месте) на количество времени, которое приложение выполняло для своего сеанса. Когда он достигает 0, они сделали. Вы также можете обнаружить, что часы сдвинулись назад от последнего увиденного значения в любом сеансе, и оштрафовать их, удалив, например, целый день.
Кто ваши клиенты? Если это для широкой публики, и это довольно узкая аудитория, я думаю, что вы можете придерживаться подхода, основанного на времени. Я согласен, что пользователям надоело настраивать свои системные часы и просто покупать ваше программное обеспечение. Но если это действительно популярное программное обеспечение или оно предназначено для разработчиков, то да, вам, вероятно, стоит усилить пробную защиту, потому что она будет взломана довольно быстро.
Да, они могут возиться с системными часами. Но постепенно это становится все более и более неудобным, чем дальше он выходит за пределы конечной даты пробного периода. Они откажутся от использования вашего программного обеспечения, прежде чем погрузиться в часы.
Или, что еще более вероятно, они взломают вашу схему защиты, так что это даст им неограниченное время для ее использования.
Я бы посоветовал периодически перезванивать вашему программному обеспечению на ваш сервер; пользователь может играть с системными часами все, что он хочет, но вы управляете часами на своем сервере. Если сервер знает, когда была выдана лицензия, он может соответствующим образом ответить на запрос клиента независимо от состояния часов клиента.
Отказ от ответственности и Plug: компания, которую я соучредил, производит решение для лицензирования OffByZero Cobalt. Это готовое решение для защиты программного обеспечения, специально предназначенное для ограниченного по времени сценария, о котором вы упомянули.
Как уже отмечалось, временное лицензирование довольно легко обойти. Вы можете перепрыгнуть через некоторые обручи, чтобы люди не сбрасывали свои системные часы. Вы можете связаться с сертифицированным сервером времени и настроить свои внутренние часы таким образом, но это не займет много времени, чтобы взломать это, если они смогут получить доступ к вашему коду. Самый простой способ - просто найти проверку времени в списке asm и разветвляться вокруг него.
Мы работали над этим годами (раскрытие: я работаю в компании по защите от копирования (www.wibu.us)) и используем комбинацию внутренних часов на чипе смарт-карты и сертифицированных серверов времени, а также некоторый код, чтобы убедиться, что вы никогда не сможете установить время назад (код всегда зашифрован, поэтому он не может быть исправлен). У нас также есть программное решение, которое использует внутренние часы, но не на чипе смарт-карты. У всех мер безопасности есть недостатки; найти правильный компромисс для вашего рынка, цены и т. д.