如何知道dll是否使用ASLR?

问题描述 投票:10回答:2

如何检查某个dll是否使用ASLR?

让我们举例如kernel32.dll,它是否使用ASLR?以及如何检查其他dll ...

谢谢..

windows dll protection aslr
2个回答
16
投票

在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
...

0
投票

到目前为止,我发现的最好的工具是winchecksec

https://github.com/trailofbits/winchecksec/releases

它报告ASLR和其他Windows安全功能。

> winchecksec mylib.dll

Dynamic Base    : true
ASLR            : true
High Entropy VA : true
Force Integrity : false
Isolation       : true
NX              : true
SEH             : true
CFG             : false
RFG             : false
SafeSEH         : false
GS              : true
Authenticode    : true
.NET            : false
© www.soinside.com 2019 - 2024. All rights reserved.