脱PEX V0.99b bart^crackPL的壳。
这个壳的强度一般,不过有对ice和trw的陷阱,我们要设法跳过去。
工具:trw、ice、improtrec等。
我不说是哪个程序,但是如果你要想跟我一同研究探讨的话请Q我。
好了,来吧!
真正的入口?用冲击波就可以找到:4261F4。但是我们还要手动试试。
用trw载入它,load。
017F:00447FFE INVALID
017F:00448000 JMP 004480FA <----入口,按F8继续跟。
017F:00448005 OR EAX,C4C4C40A
...............
017F:004480FA
PUSHAD
017F:004480FB CALL
00448101 <-----注意!你可以看到这个CALL的地址448101与4480FB很近,所以以后看到有这样的CALL都要按F8单步执行。
017F:00448100 CALL E8494588
017F:00448105
ADD [EAX],EAX
017F:00448107 ADD [EAX],AL
017F:00448109
JMP D632026B
017F:0044810E AND AL,[EAX+00]
017F:00448111
CALL 0044831C
017F:00448116 CALL
032F8A06
017F:0044811B INT 20 VXDCall 9A24,24FF
017F:00448121 MOV SI,4647
017F:00448125 CALL 0044812B
017F:0044812A CALL
4023:27958D59
017F:00448131 ADD AL,CH
017F:00448133
ADD [EAX],EAX
017F:00448135 ADD [EAX],AL
017F:00448137
IMUL EBX,[EAX+66],E84A4DBF
017F:0044813E ROL DWORD PTR [ECX],00
017F:00448141 ADD [EBP+01E8F952],CL
017F:00448147 ADD
[EAX],AL
你按几次F8就会来到陷阱处了,小心咯!会死机的。
017F:00448142 LEA
EDX,[EDX-07]
017F:00448145 CALL 0044814B
017F:0044814A
CALL 0010E9AA
017F:0044814B POP EBX
<----就是这里
017F:0044814C PUSH
9AE2FFCC <-----置陷阱
017F:00448151 JMP ESP <----掉入陷阱咯!我们进去看看!
017F:00448153 IMUL EDI,EDI,402545A5
017F:00448159 ADD
CL,CH
017F:0044815B CALL 00448119
仔细看看:esp下的值。
EAX=00000000 EBX=0044814A ECX=00448142 EDX=00448154
ESI=81654647
EDI=00004A4D EBP=00045E34
ESP=0068FE08 EIP=0068FE08 o d I s Z a P c
CS=017F
DS=0187 SS=0187 ES=0187 FS=4B8F GS=0000
哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪dword哪哪哪哪哪哪腜ROT哪?0)哪
0187:0068FE08 9AE2FFCC 0068FF68 004481F1 00045E34
....h.h...D.4^..
0187:0068FE18 0044815B
00000000 81652CD8 0068FF78 [.D......,e.x.h.
0187:0068FE28 0068FE3C 00000000 81652D38 81652CF8
<.h.....8-e..,e.
0187:0068FE38 00448000
BFF8B86C 00000000 81652CD8 ..D.l........,e.
0187:0068FE48 00000000 74746F4C 00797265 00455845
....Lottery.EXE.
哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪腜ROT32
017F:0068FE02 F7BFFFFFFFFF IDIV
DWORD PTR [EDI-0001]
017F:0068FE08 CC
INT 3 <----会来到这!阿!明白了应该是利用int 3来判断是否被调试工具调试。按F8就会非法操作了。我把数据栏你的数据9AE2FFCC改为9AE2FF4A,这样就不会出错了。
017F:0068FE09 FFE2
JMP EDX
017F:0068FE0B
9A68FF6800F181 CALL 81F1:0068FF68
017F:0068FE12
44 INC
ESP
017F:0068FE13 00345E
ADD [EBX*2+ESI],DH
017F:0068FE16
0400 ADD
AL,00
017F:0068FE18 5B
POP EBX
017F:0068FE19 81440000000000D8 ADD
DWORD PTR [EAX+EAX+00],D8000000
...改后的程序:
017F:0068FE02
F7BFFFFFFFFF IDIV DWORD PTR [EDI-0001]
017F:0068FE08 4A
DEC
EDX
017F:0068FE09 FFE2
JMP EDX
017F:0068FE0B 9A68FF6800F181 CALL
81F1:0068FF68
......按F8继续
017F:004481D9 32C6
XOR AL,DH
017F:004481DB D2C0
ROL AL,CL
017F:004481DD
D3C2 ROL
EDX,CL
017F:004481DF 8807
MOV [EDI],AL
017F:004481E1
47 INC
EDI
017F:004481E2 49
DEC ECX
017F:004481E3 75D0
JNZ 004481B5
017F:004481E5
E801000000 CALL 004481EB
017F:004481EA E883C4040F CALL
0F494672
017F:004481EB 83C404
ADD ESP,04
017F:004481EE 0F0B
UD2 <----这里小心,按F6,移动光标到4481FD后按F7。跳过这里。
017F:004481F0 E82BD2648B CALL
8BA95420
017F:004481F5 028B20648F02
ADD CL,[EBX+028F6420]
017F:004481FB 58
POP EAX
017F:004481FC 5D
POP EBP
017F:004481FD C3
RET
....以后就没有什么了,多数用F8+F6+F7就可以搞定,要注意跳过循环。这可要一定的技巧,就看你的了。很快就会转入660XXX的层解还原了,你可以看到基址、IAT和部分API里面的函数了,这可是事后修复IAT的参照阿!
可以直接bpx 4261f4,然后makepe了。
- 标 题:脱PEX V0.99b bart^crackPL的壳。 (6千字)
- 作 者:小球[CCG]
- 时 间:2002-5-24
16:58:01
- 链 接:http://bbs.pediy.com