Защита программного обеспечения - PullRequest
1 голос
/ 26 декабря 2010

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

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

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

Мысли?

Позднее редактирование: я изменил лицензионную часть, чтобы избежать несфокусированного обсуждения.

Ответы [ 5 ]

2 голосов
/ 17 июля 2016

Мы используем Система лицензирования PELock , она имеет расширенный API SDK, что позволяет нам настраивать модель лицензирования до мельчайших деталей.

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

#incude "pelock.h"

void FullVersionProc()
{

FEATURE_1_START

// this code runs only, if the license key has
// enabled FEATURE_1 section

FEATURE_1_END

}

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

1 голос
/ 26 декабря 2010

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

0 голосов
/ 06 ноября 2014

Этого можно достичь по крайней мере двумя способами: либо вы используете механизм проверки автономного ключа (пожалуйста, ознакомьтесь с этой статьей: http://www.codeproject.com/Articles/764610/Licensing-systems-in-NET), либо онлайн-систему проверки.

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

  2. Проверка ключа в режиме онлайн дает вам больше контроля. Здесь вы можете выбрать принудительное подключение пользователя к Интернету при каждом запуске приложения или только один раз / периодическиПервый вариант дает вам лучший контроль, так как вы можете заблокировать серийный ключ или изменить количество машин, на которых ключ может работать, и это изменение повлияет на пользователя клиента при следующем запуске программного обеспечения. Последний вариант дает вам немного меньше контроля, но это избавляет пользователя клиента от доступа к интернету.Я время.Кроме того, вы всегда можете сравнить местное время с интернет-временем, чтобы убедиться, что пользователь не манипулировал им.

Примером (2) является SKM Platform (* 1016)* Примеры приложений / алгоритмов, описанных в (1), можно найти в статье, которую я упоминал в начале.

0 голосов
/ 19 января 2011

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

0 голосов
/ 26 декабря 2010

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

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

...