Как установить дату окончания пробной установки моего программного обеспечения? - PullRequest
13 голосов
/ 30 марта 2011

Мне нужно предложить пробный период для моего программного обеспечения.У меня есть 64-битное приложение C #, которое использует 64-битные многопроцессорные библиотеки DLL поддержки.Другие используемые утилиты написаны на C ++ (exes и dll).Я должен быть в состоянии зашифровать код C #, настроить программное обеспечение для запуска только на определенном компьютере и установить дату истечения срока действия, которая не может быть сорвана путем сброса часов машины.

Я оценил несколько открытых исходных кодов иРешения COTS: система лицензирования Infralution, Protector и ExeShield - это лишь некоторые из них.Ни один из них не удовлетворяет всем моим ограничениям.

Кто-нибудь знает о всеобъемлющем решении, которое я должен рассмотреть?Или мне нужно выполнить некоторые операции с реестром и применить его с помощью пользовательского кода?

Ответы [ 5 ]

36 голосов
/ 30 марта 2011

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

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

Случайное пиратство может быть обработано тем, что сводится к ласковым напоминаниям - ключам активации, временным ограничениям и т. Д. Умышленное пиратство, с другой стороны, по сути невозможно предотвратить. Как скажут Sony, Apple, Microsoft, Nintendo и ряд других компаний, даже если у вас есть преимущество в управлении аппаратным и программным обеспечением, ваша схема защиты будет нарушена. И тот, кто его нарушает, скорее всего сделает это ради увлекательной задачи, так же как и из-за желания получить бесплатное программное обеспечение. Таким образом, для определенной демографической группы усиление защиты не обескураживает, а наоборот.

Между тем все, что вы делаете для того, чтобы попытаться добиться надежной защиты, заставляет легитимных пользователей расти. Может быть, поездка для обнаружения Gerrymander с системными часами была начата, потому что они изменили часовые пояса. Или, может быть, им пришлось заменить плохой жесткий диск или процессор или что-то в этом роде, и это отключило механизм клонирования системы. Или, возможно, Microsoft изменяет настройки безопасности Windows по умолчанию таким образом, что Windows выдает беспорядок предупреждений UAC, когда ваше приложение используется, потому что оно не дружелюбно относится к некоторому трюку, который вы использовали, чтобы скрыть файл, в котором хранятся данные лицензирования. На работе мы используем коммерческое решение, и мы обнаружили, что их механизм защиты может сработать таким образом, что, благодаря ошибке в программном обеспечении, может привести к повреждению данных лицензии, таким образом блокируя пользователя из программы. Из-за способа, которым их система хранит эти данные, это неустранимая ситуация - клиенту буквально приходится выбирать между тем, чтобы больше не использовать это программное обеспечение на этом компьютере, и стирать жесткий диск. Да, это случилось несколько раз. Да, мы потеряли много потенциального дохода из-за этого. Да, я испытываю тошноту думать о том ущербе, который он причиняет, потому что мы полагаемся в первую очередь на сарафанное радио, и оно порождает много дурных слов. Короче говоря, наивная паранойя о пиратстве ранних лет, вероятно, стоила мне немало отпусков в Карибском море.

И хуже всего то, что это проблема только для законных пользователей. Взломщики могут легко - мучительно легко - обойти это с помощью - если дело доходит до последних курортов - отладчика и декомпилятора. Если программное обеспечение находится на устройстве, которым владеет конечный пользователь, вы можете также начать думать, как будто ваше программное обеспечение уже взломано. Дело в том, что существует индустрия коттеджей, которая построена вокруг идеи людей, взламывающих программное обеспечение, которым они законно владеют, просто чтобы избежать раздражения механизмов защиты программного обеспечения. Они дадут вам деньги, но они все равно взломают программное обеспечение, потому что ваша защита от копирования просто раздражает, и ее так просто обойти. Альтернатива - и это тот путь, по которому я пошел - просто пойти и купить другое программное обеспечение, которое менее раздражает, или вместо этого использовать бесплатное программное обеспечение.

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

1 голос
/ 02 февраля 2012

Как его можно хранить таким образом, чтобы его нельзя было восстановить?Записи реестра и файлы могут быть удалены.Альтернативные потоки данных не копируются в zip-файл, поэтому, если вам известен файл, содержащий ADS, который содержит данные установки программного обеспечения (который используется для ссылки на текущее время для расчета дней с момента установки), выможно просто сжать его в zip-файл, затем распаковать его снова и пока до ссылки на дату установки.Сохраните его в виде необработанных данных на жестком диске (на него нет ссылки в таблице размещения файлов в виде файла), и он будет перезаписан при сохранении файла в этом месте на жестком диске.

Так что я буквально не вижуспособ сделать невозможным удаление даты пробной установки для защиты от копирования.Это просто невозможно сделать.

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

Почему бы просто не использовать время из интернет-источника, такого как www.time.gov?Вы можете сложить в приложении C ++ Qt и использовать их библиотеку QtWebKit, http://doc.qt.nokia.com/4.7/qtwebkit.html,, чтобы загрузить время.(На самом деле я никогда не делал ничего подобного, но, глядя на документацию, это выглядит многообещающе.) При первом запуске программы вы создаете небольшой файл с отметкой времени или, для еще большей безопасности, записываете отметку времени вdll программы и перекомпилируйте его.Это проверяется каждый раз при запуске программы.Если вы не подключены к Интернету, вы предупреждаете их несколько раз, но в конечном итоге прекращаете загрузку.

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

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

Используйте http://xheo.com/ продукты для этого. Они предлагают обфискатор кода, который отлично защищает код, и платформу лицензирования, которая может делать все, что вы когда-либо могли себе представить. они предлагают версию, которая может быть скомпилирована в ваш код.

Шифрование - http://xheo.com/products/code-protection Лицензия - http://xheo.com/products/copy-protection

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

Возможно, лучшая идея состоит в том, чтобы бесплатно раздать приложение меньшего размера с минимальными возможностями. Затем клиенты платят за дополнительные функции или дополнения.

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

...