有两篇关于如何使用 linpmem 在 Linux 上获取内存的很棒的文章:
尝试以下方法holdmybeersecurity我遇到了以下问题,这似乎是一个更普遍的问题:
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.
所以最大的问题是:如何仅获取内存/交换,而不获取 HDD 内容?