Взлом простого crackme — HackZona.Ru

Взлом простого crackme

Взлом простого crackme

Тип статьи:
Со старой ХакЗоны.
Сегодня я тебе расскажу о том как взломать защиту установленную на программе, в этой статье мы будем взламывать программа которая создана для того что бы ее взламывали. Такие ты сможешь

найти на сайте www.crackmes.de or www.cracklab.ru. Мы будем взламывать самую простую защиту. Скачай crackme#1 по этому линку www.quickm.clan.su/my_first_crack.rar, для взлома этой программы

нам понадобится OllyDbg (ищи ее на wasm.ru), знание ассемблера (минимальное) и прямые руки ( где взять не знаю, узнаешь скажи.

Начнем…

Распакуй архив с crackme # 1. В нем ты найдешь две программы crack and crackme, crack — это уже крякнутая программа, файл crackme ты будеь взламывать.Запусти программу crackme (crack пока

не трогай… ) и попробуй ввести любое значение вместо «Enter serial» и нажать «Try!Cracker», программа выведет «Bad serial.Try yet» это означает то что программа не крякнутая и работать не будет. Теперь

запусти crack.exe, вместо «Enter serial» можешь ввести любое значение, жми на кнопу и лицезрей текст в котором сказано то что программа взломана. Твоя здача сделать из crackme — crack. Забегу в

перед и скажу что для взлома нам нужно исправить всего лишь один байтик и сохранить приложение с уже исправленым байтом, если ты понял что сделать, то вперед — действуй! Ну а теперь обо всем и

подробно… Для взлома программы обычно используется один из двух методов. Первый- исправления n-ного байта и сохранение программы с уже исправленым байтом, второй — написание кейгена

(более сложный чем 1-ый). Сейчас мы разберем первый способ ( второй разберем в следуюшей статье). Значит цель ясна, нам надо найти и исправить n-ный байт так, что бы программа при любом

вводимом значение выдавала сообщение о том что регистрационный код верен. Теперь нужно найти тот байт который нам надо исправить… Открываем программу, вводим любой номер и жмем на

«Try!Cracker» и видим сообщение MessageBoxA с заглавием «CrackMe#1 by Shturmovik» и текстом «Bad serial.Try yet». Запускай OllDbg и открывай в нем crackme, теперь давай найдем в исходнике

программы инфу о «SendMessageA». Посмотрим какие функции выполняет программа с этой процедурой… «DispatchMessageA» — это то что нам нужно! Осталось лишь найти байт который должен быть

исправлен. Мы будем работать с текстом от метки «DispatchMessageA» и до метки «PostQuitMessage». Вот этот отрывок кода:

PUSH EAX
CALL
JMP SHORT crackme.004010EE
MOV EAX,DWORD PTR SS:[EBP-44]
LEAVE
RETN 10
MOV EBP,ESP
ADD EBP,8
XOR ECX,ECX
XOR EDX,EDX
INC EDX
MOV EBX,DWORD PTR SS:[EBP]
INC CX
MOV AL,BYTE PTR DS:[ECX+EBX-1]
CMP AL,0
JE SHORT crackme.00401150
XOR AL,CL
SUB EBP,4
MOV EBX,DWORD PTR SS:[EBP]
MOV AH,BYTE PTR DS:[ECX+EBX-1]
XOR BX,BX
CMP AH,AL
JNZ SHORT crackme.00401148
INC BX
AND DX,BX
ADD EBP,4
JMP SHORT crackme.00401126
DEC DX
SUB EBP,8
RETN
PUSH EBP
MOV EBP,ESP
СMP DWORD PTR SS:[EBP+C],2
JNZ SHORT crackme.0040116B
PUSH 0

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

защиты сводится к такому коду на Delphi (для меня просто привычно использовать этот язык, поэтому и пишу на нем: if then
Зарегистрировать программу
else
Вывести сообщение о неуспешной регистрации…
По этому же принципу работает и эта программа… если внимательно посмотреть на код то можно увидеть метку перехода JMP, вся строка кода выглядит таким образом «JMP SHORT 00401126».

Выдели ее и нажми «Enter». Тебя перенесет на строчку «MOV EBX,DWORD PTR SS:[EBP]»… Я надеюсь ты уже понял что это тот байт который нужно заменить… На что? На «JZ SHORT 00401126».
Теперь давай сохраним крякнутую программу. Для этого щелкни правой кнопкой мыши в любом месте исходного кода -> Copy to executable -> All Modification и сохраняй… Теперь запусти и проверь ее,

программа работает так же как и crack которую ты скачал в архиве. ПОЗДРАВЛЯЮ ТЕБЯ С УСПЕШНЫМ ВЗЛОМОМ !!!.
Нравится
Не нравится

9 комментариев

11:25
а нашел:)
10:52
оставте свои коменты
12:27
для новичков можно было бы описать, к примеру, что cmp - команда сравнения, что происходит, когда мы меняет один бит. И хватит примеров написание кейгена на делфя, все пишут только на делфи? я пишу на C# - молодой и процветающий язык, а примеров для него ваще нет
12:32
ломать проги, написанные на делфи несложно, а вот ломануть проги, которые сохранены в промежуточном коде как? вот там уже проблемка, т.к. дизассемблерить её безтолку. Код программы генерируется при её работе. Хорошим примером являются NET языки. Да и в принципе Basic и Java используют виртуальные машины. А как их ломануть?
19:30
статья отличная только я не нашел SendMessageA! Как найти?
10:05
Люди я не могу скачать OllDbg скинте пожалик я чайник и очень хочу [email protected]
10:44
Andryha9191. www.wasm.ru смотри в разделе софт 8)
20:38
У меня ничего не получилось, помогите плз, руки у меня прямые :), делаю все как написанно, а када запускаю прогу, то она либо вешается либо просит отправить отчет об ошибке, че делать? если хотите, можно стучатся в асю 470-460-135
23:10
У меня невышло,руки прямые и несомневайтесь,заменил все как написано ,запускаю прогу,воожу серийник,и вылетает окно "Отправить отчет об ошибке" ... помогите!