从 1 到 1 个映射页面执行

Posted

技术标签:

【中文标题】从 1 到 1 个映射页面执行【英文标题】:Execution from 1 to 1 mapped page 【发布时间】:2021-09-24 09:43:53 【问题描述】:

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

我在页表中添加了 1 对 1 的映射(新的虚拟地址与物理地址相同)。

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

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

我尝试执行 shellcode 并获得 KERNEL_SECURITY_CHECK_FAILURE。

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

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

我认为它是 SMEP,但禁用它并没有改变任何东西。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于从 1 到 1 个映射页面执行的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序-发布订阅-事件总线-页面组件通信

微信小程序-发布订阅-事件总线-页面组件通信

一个页面从输入url到页面加载显示完成,中间都经历了什么

客快物流大数据项目(七十九):Impala映射kudu表

浏览器从输入URL到页面加载显示完成全过程解析

linux源码解析15- 匿名页面的生命周期