对PECompact.exe v1.34的手动脱壳
2007-01-12 20:10:30 来源:WEB开发网核心提示: dd 40D0C8显示结果如下:0030:0040D0C8 0000D50A 0000D51A 0000D526 0000D538 ........&...8...0030:0040D0D8 0000D548 0000D556 0000D564 0000D57A H...V...d...z
dd 40D0C8
显示结果如下:
0030:0040D0C8 0000D50A 0000D51A 0000D526 0000D538 ........&...8...
0030:0040D0D8 0000D548 0000D556 0000D564 0000D57A H...V...d...z...
0030:0040D0E8 0000D58C 0000D59E 0000D5B4 0000D5C2 ................
0030:0040D0F8 0000D5D2 0000D5DE 0000D5F4 0000D5FE ................
继续追踪,下指令
db 40D50A
显示结果如下:
0030:0040D50A F4 00 47 65 74 4C 61 73-74 45 72 72 6F 72 00 00 ..GetLastError..
0030:0040D51A A7 01 4D 6F 76 65 46 69-6C 65 41 00 16 01 47 65 ..MoveFileA...Ge
0030:0040D52A 74 50 72 6F 63 41 64 64-72 65 73 73 00 00 CB 01 tProcAddress....
0030:0040D53A 52 65 61 64 43 6F 6E 73-6F 6C 65 41 00 00 31 00 ReadConsoleA..1.
(以上说这么多,只是为了说明找输入表的方法的具体实现过程,原理在各位高手的"脱壳高级篇"已经说得很详细了)
OK,符合输入表的规范。看来这就是我们要找的输入表了。我们还要确定一下输入表的长度,在数据窗口中向下翻页。直到发现大量的0x00字节。确定一下长度为C40字节。(这次就不Dump窗口看了,写到这里我开始怀疑我这篇又臭又长的文章不知道要写多长,大家还没有看着看着睡着了吧 :-) )
现在我们来保存输入表,下指令
PAGEIN D 40D000 C40 C:TEMPDUMP.BIN
现在再来确定程序真正的Entry Point
1、这里我为了省事,干脆
BD *
禁止所有中断,然后按F5运行程序,重新在SoftICE的Loader中单击Load按钮运行程序,(当然这种方法在对PECompact.exe的脱壳中可以用,其他的就不一定了)又中断在第一条指令。窗口显示如下:
更多精彩
赞助商链接