【发布时间】:2021-01-17 08:27:33
【问题描述】:
我已经阅读了这个主题很多小时,并尝试了许多不同的策略,但无法以稳定的方式使其发挥作用。
我在 Windows 内核中运行。我已经为一个进程分配了用户空间内存供他们使用。该内存需要是可执行的。我得到最远的解决方案是遍历页表以找到分配的用户空间内存的匹配 PTE 并清除 NX 位。这“有效”,但系统最终会冻结。 WinDbg 内核调试器有时会报告死锁。
我认为这是因为 Windows 内核使用某些内部结构来操作这些表,但我当然无权访问。有人知道如何安全地找到 PTE 并对其进行操作吗? 我强调,当我不运行这段代码时,这个问题根本不会发生。我 100% 确定此 PTE 修改,而不是我的代码的其他部分导致此问题。
【问题讨论】:
标签: windows wdk windows-kernel page-tables