-highentropyva编译器选项会告诉Windows内核某个可执行文件是否支持地址空间布局随机化(ASLR)。
-highentropyva[+ | -]
+ | - | 该选项指定 64 位可执行文件或由 -platform:anycpu 编译器选项标记的可执行文件支持地址空间布局随机化。该选项默认为禁用。使用 -highentropyva+ 或 -highentropyva 可启用该选项。 |
作为 ASLR 的一部分,-highentropyva 选项可使兼容版本的 Windows 内核在随机化进程的地址空间布局时使用更高的熵值。使用更高的熵值意味着可以为堆栈和堆等内存区域分配更多地址。因此,猜测特定内存区域的位置会更加困难。
当指定 -highentropyva 编译器选项时,目标可执行文件及其依赖的任何模块在作为 64 位进程运行时,必须能够处理大于 4 GB 的指针值。
要在 Visual Studio 开发环境中设置该编译器选项,请执行以下操作
1.打开项目的 "属性"页面
2.点击 Build(生成) 选项卡
3.在 Extra Commandline Options control(额外命令行选项) 中增加选项