如何从内核模块扫描用户空间内存

时间:2017-06-17 10:54:47

标签: c linux memory-management module kernel

我想创建一个内核模块来扫描用户运行的进程'记忆并改变一些价值观。我在找出与用户内存接口的正确方法时遇到了一些麻烦。

我在IBM文章User space memory access from the Linux kernel中找到了copy_to_usercopy_from_user函数。但他们采用了用户空间指针。由于我不确定变量在哪里,我想要更改,我想扫描用户进程的内存,但似乎无法找到。

我正在考虑为地址阅读/proc/$(pidof process)/maps,因为我想要更改的变量位于共享对象中。但是,我在网上读到,从内核模块读取文件并不是一个好习惯。

我也在想也许我可以使用copy_from_user函数来复制整个东西但是并不认为这是一个好主意,因为它真的很大。

任何建议将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:-2)

你在扫描内存是什么,为什么你不能从用户空间那里做到这一点?这很容易在proc中访问mem文件。

至于问题的答案,我担心如果你有理由这样做,你可以很容易地找到自己的方法。