首页
社区
课程
招聘
[求助]手动脱壳的时候为什么要修复导入表
发表于: 2009-4-10 16:36 4510

[求助]手动脱壳的时候为什么要修复导入表

2009-4-10 16:36
4510
手动脱壳的时候为什么要修复导入表?程序在内存里能够运行输入表应该是正确的啊,为什么抓下来以后要修复一下导入表才能正常运行?

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
你要将PE格式理解透就明白了。
参考PE文档,阅读此篇文章:
http://bbs.pediy.com/showpost.php?p=143576&postcount=10
2009-4-10 16:51
0
雪    币: 133
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我感觉是不是这样的。。。。。。。。。。。。

因为,当脱壳时,
你相当于将一些执行代码从原来的执行程序中删掉了,

那么对于你的执行文件来说,
其相对执行文件头的偏移全发生了变化,
2009-4-10 17:08
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
壳执行后,内存中有一张完整的IAT表,EXE通过这个IAT就可正常运行了。内存Dump后,只得到了这个IAT,这个IAT与当前系统有关,即调用地址是固定的,如在SP3系统上USER32.MessageBoxA是77D507EA  ,如果Dump的程序换个其他系统,如Win2000或XP SP2,这个地址就不对了。所以,需要根据IAT,重建一张完整的输入表。以便让PE文件运行时,能根据函数名生成一张正确的IAT表。
2009-4-10 17:15
0
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
雪老大的讲解就是透彻 ..
2009-4-10 17:33
0
雪    币: 218
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
老大分析的透彻,学习了!!
2009-4-11 11:44
0
游客
登录 | 注册 方可回帖
返回
//