有没有办法查看 RAM 内存的内容?从第一个字节到最后一个字节。我想查看操作系统及其上运行的所有进程在 RAM 中的位置。这可能吗?
答案1
您可以使用内核调试器,它允许“原始”内存访问,例如Windows 版 SoftICE。您还可以将 GDB 配置为Linux 内核调试器如果虚拟机是一种选择,一些虚拟化软件支持将机器的状态(包括 RAM)保存到磁盘,然后可以进一步分析。然而,需要注意的是,大多数“现代”操作系统使用地址空间布局随机化(ASLR)。系统的真实物理内存映射被故意分割,以帮助缓解各种安全问题和漏洞(即堆/堆缓冲区溢出)。
但是,对于在现代操作系统中运行的给定程序,只要您有适当的调试符号和调试器,您就可以获得给定进程/线程的逻辑内存映射。如果您想要一个整体视图,如果软件/硬件使用虚拟内存,情况就变得非常复杂。不过,如果你真的想要只是有关 RAM,请参见第一段。
答案2
\Device\PhysicalMemory
在Windows上,可以通过对象管理器。这需要内核级系统访问权限,这意味着您需要安装一个程序(很可能是内核模式驱动程序)才能访问该对象。
/dev/mem
在 Linux 上,可以通过读取 直接以二进制数据形式访问物理内存的内容root
。请参阅/dev/mem 是什么?和mem(4)
手册页了解更多详细信息。
不过,我不确定为什么需要确定操作系统和进程在物理内存中的位置......