对PECompact v1.34的手动脱壳(2)
2006-07-03 20:26:04 来源:WEB开发网核心提示:现在我们来保存输入表,下指令PAGEIN D 40D000 C40 C:\TEMP\DUMP.BIN现在再来确定程序真正的Entry Point1、这里我为了省事,对PECompact v1.34的手动脱壳(2),干脆BD *禁止所有中断,然后按F5运行程序,按F8继续,这一段就要小心一点,重新在SoftICE的Loa
现在我们来保存输入表,下指令
PAGEIN D 40D000 C40 C:\TEMP\DUMP.BIN
现在再来确定程序真正的Entry Point
1、这里我为了省事,干脆
BD *
禁止所有中断,然后按F5运行程序,重新在SoftICE的Loader中单击Load按钮运行程序,(当然这种方法在对PECompact.exe的脱壳中可以用,其他的就不一定了)又中断在第一条指令。窗口显示如下:
015F:0041E800 EB06 JMP 0041E808 (JUMP )
015F:0041E802 6800E00100 PUSH 0001E000
015F:0041E807 C3 RET
==> 0041E808 9C PUSHFD
015F:0041E809 60 PUSHAD
015F:0041E80A E802000000 CALL 0041E811 (注意了,这里可不是什么过程调用,只是JMP的变形而已)
015F:0041E80F 33C0 XOR EAX,EAX
015F:0041E811 8BC4 MOV EAX,ESP
015F:0041E813 83C004 ADD EAX,04
注意,在Call 0041E811语句处我们要按F8键继续,不然就Over了。这里的Call语句可不是什么真正的过程调用。无非是变相的一种Jmp跳转语句而已。要识别它也不难。看看它跳转的地址是否就在附近。如果是就小心了。按F8键不要按F10键。
好了,转过了一道小小的弯,一路F10下来,还顺风顺水。直到如下
015F:0041E860 5F POP EDI
015F:0041E861 8DB570804000 LEA ESI,[EBP+00408070]
015F:0041E867 B99F030000 MOV ECX,0000039F
015F:0041E86C F3A5 REPZ MOVSD
015F:0041E86E 5F POP EDI
015F:0041E86F C3 RET
到了第一个ret。看!它要跳转了。又一段旅程开始。按F8继续,这一段就要小心一点,直到。
015F:00420121 8BB53E854000 MOV ESI,[EBP+0040853E]
015F:00420127 8BBD42854000 MOV EDI,[EBP+00408542]
015F:0042012D E82E0A0000 CALL 00420B60
015F:00420132 61 POPAD
015F:00420133 9D POPFD
015F:00420134 50 PUSH EAX
015F:00420135 6800E04100 PUSH 0041E000
015F:0042013A C20400 RET 0004
更多精彩
赞助商链接