Включение условно-бесплатных ограничений в программное обеспечение C ++ - PullRequest
11 голосов
/ 06 октября 2008

Я хочу внедрить свое программное обеспечение на условно-бесплатной основе, чтобы пользователь максимальный испытательный срок (скажем) 30 дней, в течение которого можно опробовать программное обеспечение. При покупке я намерен дать пользователю случайно сгенерированный ключ, который при вводе снова включает программное обеспечение.

Я никогда не шел по этому пути раньше, поэтому любые советы, отзывы или указатели на «стандартные» способы, как это делается, были бы весьма полезны.

Я не ожидаю, что пользователи обманывают, изменяя системную дату или что-то подобное, хотя это, вероятно, стоит рассмотреть. Извиняюсь, если эта тема появилась раньше.

Ответы [ 5 ]

5 голосов
/ 06 октября 2008

Что касается случайно сгенерированного ключа, как вы будете проверять, является ли ключ действительным или если он является поддельным, если он действительно случайный? Взгляните на статью " Внедрение системы частичного подтверждения серийного номера ", так как она довольно хорошая и ее легко реализовать на любом языке.

Что касается временных испытаний, в качестве основного решения было бы сравнить время создания ваших основных исполняемых файлов с текущим системным временем и учесть разницу. Это предполагает, что ваш установщик устанавливает время создания файлов во время установки, а не сохраняет время, которое вы скомпилировали! :)

3 голосов
/ 06 октября 2008

Также следите за радикальным изменением времени, если текущая дата магически меньше даты установки и т. Д.

Один из способов обойти этот тип datelock - это изменить дату до того, как вы установите ее, чтобы быть годами в будущем. Поэтому вам следует проверить, что сегодняшняя дата не меньше даты установки.

3 голосов
/ 06 октября 2008

Если ваше программное обеспечение действительно полезно, вы обязательно найдете взломанные копии на P2P, прежде чем увидите свой первый заказ. Это произойдет независимо от того, насколько сложным является код реализации лицензии, который вы собираетесь реализовать.

Тем не менее, просто сохраните дату первого запуска где-нибудь (может быть, реестр, если в Windows) и через 30 дней откажитесь от запуска, или просто откройте окно напоминания.

Не беспокойтесь о мошенниках, они найдут способ обойти ваши ограничения, несмотря ни на что. Беспокойся о своих честных клиентах и ​​старайся не делать их жизнь тяжелее.

Эрик Синк написал больше об этом здесь (раздел 4) .

1 голос
/ 06 октября 2008

Пожалуйста, посмотрите эту библиотеку .

Описание:

Конвертируйте любое приложение в условно бесплатное программное обеспечение. Генерация серийных номеров, чтобы зарегистрировать его. Библиотека функций, предлагающая гибкую систему блокировки с надежным шифрованием. Легко реализовать. Поддержка VB, C ++, Delphi, других языков.

1 голос
/ 06 октября 2008

При первом запуске вы можете хранить актуальную дату где-то.
При каждом следующем запуске вы ищите сохраненную дату, если она существует, вы читаете ее, а если прошло более 30 дней после первого запуска, вы останавливаете программу.

...