如何得到OS物理内存?

为了分析计算机操作系统的运行状态和内容,或者进行内存取证,我们经常需要取得系统的物理内存,并把它保存在一个文件中,用于以后的分析和处理。

那么如何取得系统的内存呢?有几种方法,我一一道来。

利用虚拟机保存物理内存:如果目标系统在虚拟机中,无论系统类型是什么(Windows, Linux, *BSD, Minix, Solaris),我们都可以借助虚拟机来取得Guest OS的内存。

具体来说,如果我们使用的虚拟机是VMware Workstation, 我们可以使用take a snapshot功能,每次Take a snapshot, 我们就会得到一堆文件,其中*.vmem就是Guest OS的物理内存文件。

如果我们使用Qemu作为虚拟机,那么我们可以使用命令pmemsave 来获得Guest OS的物理内存。 比如 

pmemsave 0 268435456 mem

保存256M内存到文件mem中。

利用本机工具保存物理内存:如果操作系统不在虚拟机中,或者我们不想使用虚拟机来取得内存,我们可以使用系统自带的一些功能来取得物理内存。

在Linux操作系统中, /dev/mem 就是物理内存的设备文件,我们可以使用 dd命令来取得物理内存。如下

dd if=/dev/mem of=~/mem

Windows 和 Mac OS X下也有类似的工具可以取得物理内存。

取得物理内存后,我们就可以使用相关工具(比如 volatilitycrash),或者自己写工具来分析内存数据了。

原文地址:https://www.cnblogs.com/guyufei/p/3094639.html