如何关闭DEP

How to disable DEP

本文关键字:DEP 何关闭      更新时间:2023-10-16

我们有一个应用程序,其中堆的某些部分作为汇编指令执行/用于测试目的-我们将程序下载到PLC,但允许用户在下载到PLC之前通过执行代码来模拟运行他们的应用程序。之前我们总是从存储指令的堆中执行这些程序,这工作得很好,但是我们现在转换到VS2012,现在似乎关闭DEP不是那么容易。我想知道是否有可能关闭DEP,无论GetProcessDEPPolicy返回什么,或者是否有其他技术可以在不涉及DEP的情况下从堆中执行汇编指令?

你不想禁用DEP;你想修改你的应用程序在它里面工作。

每http://msdn.microsoft.com/en-us/library/windows/desktop/aa366553%28v=vs.85%29.aspx

If your application must run code from a memory page, it must allocate and set the proper
virtual memory protection attributes. The allocated memory must be marked PAGE_EXECUTE,
PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE, or PAGE_EXECUTE_WRITECOPY when allocating memory.

遵循这些简单的指示,您的代码可以与DEP共存。