windows 如何知道一个dll是否使用ASLR?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/8554014/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to know whether a dll uses ASLR or not?
提问by CnativeFreak
how to check whether a certain dll uses ASLR or not ?
如何检查某个dll是否使用ASLR?
lets take for example kernel32.dll, does it use ASLR or not ? and how to check other dlls ...
让我们以 kernel32.dll 为例,它是否使用 ASLR?以及如何检查其他dll...
thanks ..
谢谢 ..
回答by Hans Passant
Use dumpbin.exe /headers on the DLL. The DLL characteristics will show "Dynamic base" if ASLR is enabled:
在 DLL 上使用 dumpbin.exe /headers。如果启用 ASLR,DLL 特性将显示“动态基础”:
...
OPTIONAL HEADER VALUES
10B magic # (PE32)
9.00 linker version
D0000 size of code
30000 size of initialized data
0 size of uninitialized data
132A3 entry point (7DD732A3)
10000 base of code
D0000 base of data
7DD60000 image base (7DD60000 to 7DE6FFFF)
10000 section alignment
10000 file alignment
6.01 operating system version
6.01 image version
6.01 subsystem version
0 Win32 version
110000 size of image
10000 size of headers
1164FD checksum
3 subsystem (Windows CUI)
140 DLL characteristics
Dynamic base <== Here
NX compatible
40000 size of stack reserve
...