|
| |
精品推荐 |
 |
|
| |
|
|
|
|
对PECompact.exe v1.34的手动脱壳(2)
|
日期:2007年6月2日 作者: 查看:[大字体
中字体 小字体]
|
现在我们来保存输入表,下指令 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 又要跳转到41E000了。瞧这里,又要小心了。不要在Call 0041E009语句处按F10哦 015F:0041E000 9C PUSHFD 015F:0041E001 60 PUSHAD 015F:0041E002 E802000000 CALL 0041E009 015F:0041E007 33C0 XOR EAX,EAX 015F:0041E009 8BC4 MOV EAX,ESP 015F:0041E00B 83C004 ADD EAX,04 一路下来到 015F:0041E092 FFD0 CALL EAX 015F:0041E094 FFA59A214000 JMP [EBP+0040219A] 015F:0041E09A 61 POPAD 015F:0041E09B 9D POPFD 015F:0041E09C 6800704100 PUSH 00417000 015F:0041E0A1 C3 RET 又要跳到417000了。这里又要小心Call 00417009语句了。 015F:00417000 9C PUSHFD 015F:00417001 60 PUSHAD 015F:00417002 E802000000 CALL 00417009 015F:00417007 33C0 XOR EAX,EAX 015F:00417009 8BC4 MOV EAX,ESP 015F:0041700B 83C004 ADD EAX,04 一路下来,终于到终点站了。万岁! 015F:00417090 6A00 PUSH 00 015F:00417092 FFD0 CALL EAX 015F:00417094 FFA59A214000 JMP [EBP+0040219A] 015F:0041709A 61 POPAD 015F:0041709B 9D POPFD 015F:0041709C 6800104000 PUSH 00401000 015F:004170A1 C3 RET 程序真正的入口到了。在ret指令处我们下指令: PAGEIN D 400000 31000 C:\TEMP\DUMP.EXE
第三步。开始我们的后期修补工作。(Zzzzzz.....Zzzzzz......什么,大家都睡着了,没办法我总不能就此结束吧。咬牙继续写下去。)
1、启动HexWorkShop,打开Dump.exe。用菜单中的Go命令定位到0000D000处。用Select Block命令选择C40个字节,按Del键删除。
然后打到Dump.bin文件,用菜单中的Select Block命令选择C40个字节(用Select All一样)。用Copy命令复制到剪贴板。切换到Dump.exe窗口用菜单中的Paste命令粘贴过来。(注意当前位置是从D000开始的,不要贴错位置哦)
上一篇:对PECompact.exe v1.34的手动脱壳(1)
下一篇:ASProtect的加密算法初步分析(1)
|
| 对PECompact.exe v1.34的手动脱壳(2) 相关文章: |
|
|
|
| 对PECompact.exe v1.34的手动脱壳(2) 相关软件: |
|
|
|
|