Лучший способ распространения ознакомительной версии любого программного обеспечения? - PullRequest
6 голосов
/ 20 марта 2011

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

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

Кто-нибудь может мне подсказать, как я могу распространять свое программное обеспечение, не используя системное время и интернет?

Также возможно ли ограничить количество компьютеров, на которых он может быть установлен?

Ответы [ 4 ]

3 голосов
/ 20 марта 2011

Без внешней поддержки это невозможно .

Обходящий пользователь просто установит ваше программное обеспечение на виртуальную машину, которая настроена в режиме копирования при записи (поэтому все изменения в ВМ идут в отдельный образ диска), и при каждом запуске ВМ система ВМ Часы будут установлены на определенную дату. Этот образ виртуальной машины может быть передан на столько компьютеров, сколько требуется, и системные часы виртуальных машин всегда будут начинаться с одной и той же даты. Кроме того, любые эффекты времени выполнения в ОС, такие как установленный счетчик времени выполнения, будут сбрасываться при каждом новом запуске ВМ.

Единственный способ эффективно ограничить использование вашего программного обеспечения - это привязать его к какому-либо внешнему источнику данных. Либо через Интернет, либо отправив его с аппаратным ключом с собственными часами; Этот ключ также может быть сетевым устройством малого форм-фактора, раздающим лицензии, поэтому один ключ может лицензировать несколько компьютеров.

Однако вы не можете сделать это только с помощью программного обеспечения.

1 голос
/ 20 марта 2011

Использование даты для этого никогда не безопасно, так как пользователь может манипулировать этим. Но другой способ - ограничить количество раз, когда приложение может быть запущено. Используйте счетчик, который вы можете хранить в файле или реестре. Этот счетчик должен быть зашифрован. Если значение счетчика слишком велико, отсутствует или недействительно (для этого можно использовать контрольную сумму), период оценки закончен.

0 голосов
/ 25 марта 2011

Вы, безусловно, можете сделать это с помощью внешней системы лицензирования (отказ от ответственности: я работаю на производителя одной такой системы).И это может быть непробиваемым, но это не бесплатно.

Если вы хотите свернуть свой собственный, вы можете сохранить зашифрованную функцию даты и времени - возможно, в реестре - затем сравнить эту дату с датой sys/время.Установите значение сохраненной даты при запуске приложения, если системная дата позже, чем сохраненная дата.Если системная дата более ранняя, чем сохраненная дата, рассмотрите возможность блокировки приложения, пока пользователь не свяжется с вами, чтобы объяснить, почему они устанавливают свою системную дату обратно.На многих уровнях это небезопасно, но лучше, чем просто смотреть только системную дату.Альтернативой является выполнение http-вызова на известный сертифицированный сервер времени и сравнение системной даты и даты установки с этим сервером.

0 голосов
/ 20 марта 2011

Разве это не классическое ограничение лицензирования программного обеспечения? Я не знаю, как вы могли бы ограничить оценку независимо от системного времени, если в приложении, которое вы пропустили, отсутствует какой-либо аспект, связанный с датой.

Насколько ограничено количество компьютеров:

Я не знаю, позволит ли Microsoft вам это сделать, но вы могли бы создать систему, в которой клиент вводит ключ активации своего Microsoft, а затем вы возвращаете какой-то ключ приложения для конкретного приложения.

...