【发布时间】:2017-01-04 11:52:21
【问题描述】:
如何确定 EXE(或 DLL)是否参与 ASLR,即是否可重定位?
我想检查我系统上的一些 EXE 是否可重定位并参与 ASLR。
我知道链接器的默认行为是去除基址重定位,这样 EXE 就不能重定位?
如何通过 FileAlyzer 等工具查看图像是否参与 ASLR?
【问题讨论】:
-
IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE flag 已转。只有 EXE 标头中的标志很重要,DLL 通常是可重定位的。
-
@HansPassant - 为什么 EXE 会在 DllCharacteristics 字段中包含标志?这个字段不是只对DLL“有效”吗?我已经看到一些 EXE 在我的系统上参与了 ASLR,尽管大多数加载在 0x401000。
-
如果您在 EXE 上启用 ASLR,它将有重定位。
标签: windows assembly linker portable-executable