Привет ! Сейчас мы с тобой взломаем простенький crackme и разберем некоторые приемы взлома программ Для начала скачай крякми. Распаковывай и осматривай , как ты понял для регистрации программы нужно ввести серийный номер . При вводе любого случайного значения и нажатия кнопки “Check” программка молчит . Ну что ж давай ее подегабрим . Открывай OllyDbg , Файл -Открыть- выбирай Bin.exe . Если внимательно посмотреть на открывшийся дизассемблерный код , то мы заметим сразу же серийный номер . Он находится по адресу 00401063 . Давай перейдем по адресу и увидим вот такую вот строчку :


00403000=Bin.00403000 (ASCII “Oqiqb4EhM/4jISMjlzQf6kpGQwLrG+GEIY4b
Pc0JL/jWBfNLejmbme3garIrG4ngbXtWQY3Y2Vdbv
RxleHU9aGxFRLXkh5BDGVbm5gAAhGeBMBl65XKmZ9s
bNn4xxi3cbD7M02MpwZ3BpN4lG3xyFPsofbhXbMu8Z
/1rlqfdul/KLaGmkllOYRj9Mhnumqw1f464dK948rgz5Jxp
eSQHN45GlMNjb71)

Oqiqb4EhM/4jISMjlzQf6kpGQwLrG+GEIY4bPc0JL/jW
BfNLejmbme3garIrG4ngbXtWQY3Y2VdbvRxleHU9aGx
FRLXkh5BDGVbm5gAAhGeBMBl65XKmZ9sbNn4xxi3cbD
7M02MpwZ3BpN4lG3xyFPsofbhXbMu8Z/1rlqfdul/KLa
GmkllOYRj9Mhnumqw1f464dK948rgz5JxpeSQHN45GlMNjb71

- это и есть код для регистрации , как видишь автор не стал мудрить он не попытался даже зашифровать его и это сыграло нам на руку . В принципе можно сохранить серийный номер в текст. файл и сказать что взломано но мы еще немножко поиграемся

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

Внимательно изучи диз. код что ты видишь ? Если ты знаком с ассемблером и уже практиковался во взломе программ , то я уверен на 99% что ты уже взломал программу или нашел путь к кряку . Для не просвещенных объясняю . Как ты видишь при вводе не правильного кода , crackme не реагирует , а при вводе верного серийного номера (про него было написано выше) крякми выводит сообщение “Congratulation, you found the right key” . Теперь мы должны сделать так что бы крякми выводила сообщение “Congratulation, you found the right key” при вводе любого с/н . Теперь перейди в OllyDbg и поищи текст “Congratulation, you found the right key” . Ты его найдешь по адресу 0040108B

0040108B . 68 3B354000 PUSH Bin.0040353B ;
|Text = "Congratulation, you found the right key"

Грубо говоря в этом коде впихивается текст “Congratulation, you found the right key” т.е. если у тебя есть желание заменить этот текст на какой либо другой , то меняй текст по этому адресу Bin.0040353B . Ну что ж теперь мы должны заставить выводиться этот текст при вводе любого значения . Теперь давай разберемся как работает программа . Грубо говоря схема такая :

Если код верен то
Вывести сообщение о правильном коде
не верен
Ничего не делать

мы должны сделать так :

Если код верен то
Вывести сообщение о правильном коде
не верен
Вывести сообщение о правильном коде

Т.е нам надо заменить некий байтик так что бы проверка не проходила … или проходила но в любом случае выводилось сообщение о правильном коде . Теперь разберем как это сделать … что бы написать схему “если…то” на асме нужно использовать операторы jmp (переход) если вместо jmp указать jnz то перехода не будет . Давай сделаем это на примере нашего крякми .

Внимательно глянь на диз. код рядом с кодом вывода сообщения “Congratulation, you found the right key” . Посмотри на стоящие рядом операторы jmp, jnz и т.п. Давай посмотрим что начнет исполнятся когда код дойдет до 0040107B .^EB EB JMP SHORT Bin.00401068 . Для этого выдели эту строку и нажми “Enter” . Тебя перекинет на :

00401068 > 833E 00 CMP DWORD PTR DS:[ESI],0

Это нам не надо ... Идем дальше :

00401082 . 75 14 JNZ SHORT Bin.00401098

Жмем "Enter" ... и нас перекидывает на :

00401098 > EB 6C JMP SHORT Bin.00401106

Вот мы и нашли то что нам надо было …Как видишь доходя до этого оператора с неправильным кодом крякми не выводит сообщения , давай ка заменем оператор JNZ SHORT Bin.00401098 на нужный нам Для этого два раза кликни на строке по адресу 00401082 и заменяй :

JNZ SHORT Bin.00401098
на
JZ SHORT Bin.00401098

Теперь запускай (жми F9) и вводи любой код … ДА ты увидишь сообщение “Congratulation, you found the right key” ! Поздравляю с успешным взломом .