我想创建一个内核模块来扫描用户运行的进程'记忆并改变一些价值观。我在找出与用户内存接口的正确方法时遇到了一些麻烦。
我在IBM文章User space memory access from the Linux kernel中找到了copy_to_user
和copy_from_user
函数。但他们采用了用户空间指针。由于我不确定变量在哪里,我想要更改,我想扫描用户进程的内存,但似乎无法找到。
我正在考虑为地址阅读/proc/$(pidof process)/maps
,因为我想要更改的变量位于共享对象中。但是,我在网上读到,从内核模块读取文件并不是一个好习惯。
我也在想也许我可以使用copy_from_user函数来复制整个东西但是并不认为这是一个好主意,因为它真的很大。
任何建议将不胜感激。谢谢。
答案 0 :(得分:-2)
你在扫描内存是什么,为什么你不能从用户空间那里做到这一点?这很容易在proc中访问mem文件。
至于问题的答案,我担心如果你有理由这样做,你可以很容易地找到自己的方法。