压缩与脱壳-脱壳高级篇 下
2007-01-12 20:11:44 来源:WEB开发网核心提示: 0137:00C10E968BC0MOVEAX,EAX0137:00C10E9889C4MOVESP,EAX0137:00C10E9A89D0MOVEAX,EDX0137:00C10E9C8B1D6C66C100MOVEBX,[00C1666C]0137:00C10EA289041CMOV
0137:00C10E96 8BC0 MOV EAX,EAX
0137:00C10E98 89C4 MOV ESP,EAX
0137:00C10E9A 89D0 MOV EAX,EDX
0137:00C10E9C 8B1D6C66C100 MOV EBX,[00C1666C]
0137:00C10EA2 89041C MOV [EBX+ESP],EAX
0137:00C10EA5 61 POPAD
0137:00C10EA6 50 PUSH EAX ;push 442b98 即为入口点
0137:00C10EA7 C3 RET ;返回到己完全解压的代码处,即入口点处。
0137:00C10EA8 C3 RET
来到入口点:
0167:00442B98 55 PUSH EBP ←此处为入口点
0167:00442B99 8BEC MOV EBP,ESP
0167:00442B9B 83C4F4 ADD ESP,-0C
在0167:00442B98 处就可dump整个内存数据了,此时程序己完全解压准备运行了。记下程序入口点:00442B98
在dump前,清除所有的断点:bc *.
./dump 400000 79000 c:aspack.dumped.exe
(如你是用Icedump 6.016以前版本用此命令:pagein d 400000 79000 c:aspack.dumped.exe)
2、替换正确的import表
用Hexworkshop打开aspack.dumped.exe和aspack.idata.bin. Goto到exe文件的46000偏移处,Select Block大小为2000. 拷贝aspack.idata.bin文件的同样大小(2000)的Block,粘贴到exe文件中以替换掉不正确的.idata section,然后存盘。(注意:以上所有数据都是十六进制)
更多精彩
赞助商链接