Показать полную графическую версию : Защита программ...
Shadowed
13-11-2002, 12:56
Как установить защиту в программе на Delphi?
1) Привязаться к железу - винт + ОС + процессор + видеокарта? Иные варианты?
2) Грамотно встроить защиту в программу (Не проверка типа "if Pass<>'Password' then close;")? *В какие ключевые места программы (рекомендации)?
3) Метод получения, ввода, проверки ключа к защите?
4) И важно чтобы все енто работало под w9x/wnt/w2k/wxp?
НЕ буду оригинален, если скажу, что всё это без проблем ломается, так что смысла в такой защите просто нет.
Shadowed
13-11-2002, 19:35
ivank
Согласен что данный способ защиты ломается. А в общем - поломать можно что угодно! А для простой защиты и регистрации по телефону ентот способ я думаю - подойдет.
-----
Есть опыт и/или идеи - помогите.
-----
Инфо по вопросу - необходимо. И именно с привязкой к железу. Я думаю обсудить иные способы - будет также полезно и интересно Всем.
vasketsov
14-11-2002, 16:14
Shadowed
Самый надежный способ заставить юзеров платить деньги - объяснить им, что это в их же интересах прежде всего. Для этого есть такое мощное средство как поддержка. В частности, антивирусы базы обновляют.
Привязка к железу ломается на NT-платформах наверное легче всего, проще только проверка в коде if (!wcslen(szPass,L"secret_pwd")) ломается. По крайней мере, мне известно как это все легко сломать.
А вообще специфика защиты прежде всего зависит от того, сколько программа стоит (это косвенный параметр, указывает на то, сколько может стоить защита и сколько - взлом), для чего она используется, в каком окружении (intranet или все желающие), и так далее, вплоть до возможности применения различных устройств на уровне самого железа.
Статья 'Ломать не строить' в номере IZONE 347
Это её начало:
---------------------------------------------------------------
Давайте пофантазируем. Представим ситуацию: Вы программист по призванию, и в результате многих бессонных дней и ночей под недовольное ворчание мамы, сестры, жены (нужное подчеркнуть) написали программку. Да не просто, а очень полезную программку, без которой ни один пользователь не сможет нормально жить, а тем более спать. И вот Вы принимаете решение: продавать свой MegaCoolNotepad через Интернет. И действительно, было потрачено время, применены недюжинные знания. Почему бы не продать свой труд?
Проходит еще пара дней и ночей. На скорую руку вы пишете простую защиту от нелегального копирования, основанную на серийном номере. На ту же руку быстро пишите сайт программы. Меню Buy Now!!! красуется на полэкрана. И вот вы сидите с заготовленными мешками для денег и ждете толпу покупателей.
Проходит еще несколько бессонных дней и ночей. Покупатели почему-то не спешат. Но вот наконец пришло первое письмо. Читаем: какой-то MadGuy хвастается, что написал crack для Вашей программы и пересылает его Вам. Еще обещает выложить этот crack в Интернете. Для тех, кто в танке: crack — это программка, модифицирующая другую программу, и, как правило, снимающая защиту от копирования. Быстро запускаем этот crack. Применяем. И… о боже! Теперь защита Вашей программы не работает! «Чем это мне грозит?» — спросите Вы. Только лишь тем, что денег за свою программу Вы уже вряд ли получите.
-----------------------------------------------------------
Там (в статье) довольно подробно пишется, как хотя бы усложнить жизнь хакеру.
Самый надежный способ заставить юзеров платить деньги - объяснить им, что это в их же интересах прежде всего. Для этого есть такое мощное средство как поддержка. В частности, антивирусы базы обновляют.
Полностью согласен. При хорошей поддержке платят даже охотно. Разработкой программ занимаюсь с 90г.
1) Привязаться к железу - винт + ОС + процессор + видеокарта? Иные варианты? . По опыту только головная боль для юзеров при смене железа, а при снятой защите ни каких проблем.
noname00.pas
24-11-2002, 19:29
Есть классный метод - аппаратные ключи. Только вот нужно как-то сделать так, чтобы его эмулировать было трудно...
vasketsov
25-11-2002, 13:50
noname00.pas
На NT-платформах любые ответы железа легко эмулируются, все в любом случае решается покупкой одного девайса и элементарнейшим логгированием того, что элементарнейшим образом перехватывается.
vasketsov, прав! :up:
Привязка к железу - это дурной тон. (если, конечно, ты не здоровая контора, которая производит "Консультант +" за 20000 р.) Больше ничего к словам vasketsova по этому поводу добавить не могу.
Необходимо делать такие проги, затраты на взлом у которых не окупают выгоды от факта взлома. И все будет нормально.
"if Pass<>'Password' then close;"
Делать можно примерно так, только проверять это поэтапно и в разных частях программы. А еще сделать несколько (чем больше тем лучше) ложных псевдопроверок, и всевозможных отвлекающих маневров, чтобы тот кто крякает вспомнил про тебя и твою маму не один раз. :) Для этого нужно иметь страсть к извращеннм запутанным алгоритмам, в которых закономерности будут видны только тебе, и лучше проверять все не при запуске, а непосредственно при работе программы и частями (привязав проверки к действиям пользователя), и если что-то не так не запускаться в следующий раз.
К тому же, можно у самой проги сделать механизм проверки себя на "целостность", только так, чтобы антивирусы не беспокоить. И если она обнаружит, что ее пытались крякнуть, путь молчит денька 3 (или недельку), а потом просто откажется работать. Крякеров это морально убивает, к этому времени они обычно радостно выкладывают на свои сайты кряк и гордясь своей щедростью, нежатся в лучах славы. А тут... опять что-то искать... :) к тому же репутация...
А еще надо любит asm и приучать себя иногда смотреть на свои экзешники из дебаггера. :) Если ты сделаешь проверку "if Pass<>'Password' then close;" так, что для ее отслеживания крякеру понадобиться как минимум 2 монитора, можешь не беспокоиться, крякеров, кто возмется за кряконье такой программы очень мало... опять таки, если только ты не Билли Гейтс. :)
Удачи!
noname00.pas
12-12-2002, 17:40
vasketsov
На NT-платформах любые ответы железа легко эмулируются, все в любом случае решается покупкой одного девайса и элементарнейшим логгированием того, что элементарнейшим образом перехватывается.
Не нужно так безаппеляционно утверждать ;-)
Как тебе такая концепция:
В ключ встраивается элемент памяти и микропроцессор. Программа сохраняет свои данные на диск в шифрованном виде. Зашифровкой и разшифровкой занимается именно ключ. При этом используется шифр с закрытым ключём.
Хотя создание такой защиты и сделает продукт долларов на 200-300 дороже, но по-моему это довольно надёжный способ защитить программу.
если сделать так "if Pass<>'Password' then close;" то вскроют как делать не "№;%;
Защита в программе само собой должна присутствовать....извраты с серийным номером, антиотладка и пр. Но так как неломаемых защит нет, то и особо париться с этим не стоит. Если вы шароварщик, то как говорилось выше хорошая тех. поддержка и частый выпуск новых версий (+ приемлемая цена) гарантированно сделают взлом вашей программы неблагодарным трудом для любителей покопаться в бинарниках.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.