所以我们拥有:目标进程的task_struct,其他相关结构(如mm_struct,vma_struct)和虚拟地址,如0x0070abcd,我想要读取或者更确切地映射到我的内核模块.
我可以使用get_user_pages获取所需内存区域的页面列表,但下一步是什么?我应该以某种方式将页面映射到内核中,然后尝试将它们作为连续内存区域读取,还是有更好的解决方案?
解决方法 问题是“寻找”用户空间需要锁定大量的东西.所以你做一个简短的副本比把所有东西锁定任意时间更好.您的用户空间进程可能未被VM映射到当前cpu.实际上,它可能完全被换成磁盘,在另一个cpu上运行,在它自己的内核调用中等.Linux Kernel: copy_from_user – struct with pointers
总结以上是内存溢出为你收集整理的从Linux上的内核直接访问用户内存全部内容,希望文章能够帮你解决从Linux上的内核直接访问用户内存所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)