压缩与脱壳-手动脱壳
2007-01-12 20:11:56 来源:WEB开发网现在, 运行脱壳后的notepad.exe吧,它应该正常运行了. 8)
__________________________________________________________
最后的说明
这篇教程是为所有和我一样的newbies而作.
我感谢和感激:
MiZ. 从他那里我学会了脱壳的基本技巧.
所有破解教程和CrackMe的作者,以及所有一直支持我的网站和论坛的Cracker们.
4、ASPack v1.083
压缩文件:下载。
如用TRW2000调试,装载后,下命令:pnewsec就可中断到入口点。为了提高跟踪水平,下面以SOFTICE为例,讲述跟踪过程。
____________________________________________________________
寻找程序的入口点( Entry Point)
用Symbol Loader打开Notepad-ASPACK.exe,点击Symbol loader的第二个图标("Load the currently open module")
如SOFTICE 装载成功,它应中断在起始程序入口处。
当跟踪时,你会经过许多条件跳转指令及循环指令,要用点技巧跳出这些圈子,其形式一般这样:
*************************************
aaaaaaaa
...
wwwwwwww
xxxxxxxx JNZ zzzzzzzz <-- 循环返回到aaaaaaaa
yyyyyyyy JMP aaaaaaaa
zzzzzzzz 新的指令
如果你跟踪时,你将跳转到 aaaaaaa处多次,你可将光标移到 zzzzzzzz一行,按F7让指令直接跳到此处,可省不少时间。
*************************************
在跟踪过程会来到:
167:0040D558 POPAD
0167:0040D559 JNZ 0040D563 (JUMP)
0167:0040D55B MOV EAX,00000001
0167:0040D560 RET 000C
0167:0040D563 PUSH EAX<--EAX的值就是入口点的值=4010CC
0167:0040D564 RET <--返回到记事本的真正的入口点
*************************************
0167:004010CC PUSH EBP <--真正的入口点
0167:004010CD MOV EBP,ESP
0167:004010CF SUB ESP,00000044
0167:004010D2 PUSH ESI
经过0167:0040D564 RET 一行,程序将来到0167:004010CC刚完全解压的真正程序第一条指令处。
*************************************
当我们跟踪时发现POPAD或POPFD,就要提高警惕,一般入口点就在附近了,在此程序的原始入口点是004010CC
在0167:0040D564 RET一行键入:
a eip (然后按回车)
jmp eip (然后按回车)
F5
这个方法是让程序挂起,按F5回到windows下。
运行 Procdump,在Task的列表中的第一个list上点击鼠标右键,然后选择"Refresh list". 在Task列表中找到notepad.exe,在它的上面点击鼠标右键.
然后,选中"Dump (Full)",给脱壳的程序起名存盘.
再在notepad.exe上点击鼠标右键,然后选中"Kill Task".
__________________________________________________________
修正入口点
脱壳的notepad.exe程序入口是004010CC.
再次使用ProcDump的PE Editor功能, 打开已脱壳的notepad.exe.
修正入口点值=4010CC-00400000(基址)=10CC
点击"OK".
现在, 运行脱壳后的notepad.exe吧,它应该正常运行了。
更多精彩
赞助商链接