[ Введение ]
Итак однажды мне попалась программа под названием API Spy 2.5. Это программа шпион API функций которые вызываются из программ. Но какая неудача - программка требовала регистрацию. Но это оказалась нам не помеха.
Нам понадобятся:
OllyDbg
PEiD
Скачать программу можно тут:
[ Go, Go, Go ]
Итак запускаем программу и видим следующее:
http://img123.imageshack.us/img123/2149/32144894ct2.jpg
Проверим запакована ли она сама PEiD'ом.
http://img123.imageshack.us/img123/7474/73051041xr0.jpg
Программа ничем не запакована и написана на С++. Ок продолжаем наше исследование.
Кликаем на кнопку Register внизу:
http://img123.imageshack.us/img123/2319/90006298up3.jpg
Вводим данные например SoulFreaker в качестве имени и 31337 в качестве серийника.
Видим месагбокс с информацией что серийник не верный.
Грузим программу в олли.
Вообще можно поставить бряки на различные функции программы считывания из эдитбокса или на окошко сообщения о неверной регистрации, вызвав ПКМ->Search for->All intermodular calls.
Но мы поступим по другому и сделаем следующее:
ПКМ->Search for->All referenced text strings
И там поищем строку о неверном серийнике:
ПКМ->Search for text->provided is incorrect
Видим ее расположение:
http://img123.imageshack.us/img123/6194/73665602ic1.jpg
Смотрим код чуть выше:
Поставим бряк на адрес 004018BC нажав F2 на нужном адресе.
Жмем F9 и вводим регистрационные данные указанные выше.
Активируется бряк.
Жмем F8 и видим что по адресу 004018BE активирован прыжок на адрес где выводится сообщение о неверной регистрации.
http://img123.imageshack.us/img123/649/53098824bm7.jpg
Чтож, тут можно поступить разными способами, например фишить серийник, патчить функцию проверки либо патчить условные переходы в которых идет проверка серийника (а в данном случае их 5).
http://img123.imageshack.us/img123/9141/59464887gv2.jpg
Но чтобы не геморриться с патчингом кучи вызовов мы пропатчим функцию по адресу 00405040:
Вначале функции введем следующее:
http://img339.imageshack.us/img339/4886/58408445qu7.jpg
http://img339.imageshack.us/img339/1808/36960072tv2.jpg
Ввиду того что прыжок на адрес где лежит информация о неверной информации активировался только когда флаг Z будет активным, мы его насильно сделали неактивным, то есть равным 0 и соответственно прыжок на неверную регистрацию никогда не осуществится.
http://img339.imageshack.us/img339/4831/29569169ct0.jpg
Теперь сохраняем измененные байты в бинарник:
ПКМ->Copy to executable->All modifications
[ Заключение ]
В принципе способ довольно стандартный (немного коряво сделанный, но лень разбираться в 5 местах переходах на проверку серийника, лучше былобы фишить серийник, но опять таки лень поборола меня) и не требующий значительных усилий, и я лишь просто хотел показать какова защита на сегодня большинства программ.
© Хел
+++
Кряк к ней:
http://www.helkern.co.cc/tools/api.spy.2.5-patch.zip
Итак однажды мне попалась программа под названием API Spy 2.5. Это программа шпион API функций которые вызываются из программ. Но какая неудача - программка требовала регистрацию. Но это оказалась нам не помеха.
Нам понадобятся:
OllyDbg
PEiD
Скачать программу можно тут:
Код:
http://cracklab.ru/_dl/new/apis3225.rar
[ Go, Go, Go ]
Итак запускаем программу и видим следующее:
http://img123.imageshack.us/img123/2149/32144894ct2.jpg
Проверим запакована ли она сама PEiD'ом.
http://img123.imageshack.us/img123/7474/73051041xr0.jpg
Программа ничем не запакована и написана на С++. Ок продолжаем наше исследование.
Кликаем на кнопку Register внизу:
http://img123.imageshack.us/img123/2319/90006298up3.jpg
Вводим данные например SoulFreaker в качестве имени и 31337 в качестве серийника.
Видим месагбокс с информацией что серийник не верный.
Грузим программу в олли.
Вообще можно поставить бряки на различные функции программы считывания из эдитбокса или на окошко сообщения о неверной регистрации, вызвав ПКМ->Search for->All intermodular calls.
Но мы поступим по другому и сделаем следующее:
ПКМ->Search for->All referenced text strings
И там поищем строку о неверном серийнике:
ПКМ->Search for text->provided is incorrect
Видим ее расположение:
http://img123.imageshack.us/img123/6194/73665602ic1.jpg
Смотрим код чуть выше:
Код:
004018BC |> \0AC0 OR AL,AL
004018BE |. 74 02 JE SHORT apis32.004018C2
Жмем F9 и вводим регистрационные данные указанные выше.
Активируется бряк.
Жмем F8 и видим что по адресу 004018BE активирован прыжок на адрес где выводится сообщение о неверной регистрации.
http://img123.imageshack.us/img123/649/53098824bm7.jpg
Чтож, тут можно поступить разными способами, например фишить серийник, патчить функцию проверки либо патчить условные переходы в которых идет проверка серийника (а в данном случае их 5).
http://img123.imageshack.us/img123/9141/59464887gv2.jpg
Но чтобы не геморриться с патчингом кучи вызовов мы пропатчим функцию по адресу 00405040:
Вначале функции введем следующее:
Код:
xor al, al
inc al
retn
http://img339.imageshack.us/img339/4886/58408445qu7.jpg
http://img339.imageshack.us/img339/1808/36960072tv2.jpg
Ввиду того что прыжок на адрес где лежит информация о неверной информации активировался только когда флаг Z будет активным, мы его насильно сделали неактивным, то есть равным 0 и соответственно прыжок на неверную регистрацию никогда не осуществится.
http://img339.imageshack.us/img339/4831/29569169ct0.jpg
Теперь сохраняем измененные байты в бинарник:
ПКМ->Copy to executable->All modifications
[ Заключение ]
В принципе способ довольно стандартный (немного коряво сделанный, но лень разбираться в 5 местах переходах на проверку серийника, лучше былобы фишить серийник, но опять таки лень поборола меня) и не требующий значительных усилий, и я лишь просто хотел показать какова защита на сегодня большинства программ.
© Хел
+++
Кряк к ней:
http://www.helkern.co.cc/tools/api.spy.2.5-patch.zip