gpt4 book ai didi

c++ - 如何禁用 DEP

转载 作者:太空狗 更新时间:2023-10-29 20:27:42 28 4
gpt4 key购买 nike

我们有一个应用程序,其中堆的某些部分作为汇编指令执行/用于测试目的 - 我们将程序下载到 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 共存。

关于c++ - 如何禁用 DEP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581581/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com