我想找到用户空间进程中定义的变量的物理地址吗?有什么办法可以使用root特权吗?

最佳答案

首先,您为什么要这样做?现代VM系统的目的是使应用程序程序员摆脱物理内存布局的复杂性。给他们每个人一个统一的地址空间,使他们的生活更轻松。

如果确实要执行此操作,则几乎确实需要使用内核模块。以常规方式获取变量的虚拟地址,使用它来索引进程页面表并读取找到的值(框架的物理地址)。然后添加页面偏移量以获得完整的物理地址。请注意,启用分页后,您将无法使用该地址。

(如果幸运的话,您可能可以从/proc文件系统中获取VM区域的帧地址,因此无需编写内核模块。)

关于c - 如何在Linux的用户空间中找到变量的物理地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2440385/

10-11 22:00
查看更多