我们有一个应用程序,其中堆的某些部分作为汇编指令执行/用于测试目的-我们将程序下载到PLC,但允许用户在下载到PLC之前通过执行代码来模拟运行他们的应用程序。以前,我们总是从存储指令的堆中执行这些程序,这很好用,但现在我们已经转换为VS2012,现在似乎关闭DEP并不那么容易。我想知道是否有可能在不考虑GetProcessDEPPolicy返回什么的情况下关闭DEP,或者是否有其他技术可以在不涉及DEP的情况下执行堆中的汇编指令?
发布于 2013-03-23 07:54:23
您不希望禁用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共存。
https://stackoverflow.com/questions/15581581
复制相似问题