Избегать запуска программного обеспечения после копирования на следующую машину? - PullRequest
3 голосов
/ 16 мая 2010

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

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

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

Ответы [ 6 ]

6 голосов
/ 16 мая 2010

Адаптация одного из моих предыдущих ответов:

Существует несколько способов «активировать» скопированное программное обеспечение, чтобы попытаться остановить случайное копирование приложения.

В самом простом случае регистрационный код («ключ CD») приобретается у вас, возможно, через ваш веб-сайт, и отправляется пользователю, который вводит его в программу или программу установки. Весь процесс в основном может быть сделан в автономном режиме; сама программа локально определяет, является ли код действительным или недействительным.

Это приятно и просто, но чрезвычайно уязвимо для обмена ключами - поскольку «звонка домой» нет, приложение не может знать, что тысячи разных людей используют один и тот же ключ, который они получили в Интернете или в последовательной библиотеке. или их друг. Также достаточно просто создавать «кейгены», которые генерируют кажущиеся действительными ключи, которые никогда не были выпущены разработчиками.

Тогда мы перейдем к онлайн-регистрации. У вас все еще есть какой-то код, но программа вернётся домой на сервер, чтобы определить, является ли код действительным и обычно уникальным. Это останавливает общий обмен ключами, потому что компания знает, что слишком много людей со всего мира используют один и тот же ключ. Возможно, существует также какая-то идентификация, связанная с использованием MAC-адреса, с бесконечными регистрациями, разрешенными на одном и том же оборудовании, но, возможно, ограниченным числом на том, что выглядит как другой компьютер.

Это все еще довольно легко и останавливает простой обмен ключами. Людям на самом деле придется взломать программное обеспечение или подделать ответ сервера, чтобы обойти его.

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

Наконец, особо защищенное приложение может оставаться в постоянном контакте с сервером, отказываясь работать вообще, если соединение разорвано.

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

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

1 голос
/ 05 октября 2013

У меня есть одна идея, может быть, это работает. Что мы можем сделать, мы создадим зашифрованное поле базы данных, и это поле будет пустым в первый раз, как только я установлю свое программное обеспечение на какой-либо компьютер, оно прочитает Mac-адрес + материнская плата Serial + ID процессора и сделает зашифрованное значение с комбинацией этих трех и запишите в это поле, которое я оставил пустым при первом использовании.

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

1 голос
/ 16 мая 2010

Как сказал Нико, ты действительно не можешь.

Простым решением может быть создание (регистрация / активация) кодов, основанных на аппаратном или программном обеспечении, установленном на конкретном компьютере, например, серийный идентификатор видеокарты или время создания c: / windows.

1 голос
/ 16 мая 2010

В двух словах: вы не можете.

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

Конечно, это тоже можно обойти, но ...

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

Такие компании, как наша (Wibu-Systems), Safe-Net и Flexera (дорогие), предлагают решения без использования ключей, а также решения на основе аппаратного обеспечения Но Симон был прав в том, что ключ - единственная железная защита. Все программные системы могут быть взломаны; просто некоторые сложнее других. Действительно хорошие аппаратные решения практически не поддаются взлому. Никто еще не взломал флешку CodeMeter, если реализация не была ошибочной.

0 голосов
/ 20 мая 2010

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

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

Если вы ищете готовую схему для этого, взгляните на CryptoLicensing .

...