首页
社区
课程
招聘
[求助]PE文件32位与64位
发表于: 2015-8-4 15:31 4062

[求助]PE文件32位与64位

2015-8-4 15:31
4062
是这么个情况

在WindowsXP下 x86

PE文件的入口地址是 :ImageBase + AdressOfEntryPoint

在Windwos 10 下 x64

PE文件的入口地址:IamgeBase 却失效了.AdressOfEntryPoint仍然起到偏移的作用

请问ImageBase为什么失效. 而程序中新的ImageBase 是如何来的尼? 如果获取呢?

请了解这一块的童鞋为我解答一下,不胜感激。

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 293
活跃值: (287)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
ImageBase不可能失效的,地址不一样说明PE文件中 DllCharacteristics 设置了 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE,地址随机化。
重定位表需要ImageBase重新计算地址的,你只要把IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE标志去掉,加载地址就是ImageBase地址了。
2015-8-4 15:59
0
雪    币: 2291
活跃值: (938)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
2楼正解,这个exe编译的时候应该编译选项加入了ASLR的,然后Win10上默认就使用了这个特性。
2015-8-4 16:07
0
雪    币: 207
活跃值: (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
非常感谢您的解答!这对我很受用。谢谢
2015-8-4 16:27
0
游客
登录 | 注册 方可回帖
返回
//