首页
社区
课程
招聘
[求助]关于修复IAT的问题?
发表于: 2007-1-24 21:12 4338

[求助]关于修复IAT的问题?

2007-1-24 21:12
4338
我手动脱UPX壳成功了,在自己的机器上可以打开程序,但是在别的机器上打开不了.修复IAT之后,搞定.
我想问问:为什么我在自己机器上打的开,也许是因为系统的DLL已经加载了,库函数的地址已经确定了,但是我本机重启之后,没有修复IAT的程序仍然可以打开?为什么呢?难道,系统的DLL每次装载的地址都是一样的吗?
我是菜鸟,希望高手跟我解释清楚这个问题.
谢谢!!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么没有高手帮我解答下呢?
2007-1-25 08:20
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
http://bbs.pediy.com/showthread.php?s=&threadid=20366 第10楼
这个你要了解PE结构中的输入表部分,特别是IAT这块,在你本机抓取镜像时,IAT全是你本地的函数地址(同一机子,地址是固定的),因此程序可以运行,换了台机子,这些函数地址可能就不是这些值,所以不能运行。如果修复了输入表,程序将根据函数名确定函数地址。
2007-1-25 09:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢看雪老大的帮助,还想弱弱的问一句.我DUMP出来之后的IAT是本机硬盘的地址吧?不是内存的地址是吧?要不然重启之后DUMP之后没有修复IAT的EXE怎么还能运行呢?
2007-1-25 10:41
0
雪    币: 47147
活跃值: (20460)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
最初由 宠辱不惊 发布
谢谢看雪老大的帮助,还想弱弱的问一句.我DUMP出来之后的IAT是本机硬盘的地址吧?不是内存的地址是吧?要不然重启之后DUMP之后没有修复IAT的EXE怎么还能运行呢?


是内存中的地址。
我建议你花点时间熟悉一下PE格式,特别是输入表这部分。
2007-1-25 10:47
0
雪    币: 101
活跃值: (12)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
6
你直接dump出来的只是在iat中填的正确的数字。
你修复了import表, 那么iat里面的数字是由系统根据名字
自动填写的。

好比你叫小毛。 你在家只穿红衣服, 在公司只穿绿衣服。
那么你说穿红衣服的那个, 在家总能找到你。
但是要说找小毛。 才是到任何地方都能知道是叫你。。
2007-1-26 18:40
0
游客
登录 | 注册 方可回帖
返回
//