609358291 发表于 2008-3-2 20:50:35

脱ASProtect 2.11 SKE后补区段时提示“头部无足够的可用空间”

程序:一个游戏的外挂 免费版

壳:ASProtect 2.1x SKE -> Alexey Solodovnikov

工具:Aspr2.XX_IATfixer_v1.02s
      OllyDBG 1.10
      ImportREC 1.6      
      LordPE



------------------------------------------------------------------------------------------------------------------------
一、修复IAT,找到OEP:
OD载入,运行VolX的Aspr2.XX_IATfixer_v1.02s脚本:
00401000 > 68 01406900   PUSH BDKS.00694001               ; OD载入停在这里
00401005   E8 01000000   CALL BDKS.0040100B
0040100A   C3         RETN
0040100B   C3         RETN
0040100C   84C3         TEST BL,AL


脚本结束后停在这里,OD的记录里记载着OEP地址,LOG中记载着IAT的起始地址及大小:
01230290   55         PUSH EBP                     ; 00050B31C,OEP地址
01230291   F2:         PREFIX REPNE:                  
01230292   EB 01       JMP SHORT 01230295
01230294   9A 8D6C5144 2EE>CALL FAR EB2E:44516C8D            
0123029B   01F3         ADD EBX,ESI
0123029D   83ED 44       SUB EBP,44
012302A0   BD 1EE94700   MOV EBP,47E91E
      
看脚本LOG记录:
OEP=0050B31C-00400000=0010b31c
信息=iatstartaddr: 00512190-00400000=00112190
信息=iatsize: 000007F4

使用LORDPE完整转存,保存成dumpd.exe,启动\ImportREC v1.6F Fix,填入OEP 0010b31c.RVA=00112190,Size=7F4--->获取输入表,指针全部正确。修复转储文件,得到dumped_.exe。


二、补区段
Alt+M,打开内存窗口。
在00BA0000~012E0000下所有Priv类型F2断点,然后逐步F9,看程序运行中需要壳中的哪些区段。

可以看出程序运行需要壳中的下面区段

00BA0000-00BD0000   
00FF0000-01033000   
01040000-01054000      
01200000-01201000      
01230000-01234000      
012A0000-012A1000      
012B0000-012B1000      
012C0000-012C1000         
012D0000-012D1000      
012E0000-012E1000      

共10个区段,此时LordPE--->区域转存--->上面的10个区段。
再用LordPE加载dumped_.exe,选取区段表SECTIONS,右击从硬盘载入区段。分别将这10个区段载入。

我只载入了一个 就提示我『头部无足够的可用空间』
    我试过 重建PE 但是 还是 不能完全载入进去! 请高手 们 教教 怎么添加这个载入的空间啊,小弟先谢过了!

老海 发表于 2008-3-3 00:05:21

学习中,我没用脚本脱过壳,只是用OD直接脱过。你的问题不太清楚,看来还是请高手出来吧。

609358291 发表于 2008-3-3 15:25:49

waiting for高手....
页: [1]
查看完整版本: 脱ASProtect 2.11 SKE后补区段时提示“头部无足够的可用空间”