Патчинг API Spy 2.5

Тема в разделе "Статьи", создана пользователем Хел, 13 окт 2008.

  1. Хел
    Хел Guest
    [ Введение ]

    Итак однажды мне попалась программа под названием 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
    
    Поставим бряк на адрес 004018BC нажав F2 на нужном адресе.
    Жмем 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 местах переходах на проверку серийника, лучше былобы фишить серийник, но опять таки лень поборола меня) и не требующий значительных усилий, и я лишь просто хотел показать какова защита на сегодня большинства программ.

    (c) Хел, specially for Xaker.Name
     
    Последнее редактирование модератором: 21 окт 2008
    13 окт 2008
    5 пользователям это понравилось.
  2. akeo19
    akeo19 Новичок
    Симпатии:
    0
    good post will translate to english until understand it
     
    10 дек 2008
  3. wriwel
    wriwel Guest
    akeo19,
    use translate.ru plz or more translater
     
    10 дек 2008
Загрузка...