尝试访问 RAM /dev/mem... 说“不允许操作”

10 memory linux dd hexdump

我正在使用 Ubuntu 12.04

我阅读了以下有关如何在 Linux 中访问 RAM 内容的教程....

http://www.rootninja.com/using-dd-to-search-for-strings-in-memory-or-devices/

代码:

dd if=/dev/mem | hexdump -C | grep “string to search for”

所以,我运行代码...

代码:

sudo dd if=/dev/mem | hexdump -C > NAMEOFOUTPUTFILEHERE.txt

而且……它开始输出十六进制代码,直到几秒钟后,它说:

dd: reading `/dev/mem': Operation not permitted
2056+0 records in 
2056+0 records out
1052672 bytes (1.1 MB) copied, 0.44834 s, 2.3 MB/s
Run Code Online (Sandbox Code Playgroud)

所以基本上..我能够获得大约 3.3 MB 的 RAM 转储内容——直到程序停止,说“不允许操作”

所以我想知道为什么我不能转储 RAM 的全部内容?这是在 Ubuntu 中故意限制以阻止恶意黑客吗?或者是别的什么?有人知道吗?谢谢

Hen*_*nes 6

Ubuntu 安装中的 Linux 内核附带一个设置*,该设置将 RAM 提取限制为 1 MB。

如果您不希望在没有它的情况下重新编译内核(明显的警告:您正在降低安全性!),或者您可以下载并安装取证内核模块 fmem 来解决此问题。这提供了一个没有任何安全性的 /dev/fmem 设备。

strict-devmem=0正如 Opello 所提到的:您还可以在内核命令行中使用。


* : STRICT_DEVMEM=y(参见 /boot/config-KERNELVERSION)

  • 您还可以在内核命令行中传递“strict-devmem=0”。 (4认同)