首页
社区
课程
招聘
[求助]脱壳后修复,发现IAT函数名不对。。请教。。
发表于: 2015-7-12 17:53 6306

[求助]脱壳后修复,发现IAT函数名不对。。请教。。

2015-7-12 17:53
6306
随便写了一个小程序,是易语言的。
然后加了UPX的壳。
ESP定律脱壳,LoadPE转存,REC修复。
这一系列操作在XP下完成,在当前系统可以正常运行。
换到其他系统,比如WIN7,运行时提示:


使用IAT重建工具查看原因,发现函数名有问题:
下图是未加壳的原始编译IAT状态:


加壳UPX,并且正常脱壳修复,当前系统可以正常运行。
下图是脱壳修复后的IAT状态:


请老师们指点,谢谢!
分别3种状态的程序已经打包:
Desktop.rar

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 115
活跃值: (23)
能力值: (RANK:20 )
在线值:
发帖
回帖
粉丝
2
个人觉得你的win7是不是64位的,kernel32的基地址是否获取到了!这个可以OD跟一下!
2015-7-12 21:29
0
雪    币: 6825
活跃值: (1570)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
IAT没有修复好,需要手动修复
OEP为464D1,RVA填64FFC,IAT大小69C
附上手动修复IAT后的程序,unpack.exe是我自己脱的,dumped_FixIAT.exe是修复你脱壳后的程序,Win8 x64下全部成功运行
上传的附件:
2015-7-12 21:57
0
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯,我也发现了,换一个REC修复函数就正确了。
但是最重要的问题是,如果依然遇到这种问题,能不能手动修复函数名?
因为有时候使用插件脱壳,比如zeus插件,脱壳后的IAT中,函数名就是序号,不是原名。
这种情况时,我能不能借助其他工具修复函数名?或者能不能手动修改?
2015-7-13 15:42
0
雪    币: 7
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
基址对了,就是函数名变成序号了,程序找不到对应函数的序号。如果修复后是正常的函数名,程序就可以成功打开了。
所以我想请教大家,我如果手动修改已经脱壳好的函数名。。
2015-7-13 15:44
0
游客
登录 | 注册 方可回帖
返回
//