目标:Design-Expert v7.00
下载: http://www.statease.com/files/dx7-trial.exe
(这是个生物软件,安装程序 13.7 Mb)
此软件使用的壳不太常见:Protection Plus 4.x -> Concept Software。按照 Fly 一篇教程里的说法,这种壳应该是属于 easy 之类,但本人既是壳盲,再加上很久不玩 Crack 了,感到力不从心。
虽然不甚明了,但是按照 Fly 的方法以及下面的方法,我得到的 OEP:7B3638。
-----------------------------------
我的方法:
按照所谓 ESP 定律,直接下断 HW 12FFC0,那么 OD 载入 DX7Trial.EXE:
00AC0030 > 50 PUSH EAX
00AC0031 60 PUSHAD
00AC0032 29C0 SUB EAX,EAX
00AC0034 64:FF30 PUSH DWORD PTR FS:[EAX]
00AC0037 E8 00000000 CALL DX7Trial.00AC003C
00AC003C 5D POP EBP
00AC003D 83ED 3C SUB EBP,3C
00AC0040 89E8 MOV EAX,EBP
----------------------------------
在 F9 两次之后,Nag 弹出来,点 Evaluate... ,再按 Continue,
断下来到达此处:
0153382F 90 NOP
01533830 8B4424 04 MOV EAX,DWORD PTR SS:[ESP+4]
01533834 8B6424 08 MOV ESP,DWORD PTR SS:[ESP+8]
01533838 894424 20 MOV DWORD PTR SS:[ESP+20],EAX
0153383C 29C0 SUB EAX,EAX
0153383E 64:8F00 POP DWORD PTR FS:[EAX]
01533841 61 POPAD
01533842 870424 XCHG DWORD PTR SS:[ESP],EAX
01533845 C3 RETN //停在此处,F7走过即达 OEP(?)
01533846 CC INT3
----------------------------------
从上面 F7 过来----OEP(?):
007B3638 55 PUSH EBP
007B3639 8BEC MOV EBP,ESP
007B363B 6A FF PUSH -1
007B363D 68 18F58100 PUSH DX7Trial.0081F518
007B3642 68 C0377B00 PUSH DX7Trial.007B37C0 ; JMP to msvcrt._except_handler3
007B3647 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
007B364D 50 PUSH EAX
007B364E 64:8925 00000000 MOV DWORD PTR FS:[0],ESP
007B3655 83EC 68 SUB ESP,68
007B3658 53 PUSH EBX
007B3659 56 PUSH ESI
007B365A 57 PUSH EDI
007B365B 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
----------------------------------
管它对不对的,继续用 LoadPE 修正 ImageSize 后完全DUMP此进程。再用LordPE 把 Dump 文件的 .rsrc 区段 rsize 、vsize 修正为 19600 。
再运行 ImportREC ,选择 DX7Trial.EXE 进程 。把OEP改为3B3638,IAT AutoSearch,Get Import,哦,一堆 Invalid imports。Trace Level1(Disasm)之后还是有 Invalid ,直接 Cut Thunks,Fixdump 。最终得到文件由 4220 Kb ---> 7016 Kb 。
双击运行――预料之中得没有报错――也没有任何反应,呵呵,看来还有自校验?或者我上面有什么错误?我怀疑还是我找到的 OEP 错误,就连 PEiD 也能找到这个地址。
请Fly等诸位版主、大侠多多指教,我忙活了两晚上了,需要人帮忙指点迷津啊!谢谢!
[课程]Linux pwn 探索篇!