[ Введение ]

Итак однажды мне попалась программа под названием API Spy 2.5. Это программа шпион API функций которые вызываются из программ. Но какая неудача - программка требовала регистрацию. Но это оказалась нам не помеха.

Нам понадобятся:

OllyDbg
PEiD

Скачать программу можно тут:

Код:
https://cracklab.ru/_dl/new/apis3225.rar

[ Go, Go, Go ]

Итак запускаем программу и видим следующее:

https://img123.imageshack.us/img123/214 … 894ct2.jpg

Проверим запакована ли она сама PEiD'ом.

https://img123.imageshack.us/img123/747 … 041xr0.jpg

Программа ничем не запакована и написана на С++. Ок продолжаем наше исследование.

Кликаем на кнопку Register внизу:

https://img123.imageshack.us/img123/231 … 298up3.jpg

Вводим данные например SoulFreaker в качестве имени и 31337 в качестве серийника.
Видим месагбокс с информацией что серийник не верный.
Грузим программу в олли.

Вообще можно поставить бряки на различные функции программы считывания из эдитбокса или на окошко сообщения о неверной регистрации, вызвав ПКМ->Search for->All intermodular calls.

Но мы поступим по другому и сделаем следующее:

ПКМ->Search for->All referenced text strings

И там поищем строку о неверном серийнике:

ПКМ->Search for text->provided is incorrect

Видим ее расположение:

https://img123.imageshack.us/img123/619 … 602ic1.jpg

Смотрим код чуть выше:

Код:
004018BC  |> \0AC0          OR AL,AL
004018BE  |.  74 02         JE SHORT apis32.004018C2

Поставим бряк на адрес 004018BC нажав F2 на нужном адресе.
Жмем F9 и вводим регистрационные данные указанные выше.
Активируется бряк.
Жмем F8 и видим что по адресу 004018BE активирован прыжок на адрес где выводится сообщение о неверной регистрации.

https://img123.imageshack.us/img123/649/53098824bm7.jpg

Чтож, тут можно поступить разными способами, например фишить серийник, патчить функцию проверки либо патчить условные переходы в которых идет проверка серийника (а в данном случае их 5).

https://img123.imageshack.us/img123/914 … 887gv2.jpg

Но чтобы не геморриться с патчингом кучи вызовов мы пропатчим функцию по адресу 00405040:

Вначале функции введем следующее:

Код:
xor al, al
inc al
retn

https://img339.imageshack.us/img339/488 … 445qu7.jpg
https://img339.imageshack.us/img339/180 … 072tv2.jpg

Ввиду того что прыжок на адрес где лежит информация (info) о неверной информации активировался только когда флаг Z будет активным, мы его насильно сделали неактивным, то есть равным 0 и соответственно прыжок на неверную регистрацию никогда не осуществится.

https://img339.imageshack.us/img339/483 … 169ct0.jpg

Теперь сохраняем измененные байты в бинарник:

ПКМ->Copy to executable->All modifications

[ Заключение ]

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

(c) Хел

PS

крэк к ней:
https://www.helkern.co.cc/tools/api.spy.2.5-patch.zip

Подпись автора

...если долго вглядываться в Бездну, то она начнет вглядываться в Вас...