Исследование программы Кулинарая Книга 3.3 Автор: SLV/[ROCK Team]. Интрументы: 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("Программа уже зарегистрированна"). Спосибо за интерес к статье. Greeting'Z: 2All CrackL@b visitor's; 2All ROCK Team members; MoonShiner; RU.[BAN]OK!; MC707; EGOiST; CReg; -=Alex=-; SGA; XoraX; OxEn; B-Shep; GPcH; dMNt, etc...