В прошлой статье я рассказал, как распаковывать telock 0.99 используя
PEID, а точнее его OEP модуль. Здесь я расскажу, как самому найти
OEP, без каких-либо купаний в коде протектора.

Приступим. Для примера возьмем тот же файл, что и в предыдущей статье,
а именно: TMG CloneDVD 1.1.6.1 Keygen. Вы также можете взять какой либо другой, интересный вам файл, защищенный telock
версии 0.98\0.99 (это опробованные мной версии, при которых описанный здесь способ
прекрасно работает), при этом отличаться будут лишь адреса.

Откроем SoftIce и поставим точку останова на прерывание int 3,
введем "bpint 3", выйдем из SoftIce. Теперь запустим нашу подопытную программу
и сразу же оказываемся в отладчике:

017F:0042707A E800000000 CALL 0042707F
017F:0042707F 5D POP EBP 
017F:00427080 8D4546 LEA EAX,[EBP+46] 
017F:00427083 50 PUSH EAX 
017F:00427084 33C0 XOR EAX,EAX 
017F:00427086 64FF30 PUSH DWORD PTR FS:[EAX] 
017F:00427089 648920 MOV FS:[EAX],ESP 
017F:0042708C CC INT 3 ; мы окажемся здесь 
017F:0042708D 90 NOP 
017F:0042708E 8BC0 MOV EAX,EAX 
017F:00427090 F9 STC 
017F:00427091 90 NOP 
017F:00427092 8D045D34120000 LEA EAX,[EBX*2+00001234] ;
сюда поставим bpx 
017F:00427099 F8 CLC 
017F:0042709A 90 NOP 
017F:0042709B C1EB05 SHR EBX,05 
017F:0042709E FC CLD 
017F:0042709F 90 NOP 
017F:004270A0 C1C007 ROL EAX,07 
017F:004270A3 90 NOP 
017F:004270A4 90 NOP 
017F:004270A5 33DB XOR EBX,EBX 
017F:004270A7 F7F3 DIV EBX 
017F:004270A9 64678F060000 POP DWORD PTR FS:[0000] 
017F:004270AF 83C404 ADD ESP,04 ; 
017F:004270B2 66BE4746 MOV SI,4647 ;
официальный back-door softice 
017F:004270B6 66BF4D4A MOV DI,4A4D ; 
017F:004270BA 8A8599000000 MOV AL,[EBP+00000099] 
017F:004270C0 E99C000000 JMP 00427161 
017F:004270C5 8B442404 MOV EAX,[ESP+04] 
017F:004270C9 8B4C240C MOV ECX,[ESP+0C] 
017F:004270CD FF81B8000000 INC DWORD PTR [ECX+000000B8]
017F:004270D3 8B00 MOV EAX,[EAX]

Мы будем находиться по адресу 0042708C, теперь отключим все bp, введем "bc
*" и поставим bpx после инструкции STC, введем "bpx 00427092". Отпустим SoftIce
и вновь в нем окажемся, сработал bpx 00427092, т.о. мы прошли незамеченными.
Теперь введем "bpm esp+24" и снова отпустим SoftIce, когда отладчик всплывет
мы окажемся здесь:

017F:004287AC EB02 JMP 004287B0 
017F:004287AE CD20 INT 20 VXDJmp 2464,7F61 
017F:004287B1 FF6424D0 JMP [ESP-30] ;
мы здесь, [esp-30]=OEP 
017F:004287B5 CA0000 RETF 0000 

Этот прыжок ведет к OEP, отключаем bpx, введем "bc *" и жмем F8.
Все, теперь мы точно по адресу OEP. Делаем дамп и восстанавливаем импорт в
соответствии с предыдущей статьей.

Оставить мнение