bak*_*kie 22 memory forensics dump
我知道在 Windows 中转储内存图像。(eg-dumpit) 但我不知道如何在 Linux 中转储内存映像。
我想在 Linux 中获取内存映像,并通过 ssh 连接或其他方式从 Linux 到 Linux。
我怎样才能进入 Linux?
slm*_*slm 30
来自 Forensic 的 Wiki:工具:内存成像
摘抄
Linux
/开发/内存
在较旧的 Linux 系统上,程序 dd 可用于从设备文件 /dev/mem读取物理内存的内容。然而,在最近的 Linux 系统上,/dev/mem 仅提供对有限地址范围的访问,而不是系统的完整物理内存。在其他系统上,它可能根本不可用。在整个 2.6 系列的 Linux 内核中,趋势是减少通过伪设备文件直接访问内存。例如,请参见此补丁附带的消息:http : //lwn.net/Articles/267427/。
/开发/崩溃
在 Red Hat 系统(以及那些运行相关发行版,例如 Fedora 或 CentOS)上,可以加载崩溃驱动程序以创建伪设备 /dev/crash 用于原始物理内存访问(通过命令“modprobe crash”)。该模块也可以为其他 Linux 发行版编译,只需少量工作(例如,参见http://gleeda.blogspot.com/2009/08/devcrash-driver.html)。当崩溃驱动程序被修改、编译并加载到其他系统上时,由此产生的内存访问设备对于整个映像是不安全的。必须小心避免非 RAM 支持的地址。在 Linux 上,/proc/iomem 将正确的地址范围暴露给映像,并标有“系统 RAM”。
第二眼:Linux 内存取证
这个商业内存取证产品附带了崩溃驱动程序的修改版本和一个脚本,用于在任何给定的 Linux 系统上使用原始或修改后的驱动程序安全地转储内存。
fmemfmem - github 存储库fmem 是创建设备 /dev/fmem 的内核模块,类似于 /dev/mem 但没有限制。可以使用 dd 或其他工具复制此设备(物理 RAM)。适用于 2.6 Linux 内核。在 GNU GPL 下。
LiME - Linux 内存提取器
Linux 内存提取器 (LiME) 是一个可加载内核模块 (LKM),它允许从 Linux 和基于 Linux 的设备(例如由 Android 驱动的设备)获取易失性内存。该工具支持将内存转储到设备的文件系统或通过网络。
我发现这个fmem
正在使用的例子,这似乎是为了分析目的而转储内存的最简单方法/dev/mem
,据我了解,在 2.6.x 内核之后你不能再使用了。
$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size= 2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!
$ ls /dev/f*
/dev/fb0 /dev/fd0 /dev/fmem /dev/full /dev/fuse
$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s
Run Code Online (Sandbox Code Playgroud)
*来源: 如何将所有物理内存转储到文件中?
为了分析易失性内存,还有这个页面,标题为:Linux Memory Analysis。本视频教程中有一个完整的示例,展示了如何使用 LiME 和 Volatility 收集内存转储,然后对其进行分析,从内存转储中提取用户的 Bash 历史记录。
还有这个 U&L 问答题为:如何转储完整的系统内存?其中有其他示例和信息。