我最近一直在进行有关DEP的研究,我在Visual Studio下使用链接器选项/ NXCOMPAT编译了我的代码。当我在调试器下运行可执行文件并转储ntdll!_KPROCESS结构时,我得到以下信息:
+0x096 Flags : _KEXECUTE_OPTIONS
+0x000 ExecuteDisable : 0y0
+0x000 ExecuteEnable : 0y1
+0x000 DisableThunkEmulation : 0y0
+0x000 Permanent : 0y1
+0x000 ExecuteDispatchEnable : 0y0
+0x000 ImageDispatchEnable : 0y0
+0x000 DisableExceptionChainValidation : 0y1
+0x000 Spare : 0y1
表示已禁用DEP(ExecuteDisable == 0)。
我想补充一点,在我的机器下启用了硬件DEP。
最佳答案
阅读有关DEP in MSDN的信息,包括系统范围的设置以及与单个应用程序有关的/NXCOMPAT linker option。可能还有与DEP有关的BIOS设置。
关于c++ - 在Visual Studio中启用DEP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19892714/