gpt4 book ai didi

memory-management - 内核模块,在从一个进程调用时,从另一个进程写入页面

转载 作者:行者123 更新时间:2023-12-04 12:59:09 24 4
gpt4 key购买 nike

我正在编写一个由进程 p1 调用的内核模块,以覆盖属于目标进程 p2 的数据页。

首先,在内核模块内部,同时响应 p1 发出的对 proc 文件系统的写入事件。我使用目标进程(p2)的进程id来搜索后者的任务结构(p2_task)。

搜索我使用的特定页面 get_user_pages() ,显然调用它( p2_task->mm )。然后我调用 kmap()在上一个函数返回的页面上。获得指针后,我使用典型的内存函数 (memset()) 写入该内存。终于叫到kunmap() .

但是,一旦进程再次开始运行,我可以看到我所做的对目标进程 p2 没有影响。

我不确定我做错了什么。任何人都可以帮忙吗?

我怀疑在响应来自 p2 的请求时,您无法以某种方式写入属于进程 p2 的内存。因为这里我们处于不同的环境中。

这是真的吗,如果不是我还能检查什么。如果是问题所在,无论如何我可以解决这个问题吗?

最佳答案

也许您要写入的页面是只读的?
在 Intel 架构上可以设置写保护,见 http://badishi.com/kernel-writing-to-read-only-memory/

关于memory-management - 内核模块,在从一个进程调用时,从另一个进程写入页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14647964/

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