Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Защита программ... (http://forum.oszone.net/showthread.php?t=29427)

Shadowed 13-11-2002 12:56 203873

Как установить защиту в программе на Delphi?
1) Привязаться к железу - винт + ОС + процессор + видеокарта? Иные варианты?
2) Грамотно встроить защиту в программу (Не проверка типа "if Pass<>'Password' then close;")? *В какие ключевые места программы (рекомендации)?
3) Метод получения, ввода, проверки ключа к защите?
4) И важно чтобы все енто работало под w9x/wnt/w2k/wxp?

ivank 13-11-2002 17:42 203874

НЕ буду оригинален, если скажу, что всё это без проблем ломается, так что смысла в такой защите просто нет.

Shadowed 13-11-2002 19:35 203875

ivank

 Согласен что данный способ защиты ломается. А в общем - поломать можно что угодно! А для простой защиты и регистрации по телефону ентот способ я думаю - подойдет.
-----
 Есть опыт и/или идеи - помогите.
-----
 Инфо по вопросу - необходимо. И именно с привязкой к железу. Я думаю обсудить иные способы - будет также полезно и интересно Всем.

vasketsov 14-11-2002 16:14 203876

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

Привязка к железу ломается на NT-платформах наверное легче всего, проще только проверка в коде if (!wcslen(szPass,L"secret_pwd")) ломается. По крайней мере, мне известно как это все легко сломать.

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

APOSTOL 14-11-2002 18:17 203877

Статья 'Ломать не строить' в номере IZONE 347

Это её начало:
---------------------------------------------------------------

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

Проходит еще пара дней и ночей. На скорую руку вы пишете простую защиту от нелегального копирования, основанную на серийном номере. На ту же руку быстро пишите сайт программы. Меню Buy Now!!! красуется на полэкрана. И вот вы сидите с заготовленными мешками для денег и ждете толпу покупателей.

Проходит еще несколько бессонных дней и ночей. Покупатели почему-то не спешат. Но вот наконец пришло первое письмо. Читаем: какой-то MadGuy хвастается, что написал crack для Вашей программы и пересылает его Вам. Еще обещает выложить этот crack в Интернете. Для тех, кто в танке: crack — это программка, модифицирующая другую программу, и, как правило, снимающая защиту от копирования. Быстро запускаем этот crack. Применяем. И… о боже! Теперь защита Вашей программы не работает! «Чем это мне грозит?» — спросите Вы. Только лишь тем, что денег за свою программу Вы уже вряд ли получите.
-----------------------------------------------------------

Там (в статье) довольно подробно пишется, как хотя бы усложнить жизнь хакеру.

AlexK 23-11-2002 13:41 203878

Цитата:

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

1) Привязаться к железу - винт + ОС + процессор + видеокарта? Иные варианты?
. По опыту только головная боль для юзеров при смене железа, а при снятой защите ни каких проблем.

noname00.pas 24-11-2002 19:29 203879

Есть классный метод - аппаратные ключи. Только вот нужно как-то сделать так, чтобы его эмулировать было трудно...

vasketsov 25-11-2002 13:50 203880

noname00.pas
На NT-платформах любые ответы железа легко эмулируются, все в любом случае решается покупкой одного девайса и элементарнейшим логгированием того, что элементарнейшим образом перехватывается.

Ant 09-12-2002 04:13 203881

vasketsov, прав! :up:

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

Необходимо делать такие проги, затраты на взлом у которых не окупают выгоды от факта взлома. И все будет нормально.

Цитата:

"if Pass<>'Password' then close;"
Делать можно примерно так, только проверять это поэтапно и в разных частях программы. А еще сделать несколько (чем больше тем лучше) ложных псевдопроверок, и всевозможных отвлекающих маневров, чтобы тот кто крякает вспомнил про тебя и твою маму не один раз. :) Для этого нужно иметь страсть к извращеннм запутанным алгоритмам, в которых закономерности будут видны только тебе, и лучше проверять все не при запуске, а непосредственно при работе программы и частями (привязав проверки к действиям пользователя), и если что-то не так не запускаться в следующий раз.

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

А еще надо любит asm и приучать себя иногда смотреть на свои экзешники из дебаггера. :) Если ты сделаешь проверку "if Pass<>'Password' then close;" так, что для ее отслеживания крякеру понадобиться как минимум 2 монитора, можешь не беспокоиться, крякеров, кто возмется за кряконье такой программы очень мало... опять таки, если только ты не Билли Гейтс. :)

Удачи!

noname00.pas 12-12-2002 17:40 203882

vasketsov
Цитата:

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

Как тебе такая концепция:
В ключ встраивается элемент памяти и микропроцессор. Программа сохраняет свои данные на диск в шифрованном виде. Зашифровкой и разшифровкой занимается именно ключ. При этом используется шифр с закрытым ключём.

Хотя создание такой защиты и сделает продукт долларов на 200-300 дороже, но по-моему это довольно надёжный способ защитить программу.

Guest 03-10-2004 06:48 203883

если сделать так "if Pass<>'Password' then close;" то вскроют как делать не "№;%;

JCooper 03-10-2004 14:28 203884

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


Время: 09:47.

Время: 09:47.
© OSzone.net 2001-