Windows动态基础映像不会更改基础

问题描述

我已在启用了DynamicBase的情况下使用Visual Studio 2019社区构建了CMake控制台应用程序。该应用程序要做的第一件事是打印出main()的地址。我已经对ConsoleProject(不是CMake),32位和64位版本进行了相同的尝试。

main()的地址永不变。

我已经使用PEView和ProcessExplorer验证了该图像已启用ASLR。

我明显缺少什么吗?

OS:Win10(最新); VS最新下载。

解决方法

根据上述@Hans Passant的评论,这些地址仅在Windows 10重启后才重置(看来)。

此链接:

https://www.fireeye.com/blog/threat-research/2020/03/six-facts-about-address-space-layout-randomization-on-windows.html

还讨论了基址的重用。