有两篇关于如何使用 linpmem 在 Linux 上获取内存的精彩文章:
尝试从保持我的啤酒安全我遇到了以下问题,这似乎是一个更普遍的问题:
wget https://github.com/google/rekall/releases/download/v1.5.1/linpmem-2.1.post4 chmod +x linpmem-2.1.post4 ./linpmem-2.1.post4 -o mem.aff4r
直接运行并创建一个大文件(停止它> 160GB)。更仔细地检查linpmem
它依赖于linux内存映射/proc/kcore
来获取数据。
sudo ls -lh /proc/kcore -r-------- 1 root root 128T Dec 12 11:32 /proc/kcore
这是巨大的!就像声明的那样这里...
...
/proc/kcore
是内核的 RAM 虚拟分配。在 64 位系统上,该大小的绝对限制为 128T,因为这是系统可以分配的最大容量。
这有点反对man proc
:
/proc/kcore
This file represents the physical memory of the system and is stored in the ELF core file format. With this pseudo-file, and an unstripped kernel
(/usr/src/linux/vmlinux) binary, GDB can be used to examine the current state of any kernel data structures.
The total length of the file is the size of physical memory (RAM) plus 4 KiB.
所以最大的问题是:如何仅获取内存/交换区,而不获取硬盘内容?