Включение условно-бесплатных ограничений в программное обеспечение C++
Я хочу внедрить свое программное обеспечение на условно-бесплатной основе, чтобы пользователю был предоставлен максимальный испытательный срок (скажем) 30 дней, чтобы опробовать программное обеспечение. При покупке я намерен дать пользователю случайно сгенерированный ключ, который при вводе снова активирует программное обеспечение.
Я никогда не шел по этому пути раньше, поэтому любые советы или отзывы или указатели на "стандартные" способы, как это делается, будут высоко цениться.
Я не ожидаю, что пользователи обманывают, изменяя системную дату или что-то подобное, хотя это, вероятно, стоит рассмотреть. Извиняюсь, если эта тема появилась раньше.
5 ответов
Что касается случайно сгенерированного ключа, как вы будете проверять, является ли ключ действительным или если ключ является поддельным, если он действительно случайный? Взгляните на статью " Внедрение системы верификации частичных серийных номеров", так как она довольно хорошая и ее легко реализовать на любом языке.
Что касается временных испытаний, в качестве базового решения было бы сравнить время создания ваших основных исполняемых файлов с текущим системным временем и учесть разницу. Это предполагает, что ваш установщик устанавливает время создания файлов во время установки, а не сохраняет время, которое вы скомпилировали!:)
Также следите за радикально меняющимся временем, если текущая дата магически меньше даты установки и т. Д.
Один из способов обойти этот тип datelock - это изменить дату до того, как вы установите ее в будущем. Поэтому вы должны проверить, что сегодняшняя дата не меньше даты установки.
Если ваше программное обеспечение действительно полезно, вы обязательно найдете взломанные копии на P2P, прежде чем увидите свой первый заказ. Это произойдет независимо от того, насколько сложным является код реализации лицензии, который вы собираетесь реализовать.
Тем не менее, просто сохраните дату первого запуска где-нибудь (может быть, реестр, если в Windows) и через 30 дней откажитесь от запуска, или просто откройте окно напоминания.
Не беспокойтесь о мошенниках, они найдут способ обойти ваши ограничения, несмотря ни на что. Беспокойся о своих честных клиентах и старайся не усложнять их жизнь.
Эрик Синк написал больше об этом здесь (раздел 4).
При первом запуске вы можете сохранить актуальную дату где-нибудь.
При каждом следующем запуске вы ищете сохраненную дату, если она существует, вы читаете ее, а если прошло более 30 дней после первого запуска, вы останавливаете программу.
Пожалуйста, посмотрите эту библиотеку.
Описание:
Конвертировать любое приложение в условно-бесплатное программное обеспечение. Генерация серийных номеров, чтобы зарегистрировать его. Библиотека функций, предлагающая гибкую систему блокировки с надежным шифрованием. Легко реализовать. Поддержка VB, C++, Delphi, других языков.