我已在启用了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
还讨论了基址的重用。