学脱DxPack V0.86的壳

【工具】PEiD,OllyDbg,ImportREC
【目的】学习研究
【目标】Win98记事本,用DxPack V0.86加过壳的

最近对脱壳比较感兴趣,便从网上搜集了一些资料拿来研究,收获不小。
1、先用PEiD查壳,当然是DxPack V0.86 -> Dxd *,我用的PEiD是最新版的,能够查出这个壳,以前的版本是查不出的。

2、载入OllyDbg ,会弹出一个入口点警报对话框,点确定,接着又弹出一个对话框询问是否继续分析,选否。
0040D000 >  60              PUSHAD //程序停在这里,F8单步执行
0040D001    E8 00000000     CALL dxpack.0040D006 //C
0040D006    5D              POP EBP
0040D007    8BFD            MOV EDI,EBP
0040D009    81ED 06104000   SUB EBP,dxpack.00401006
0040D00F    2BBD 94124000   SUB EDI,DWORD PTR SS:[EBP+401294]
0040D015    81EF 06000000   SUB EDI,6
0040D01B    83BD 14134000 0>CMP DWORD PTR SS:[EBP+401314],1
0040D022    0F84 2F010000   JE dxpack.0040D157 //一直F8单步执行到这里,发现是个长跳转,回车


0040D157    8B85 9C124000   MOV EAX,DWORD PTR SS:[EBP+40129C] //按回车后,跳到这行,按F4执行到这
0040D15D    03C7            ADD EAX,EDI //F8继续单步执行
0040D15F    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
0040D163    61              POPAD //关键,脱壳时到POPAD就要注意了,一般程序的直正入口地址就在这附近
0040D164    FFE0            JMP EAX //到这里,程序的真正入口地址出现了,就在EAX寄存器中,再按F8


004010CC    55              PUSH EBP //到了,这就是程序的真正入口地址
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI

点右键用OllyDump脱壳

3 、用ImportREC修复一下

 

你可能感兴趣的:(c,工具)