Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Технологии защиты программного обеспечения > Антикрэкирское решение


Автор: Ak47black 25.9.2006, 20:46
Здравствуйте интересуюсь тем как что-бы уберечь свою программу в какой-то степени от взлома
,а конкретнее у меня следуший вопрос. Имеються-ли какието готовые решения как подвесить отладчик при нажатии кнопки Register в моей проге (конечно не все, но хоть некоторые)?

Автор: Matematik 25.9.2006, 20:51
Захотят взломать, не поможет

Автор: Romikgy 25.9.2006, 20:55
Цитата(Matematik @  25.9.2006,  19:51 Найти цитируемый пост)
Захотят взломать, не поможет 

согласен на все 100%

Автор: Ak47black 25.9.2006, 21:01
Ну понятно что софт-айсом можно взять любую прогу. Только все зависит от времени.
Я хочю повысить время взлома.

Автор: Romikgy 25.9.2006, 21:14
Цитата(Ak47black @  25.9.2006,  20:01 Найти цитируемый пост)
можно взять любую прогу.

почти!!!!

Цитата(Ak47black @  25.9.2006,  20:01 Найти цитируемый пост)
Я хочю повысить время взлома.

воспользуйся шифрованием , плюс привязка ко времени (и не стацинарного , а разности)

Автор: Snowy 25.9.2006, 21:27
Тебе сюда: "http://forum.vingrad.ru/index.php?showforum=125"

Добавлено @ 21:33 
А решение простое.
При нажатии кнопки "Register" не делать никаких действий, кроме сохранения кода, а лучше его производной.
Абсолютно никаких.
Это усложнит задачу - если нет проверки при нажатии кнопки, то совершенно непонятно где ловить.
В программе не делать единой точки проверки кода, а разбросать проверку разных частей кода по программе.
Вот тогда точно опухнешь искать по всей программе.
Найти одно место можно. Искать все... Программа того не стоит. Это не винда и не фотошоп
Для большей надёжности - наделать производных от частей ключа.
Чем больше, тем проще запутать.
Главное не запутаться самому smile

Автор: Coder 26.9.2006, 00:12
Цитата(Snowy @ 25.9.2006,  21:27)
При нажатии кнопки "Register" не делать никаких действий, кроме сохранения кода, а лучше его производной.

Snowy, что значит производная от кода?

Автор: Snowy 26.9.2006, 00:42
Любой блок данных, полученный в результате преобразования исходных данных по заранее определённому алгоритму.
Алгоритм может быть любой - свой выдуманный или стандартный.
Неизменным должно быть одно - при применении алгоритма к одним и тем же данным, результат всегда должен быть одинаковым. То есть алгоритмы с элементом случайности не подходят.
Например у нас часть кода "F0B9". Допустим применим простой только что пидуманный алгоритм: к каждому символу прибавим ещё один на еденицу больше.
В результате работы алгоритма получим "F001BC9A". Вот такую преобразованную строку и использовать. Это и есть производная - на входе одни данные - на выходе другие. Результат всегда зависит от входных данных.
Можем не выдумывать свой алгоритм, а взять стандартные типа CRC или MD5.
То есть цель - использовать не сам серийный номер, а производные от него.

Автор: Akella 26.9.2006, 11:34
а на кнопку повесь какую-нибудь "левую" введенных данных или даже не обязательно введеных, пусть эта процедура чего-то пишет в реестр или на диск, или какие-либо другие действия делает, ну ты понял..  smile 

Автор: ne0n 26.9.2006, 16:01
VMProtect нафига сделан? Не всякий опытный крякер с ним разберется. Виртуальная машина лутший вариант. Вот тебе и готовое решение.

Автор: drkot 26.9.2006, 18:55
Главное чтоб система защиту не мешала нормальной работе программы. А то можно так защиту наворотить, что и прога работать перестанет.

В половине случаев хватит простого алгоритма свертки ключа + проверки на режим отладки.
Это создаст условия для покупки программы (достаточно продать один ключ и покатилось ...).
Если же программа будет пользоваться популярностью то взломают обязательно невзирая на защиту (ReGet к примеру).
ИМХО лучший вариант проверва подлинности через инет, но не всегда реализовать можно.

Главное помнить, что взлом так или иначе сводится к замене 4-х байт  smile 

Автор: dumb 26.9.2006, 22:05
Цитата(drkot @  26.9.2006,  18:55 Найти цитируемый пост)
Главное помнить, что взлом так или иначе сводится к замене 4-х байт

хм... странное заявление. почему именно 4-х? user posted image
вообще - от 1 бита и до написания эмулятора. user posted image

Автор: BUGOR 27.9.2006, 10:53
Цитата

VMProtect нафига сделан?


Далеко не панацея, к тому же тормозит программу прилично. Ну и раскошелиться на него придётся. 

Цитата

ИМХО лучший вариант проверва подлинности через инет, но не всегда реализовать можно.


Чем же он лучший? 

Автор: Guedda 27.9.2006, 10:57
Мне кажется, лучший вариант делать программу freeware, если не жадный, либо продавать её не как shareware, а как Demo. Т.е. делаешь демо версию без каких-либо функций, которые в свою очередь будут лежать в плагине, который пришлётся тебе после оплаты.

Автор: drkot 27.9.2006, 15:25
Цитата(dumb @  26.9.2006,  22:05 Найти цитируемый пост)
вообще - от 1 бита и до написания эмулятора.

практически всегда есть проверка подлинности заключается в принятии решения да/нет вот там и замену надо делать.
Цитата(Guedda @  27.9.2006,  10:57 Найти цитируемый пост)
Т.е. делаешь демо версию без каких-либо функций, которые в свою очередь будут лежать в плагине, который пришлётся тебе после оплаты.

до первой проданной.
Цитата(BUGOR @  27.9.2006,  10:53 Найти цитируемый пост)
Чем же он лучший? 

под одним серийником две программы не запустиш. + защита от генераторов серийников.

Автор: dumb 27.9.2006, 16:11
Цитата(drkot @  27.9.2006,  15:25 Найти цитируемый пост)
практически всегда есть проверка подлинности заключается в принятии решения да/нет вот там и замену надо делать.

типовой случай "дурацкой" защиты. как правило заменяется один байт в инструкции(если она двухбайтная) условного перехода - либо 7x на EB, либо смещение на 0. короче, 4 байта - частный случай, причем не самый частый. smile

Цитата(drkot @  27.9.2006,  15:25 Найти цитируемый пост)
до первой проданной.

если не используется "затычка"(hasp/hl/etc), то по-любому "до первой проданной".

Цитата(drkot @  27.9.2006,  15:25 Найти цитируемый пост)
под одним серийником две программы не запустиш

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

Цитата(drkot @  27.9.2006,  15:25 Найти цитируемый пост)
+ защита от генераторов серийников. 

это вообще, простите, гон маркетолога. или я отстал от жизни? - объясните мне что это.

Автор: Snowy 27.9.2006, 16:23
Модератор: Перенесено из дельфи

Автор: LSD 27.9.2006, 16:40
Цитата(dumb @  27.9.2006,  17:11 Найти цитируемый пост)
кто ж ее в сеть выпустит? в наше "военное" время уже почти любая домохозяйка имеет fw.

Отказываться работать в таком случае. Ну и плюс есть класс программ которые просто нельзя не выпускать в интернет, те же прокси сервера.

Кстати есть одина программа: Lan2net NAT Firewall, так вот она до сих пор не взломана. Что говорит о том, что защита была адекватна интересу к данной программе со стороны хакеров.

Автор: dumb 27.9.2006, 17:36
Цитата(LSD @  27.9.2006,  16:40 Найти цитируемый пост)
Отказываться работать в таком случае. Ну и плюс есть класс программ которые просто нельзя не выпускать в интернет, те же прокси сервера.

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

Цитата(LSD @  27.9.2006,  16:40 Найти цитируемый пост)
Кстати есть одина программа: Lan2net NAT Firewall, так вот она до сих пор не взломана. Что говорит о том, что защита была адекватна интересу к данной программе со стороны хакеров. 

угу. "неуловимый джо". там aspr стоит, и фактически только он и препятствует "залому".

Автор: ne0n 28.9.2006, 10:01
Цитата(BUGOR @  27.9.2006,  10:53 Найти цитируемый пост)
Далеко не панацея, к тому же тормозит программу прилично. Ну и раскошелиться на него придётся. 


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

Автор: BUGOR 29.9.2006, 11:14
Цитата

под одним серийником две программы не запустиш. + защита от генераторов серийников.


Ты же сам говорил, что замена проверким всё решает. А кто мешает подделать данные, которые принимаются программой при чеке через интернет? А кто мешает изменить элементырный Jcc(конечно не всегда он есть), при неграмотной реализации проверка через интернет отламывается не сложней, чем if Check(name, key) then ok. 
Какой выход? Хранить часть критических данных на сервере через который идёт проверка и при тру результате возвращать эти данные в программу? Выход... до первой купленной(а скорее скарженной) версии. 


Цитата

угу. "неуловимый джо". там aspr стоит, и фактически только он и препятствует "залому".


Аспр снять не так сложно, туторов масса и в привате есть унпакеры для всех версий. 

Цитата

Кстати есть одина программа: Lan2net NAT Firewall, так вот она до сих пор не взломана. Что говорит о том, что защита была адекватна интересу к данной программе со стороны хакеров.


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

Цитата

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


Ну одну процедуру регистрации всё равно мало протектить, хотя  я согласен, что даже две процедуры не слишком замедлят работу. Это конечно подходит для всяких шаровар за 19.99$, но если тебе надо защитить от кражи какой-нибудь уникальный алгоритм программы?

Цитата

Если программа тогоо стоит то все окупиться


Приведу цитату:
"... Ни один готовый протектор не поможет, так как за пару тысяч баксов тебе и вмпрот снимут, и ексекриптор отдеморфят." (с) PE386

Автор: BUGOR 29.9.2006, 13:43
Вообще, как показала практика ненужно писать крутейшую защиту, во-первых:
1. Программа не получит распространения.
2. Это может быть вовсе неоправданно.
Возьмём тот же WinRAR, его защита ломается исправлением одного байта, и так было наверное с самых первыъ версий, тот же The Bat! тоже никак не защищён, зато это программы с мировым именем и я уверен их разработчики не беднеют с каждым днём, потому что, если у людей есть возможность - они покупают софт(жаль, что в Росии люди имеют такую возможность не часто,, для рядового американца проще вбить номер кредитки и получить ключ, чем вбивать запросы в гугл и тратить время на поиск), если нет возможности - используют крякнутый или не используют ничего, но если используют крякнутый программа постепенно приобретает популярность. Самый лучший вариант выпускать почаще апдейты в которых было бы что-то чувствительно иное в сравнении с другими версиями. 

Автор: dumb 29.9.2006, 20:53
Цитата(BUGOR @  29.9.2006,  11:14 Найти цитируемый пост)
Аспр снять не так сложно, туторов масса и в привате есть унпакеры для всех версий.

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

в общем, нельзя не согласиться, что пока "защита" lan2net себя оправдывает. степень "нужности" не превышает степень "защищенности". smile

так что совет по теме(который, впрочем, уже прозвучал вроде) - нащупать баланс.

Автор: RedHat 6.1.2007, 11:29
Как сказал Snowy, самые действенное решение это при нажатие кнопки "Register" ни чего с введёными данными ни делать ни выдовать ни какие сообщения о неправельности СН а тупо сохранить их в памяти и запустить таймер который будет ждать определёного момента и начнёт формировать код проверки по кускам то есть код проверки СН разбросан по коду программы и куски начинают проводить определёные действия
Например: 
После ввода СН окошко закрылось СН сохранён в памяти
и пока пользователь работает с программой она потихоньку начинает собирать и проверять серийник ну и если он правельный то сохраняет его! в таком случае крякер устанет патчить программу так как проверок будет очень много !

Автор: Guedda 8.1.2007, 12:26
Цитата(RedHat @  6.1.2007,  11:29 Найти цитируемый пост)
и пока пользователь работает с программой

А если он сразу после введения кода закроет приложение? smile

Автор: RedHat 8.1.2007, 13:06
Guedda,  ты так когда нить делал????? 
ну если даже закроет то придётся регить заново минус и при чём большой!!! можно так же использовать в качестве ключа часть/всю процедуру проверки в зашифрованном виде то есть в ехе отсутствует процедура проверки СН так как она идёт в самом СН и без рабочего СН крякеру практически не возможно будет взломать прогу.

Автор: Guedda 8.1.2007, 14:28
Цитата(RedHat @  8.1.2007,  13:06 Найти цитируемый пост)
ты так когда нить делал?????

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

Добавлено @ 14:29 
Но всё-равно и это не поможет smile

Автор: RedHat 8.1.2007, 14:42
Guedda,  smile 
да против хорошого крякера мало что поможет!!! 

Автор: W4FhLF 8.1.2007, 17:07
Цитата(RedHat @  8.1.2007,  13:06 Найти цитируемый пост)
ну если даже закроет то придётся регить заново минус и при чём большой!!! можно так же использовать в качестве ключа часть/всю процедуру проверки в зашифрованном виде то есть в ехе отсутствует процедура проверки СН так как она идёт в самом СН и без рабочего СН крякеру практически не возможно будет взломать прогу.


А он и не будет её ломать. Скардят один ключик, раскриптуют участок и отломают простым патчем, твоя программа останется без всякой защиты. Или же будут распространять вместе с ключиком. 
Хватит предлагать уже давно известные всем идеи.

Автор: Antonimus 12.1.2007, 17:30
Если программа стоит, чтобы ее защищать, то ничего из предложенного выше не поможет. Такие защиты снимаются в два счета, даже не хакерами. Если Вы уверены, что Ваша программа попадет в руки хакеру, то нужна крепкая защита, а значит аппаратная. При этом нельзя брать первый попавшийся ключ, так как он наверняка уже взломан и есть эмулятор, а значит защиту снимут за минуту. Есть ключи, для которых само понятие взлома является абсурдным. Мы сейчас их используем, даже хакерам предлагали $1500, чтобы взломали, но у всех ответ один - без вариантов, даже неизвестно с какой стороны подойти. Вобщем USB-ключи серии "LOCK". В инете по ним можно всю информацию найти. 

Автор: Gogi 19.4.2007, 11:03
Цитата

Приведу цитату:
"... Ни один готовый протектор не поможет, так как за пару тысяч баксов тебе и вмпрот снимут, и ексекриптор отдеморфят." (с) PE386


VMProtect на сегодняшний день ИМХО самое лучшее решение для защиты кода от взлома. Насчет пары тысяц баксов - это очень сомнительно, т.к. я знаю коммерческий проект, накрытый вмпротом, который ломали несколько профи около полугода. Так что решайте сами smile)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)