Подтвердить что ты не робот

Как установить срок действия пробной установки моего программного обеспечения?

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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