首页
社区
课程
招聘
[求助][求助]求高人解释一下究竟为什么某些壳脱壳后需要修复IAT?
发表于: 2012-6-10 13:29 11189

[求助][求助]求高人解释一下究竟为什么某些壳脱壳后需要修复IAT?

2012-6-10 13:29
11189
收藏
免费 0
支持
分享
最新回复 (27)
雪    币: 615
活跃值: (172)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
26
[QUOTE=kingcomer;1079193]因为dump出来的IAT已经填充了,Import REC 为了让IAT的地址是被loader根据函数名和dll加载填充的,而不是需要直接使用的表。
话说如果我的理解是正确的话,你说我理解对了,可是dump下的文件内原IAT函数地址也已经被填充了啊,OEP后的代码为JMP [原IAT地址],如此应当不修复也能使用才对,...[/QUOTE]

dump出来的地址只是当时的一个快照,地址是死的。因为没有加载模块,你直接使用那个地址是
错误的,即使系统模块地址没错,也只能在某个操作系统下正常。
5楼我的回复内容你再认真看一遍,我为什么要先讲动态加载过程再讲静态导入的原理就是这个原因
2012-6-11 10:46
0
雪    币: 615
活跃值: (172)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
27
你必须指定导入表目录导入表地址,否则操作系统无法为你加载模块,即使dump出的IAT填充了地址也无法直接地址,
因为没加载模块地址不存在,并且用户dll加载的基址可变,每次加载地址都有可能不一样。
2012-6-11 10:50
0
雪    币: 39
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
我自己原来试过,脱UPX壳DMP后,修改正确OEP,可在本机运行,其他的重建IAT工具貌似多做一份IAT表并正确指向 。。我是超级菜鸟。。。
2012-12-24 17:24
0
游客
登录 | 注册 方可回帖
返回
//