访问/ dev / mem冻结Ubuntu

时间:2016-09-23 09:14:03

标签: linux ubuntu memory freeze computer-forensics

我正在使用最新的Ubuntu Linux和一个自定义内核(4.2.0-36-generic),其中我已经禁用了CONFIG_STRICT_DEVNEM,因为我需要在项目期间转储并搜索内存中的某些术语。

但是,当使用dd if=/dev/mem在屏幕上打印时,dd if=/dev/mem of=/home/user/Documents/file.dump将其保存为文件或dd if=/dev/mem | hexdump -C | grep 'term'直接找到我要查找的内容,系统会冻结并重新启动在这个过程中。

我已与df -h核实,我的光盘有足够的可用空间。此外,在写入2.1Gb到2.5Gb之后,进程总是停止,从8Gb RAM到达到以4开头的地址(如果这些有任何区别)。此外,检查/var/log/syslog/var/log/kern.log在冻结之前没有任何相关内容。

此外,使用参数bs=1G count=2成功复制了内存的前2GB,但随后尝试bs=1G count=2 skip=2获取然后下一个2GB再次冻结系统。

您会建议任何解决方案,以便可以转储完整内存或其他方式直接搜索内存中的术语吗?

1 个答案:

答案 0 :(得分:0)

正如ilkkachu对unix.stackexchange.com的回答,我试图访问PCI / ACPI或某些此类硬件使用的内存区域。因此,我只需要访问“安全”的内存区域。

到目前为止,我可以安全地访问(usable)所示的/var/log/kern.log区域:

[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x000000003fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040000000-0x00000000401fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040200000-0x00000000c97e8fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000c97e9000-0x00000000c9e81fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000c9e82000-0x00000000ca101fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ca102000-0x00000000ca106fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000ca107000-0x00000000ca149fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000ca14a000-0x00000000cabb4fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000cabb5000-0x00000000caff1fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000caff2000-0x00000000caffffff] usable

这些区域也可以在/proc/iomem上找到“系统RAM”:

$ grep "System RAM" /proc/iomem
00001000-0009d7ff : System RAM
00100000-1fffffff : System RAM
20200000-3fffffff : System RAM
40200000-c97e8fff : System RAM

因此,我能够使用多个命令dd这些安全的内存区域,例如(20200000-3fffffff):

dd if=/dev/mem of=Filename bs=230467520 count=1 skip=1 ibs=1075838980

(请注意,ibs比内存区域的开头高几位数,而bs比其大小略小,因为得到了所有“安全”区域,导致系统再次崩溃。)

更新:

更新:我可以安全dd内存区域设置为“系统RAM”,“RAM缓冲区”和“保留”。