Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Исследование программы Кулинарная книга 3.3

Обсудить статью на форуме

Хорошая подборка видеоуроков, инструментов крэкера, книг и статей - здесь.

Автор: SLV <slv@superman.ru>

Автор: SLV.

Интрументы:
OllyDebug; PEditor v1.7 by Yoda; ImpRec v1.6 FINAL; HIEW; PEiD; W32DASM v10; PETools

Исследование:
Загрузим exeшник в PEid, а лучше в PESniffer из PETools. ASProtect v1.2 - помазал нам анализатор. Чтож, открываем оллю и запуснаем в неё нашу Кул. книгу. Когда выйдет мегабокс с вопросом о продолжении анализа ответьте No. Жмём F9. Прога встала. Теперь давим шифт+F9 до тех пор, пока программа не запустится, считая количество нажатий. Далее начинаем всё с начала F9->>Shift + F9 столько раз, сколько мы заранее подсчитали минус один (чтобы прога не запустилась). Должны остановиться здесь:

012D89C3 FF06 INC DWORD PTR DS:[ESI]
012D89C5 ^EB E8 JMP SHORT 012D89AF
012D89C7 35 25628239 XOR EAX,39826225
012D89CC 33FF XOR EDI,EDI
012D89CE 64:8F07 POP DWORD PTR FS:[EDI]
012D89D1 5F POP EDI
012D89D2 E8 00000000 CALL 012D89D7
012D89D7 B8 0A648239 MOV EAX,3982640A

... пропущено около 15 строк ...

012D8A16 E9 07000000 JMP 012D8A22
012D8A1B 23C7 AND EAX,EDI
012D8A1D 98 CWDE
012D8A1E C3 RETN ; <<- Ставим сюда бряк (на первый ret)
012D8A1F F8 CLC

BreakPoint поставлен (F2) ->> Shift+F9. Вызываем CommandLine (Alt+F1) и пишем TC EIP<900000. Давим Enter и оказываемся тут:

004F6A78 55 PUSH EBP
004F6A79 8BEC MOV EBP,ESP
004F6A7B 83C4 F4 ADD ESP,-0C
004F6A7E 53 PUSH EBX
004F6A7F B8 D0664F00 MOV EAX,Копия_KU.004F66D0
004F6A84 E8 3F04F1FF CALL Копия_KU.00406EC8
004F6A89 8B1D ECBB4F00 MOV EBX,DWORD PTR DS:[4FBBEC]

Да, да, да, это конечно же OEP. Теперь можно снимать дамп. PEdior->>Tasks->>DumpFull (можно Kill Task, если помните OEP). Получаем dumped.exe 2+Mb, против 760Kb первоначально смотрится не плохо. Остался импорт. Запускаем KULINAR.EXE (тот файл, который был у нас первоначально). Пускаем в дело ИмпРек. В комбо-боксе выбтраем наш процесс, в OEP пишем F6A78 (OEP=OEP-ImageBase), берём импорт (Get imports) и полечаем где-то 50/50 (Invalid/Suspend). ShowInvalid->>Trace level 1 (Disasm)... нашлись. Нам пригодится плагин, сделанный по статье EGOiST-а. Взять статья, где описывается написание данного плагина можно у Hex-а (xtin.org). ShowInvalid ->> PlugunTracers ->> ASprotect 1.2... нашлась (GetProcAddress). Теперб прилепис импорт к дампу (Fix dump) и получаем полностью работоспособный дамп (кто хочет, может сделать RebuildPE). Сейчас можно и дизассемблировать. W32DASM ->> OpenFileForDisassembling ->> Dumped_.exe. Подождё пока эти два с половиной метра пройдут обработку. Подождали =). В инструментах я указал W32DASM версии именно 10, т.к. только она понимает кирилицу. Можно пользоваться патчами, но я рекомендую пользоваться десятой версией. Посмотрим, что там интересного в стрингах и натыкаемся на это:

* Possible StringData Ref from Code Obj ->"Так как Вы пользуетесь незарегистрированной "
->"копией"
|

скроллим текст вверх и видим это:

:004E850C E88BA5F1FF call 00402A9C
:004E8511 B803000000 mov eax, 00000003
:004E8516 E82DA8F1FF call 00402D48 ; mAin pROC =)
:004E851B 85C0 test eax, eax ; А не зареганы ли мы?
:004E851D 0F85B5000000 jne 004E85D8 ; Нет?
:004E8523 A1ECB84F00 mov eax, dword ptr [004FB8EC]

Тупость стара как мир. Заходим в процедуру:

* Referenced by a CALL at Addresses:
|:004AC487 , :004ACC81 , :004AD020 , :004E8516 , :004E8762
|:004F375C
|
:00402D48 691540C04F0005840808 imul edx, dword ptr [004FC040], 08088405
:00402D52 42 inc edx
:00402D53 891540C04F00 mov dword ptr [004FC040], edx
:00402D59 F7E2 mul edx
...

и меняем всю эту глупость на знакомые строки:

xor eax,eax
inc eax
ret

Это не всё. Теперь все признаки незарегистрированности исчезли, а на вкладке "Регистрация" появился... серийный номер :). Записывайте его в упакованную программу при нажатии на пимпу Зарегистрировать выходит ShowMessage("Программа уже зарегистрированна").
Спасибо за интерес к статье.


Обсуждение статьи: Исследование программы Кулинарная книга 3.3 >>>


Комментарии к статье: Исследование программы Кулинарная книга 3.3

Bob 01.07.2004 16:35:15
Все делается не так. Ичем в дасме сообщение о неправельном серийнике, смотрим откуда оно вызывается и перед call, который проверяет правильность серийника смотрим что находится по адресу, который находится в регистре EDX. А это и есть правельный серийник....
Извени, но так проще :-))
---
SLV 02.07.2004 12:59:28
Я делаю как привык
---
Mixa 05.07.2005 19:14:41
я вообще не понял и \"меняем всю эту глупость на знакомые строки\" а, что именно менять если я первый раз с этим столктнулся можно поподробнее написать ?
---

Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS