защита программ

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

buletz
Сообщения: 22
Зарегистрирован: 01 мар 2005, 16:54

Подскажите плз какой-нибудь эффективный алгоритм защиты программы (от несанкционированного запуска)

В данный момент у моей проги стоит такая защита :

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

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

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


НЕДОСТАТОК : при переносе проги на другой винчестер она перестает работать, т.е. ключ уже не подходит.

Какие есть альтернативные методы защиты ?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Оченно сложную тему подняли, споры уже неоднократно были в разных местах, если честно любой процесс можно проследить что куда и зачем он обращается и что делает, тобишь по сути даже при самой крутой защите достаточно один раз зарегистрировать программу и умные руки сломают ее по самое небалуйся - земля талантами славится тем более у нас :D
[syntax=Delphi] [/syntax]
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Можно даже и не регистрить :)
С уважением, Lost Angel...
buletz
Сообщения: 22
Зарегистрирован: 01 мар 2005, 16:54

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

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

какие есть еще варианты ?
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

если программа интересна настолько, что кому-то придёт в голову выкладывать её в инет с ключом - ничто не мешает выложить её с кейгеном или вапче отвязанную...
если продажи превышают определённые пределы и охота заморочиться - смотреть в сторону ключей защиты типа Guardant
Изображение
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Я знаю несколько умов, они эту процедуру часа за 1-3ч распознают и ломанут.(а то и быстрее)..
Я все же думаю, что врядле когда либо будет написано приложение которое невозможно будет ломануть.....
Все процессы все равно в памяти происходят, а ее можно изменят, так что в любом случае ваша защита чисто от брата ламока, если кто-то захочет обязательно ломанет, вобщемта битва продолжается пока победителей и проигравших нет...
[syntax=Delphi] [/syntax]
Absurd
Сообщения: 1228
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

Я знаю несколько умов, они эту процедуру часа за 1-3ч распознают и ломанут.(а то и быстрее)..
Ну да, а если не ломанут, то пойдут на форумы жэчь "Старфорс - говно, и надо устраивать костры из этих дисков."

По теме: если ставится электронная подпись на серийный номер HDD, например по алгоритму RSA, то это дело будет не отреверсить, и кейген не написать.
Можно привязаться в первую очередь к MAC адресу, а если его нет, то к HDD. Сетевые карты летят намного реже чем HDD. Кроме того, за замену MAC адреса
пользователю влетит по шее от администратора домашней сети. Сетевые карты морально стареют намного медленнее.
Остается самое слабое место - та точка в программе где проверяется серийник. Я демаю, надо для этого дела делать какой-то свой линкер, который размажет проверки
по всему коду.
2B OR NOT(2B) = FF
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Старфорс на моей памяти первая болие ли менее продержавшиеся на плаву несколько месяцев система, ее понимаешь обманули же, результат достигнут, а что еще надо???
И в любом случае проблема остается поскольку сам момент обращения можно профиксить и сделать переход далее по адресации в обход вызова на запрос............
[syntax=Delphi] [/syntax]
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Защита на основе ключа естественно не панацея, но при грамотном построении защиты (не просто конверт снаружи, а использование аппаратных алгоритмов ключа, размазывание по коду логики работы с ключём и пр.) время на взлом существенно увеличивается и как следствие увеличивается стоимость этого взлома. Но на то чтобы разобраться с этим тоже, блин, время уйдёт.... :)
Изображение
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Есть же еще способы с ключами USB и файлами лицензии к этим ключам. Это будет еще сложнее сломать. А так, все что создано человеком, человеком же и ломается.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ответить