从 1 到 1 映射页面执行

问题描述

我使用 MmAllocateContiguousMemory 分配页面并获取页面物理地址。

我给页表加了1对1的映射(新的虚拟地址和物理地址一样)。

新的虚拟地址清除了第 32-63 位。

我将 shellcode 写入新的虚拟地址。

我尝试执行 shellcode 并获得 KERNEL_SECURITY_CHECK_FAILURE。

如果我将物理地址映射到内核地址范围内的某个虚拟地址,shellcode 会执行得很好。

如何调用这种保护/行为?

我以为是 SMEP,但禁用它不会改变任何事情。

解决方法

没关系,pml4 条目已经存在并且设置了 nx 位。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...