
MemProcFS v5.18
MemProcFS
MemProcFS:
MemProcFS 是一种简单便捷的方式,可将物理内存以虚拟文件系统的形式呈现为文件。
无需复杂的命令行参数,即可轻松进行点击式内存分析!通过挂载的虚拟文件系统中的文件,或通过功能丰富的应用程序库,访问内存内容和工件,并将其集成到您自己的项目中!
分析内存转储文件、通过 DumpIt 或 WinPMEM 获取的实时内存、来自虚拟机或 PCILeech FPGA 硬件设备的读写模式实时内存!
甚至可以通过安全连接连接到远程 LeechAgent 内存采集代理——从而支持远程实时内存事件响应——即使在更高延迟、低带宽的连接上也能实现!深入了解 MemProcFS 虚拟机、LiveCloudKd 或 VMware!
使用您最喜爱的工具分析内存——使用您最喜爱的十六进制编辑器、python 和 powershell 脚本、WinDbg 或您最喜爱的反汇编器和调试器——所有这些都可以通过简单地读写文件,轻松地与 MemProcFS 配合使用!




快速入门!
查看来自 13Cubed 的精彩快速演练视频,快速上手!也请查看我在 Disobey 和 BlueHat 上的早期会议演讲。
如需更多文档,请查看项目 wiki,了解有关文件系统本身、其 API 及其插件模块的深入详细信息!有关内存采集方法的更多信息,请查看 LeechCore 项目 或加入 PCILeech/MemProcFS Discord 服务器!
要开始使用,请下载最新的二进制文件、模块和配置文件并查看指南!
安装:
从最新版本获取最新的二进制文件、模块和配置文件。 或者,克隆仓库并从源代码构建。
Windows
挂载文件系统需要安装 Dokany 文件系统库。请从以下位置下载并安装最新版本的 Dokany 2:https://github.com/dokan-dev/dokany/releases/latest
要捕获实时内存(无需 PCILeech FPGA 硬件),请下载 DumpIt 并通过 DumpIt /LIVEKD 模式启动 MemProcFS。或者,通过下载最新签名的 WinPMEM 驱动程序 获取 WinPMEM,并将其与 MemProcFS 放在一起——详细说明请参阅 LeechCore Wiki。
PCILeech FPGA 需要硬件以及将 FTD3XXWU.dll 与 MemProcFS 二进制文件放在一起。请查看 LeechCore 项目获取说明。
Linux
MemProcFS 应该可以在大多数安装了 FUSE 的 Linux 发行版上开箱即用。如果从源代码构建,请查看有关 Linux 上的 MemProcFS 的指南。
macOS
从此处下载最新的 MemProcFS 版本。当 MemProcFS 作为挂载的虚拟文件系统使用时,它依赖于 macFuse,而 macFuse 需要 .kext。请从此处下载并安装 macFuse。如果通过受支持的 C/C++/Rust API 使用 MemProcFS,则不需要 macFuse。
广泛的 Python、Rust、Java、Go、C# 和 C/C++ API:
将 MemProcFS 集成到您的 C/C++、C#、Java、Go(第三方)、Python 或 Rust 编程项目中!MemProcFS 中的所有内容都通过易于使用的 API 暴露,供您在您自己的项目中使用!插件友好的架构允许用户轻松地使用 C/C++/Rust/Python 插件扩展 MemProcFS!
MemProcFS 中的所有内容都以 API 形式暴露。API 适用于 C/C++ vmmdll.h、C# nuget 包、Java、Python pip 包 和 Rust crate。文件系统本身可通过 API 以虚拟方式使用,无需挂载。既可以读取虚拟进程内存,也可以读取物理内存!下面的示例展示了从物理地址 0x1000 读取 0x20 字节:
>>> import memprocfs
>>> vmm = memprocfs.Vmm(['-device', 'c:/temp/win10_memdump.raw'])
>>> print(vmm.hex( vmm.memory.read(0x1000, 0x20) ))
0000 e9 4d 06 00 01 00 00 00 01 00 00 00 3f 00 18 10 .M..........?...
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
MemProcFS 可作为 Python pip 包使用,并且很容易集成到您的 Jupyter Notebooks 中。
示例:
从命令行启动 MemProcFS——可以使用下面的示例之一。
或者,将内存转储文件扩展名与 MemProcFS.exe 关联,以便在双击内存转储文件时自动挂载文件系统!
- 将内存转储文件挂载为默认的 M:
memprocfs.exe -device c:\temp\win10x64-dump.raw - 将内存转储文件挂载为默认的 M:,并增加详细输出:
memprocfs.exe -device c:\temp\win10x64-dump.raw -v - 将内存转储文件挂载为默认的 M:,并启动取证模式:
memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 - 将内存转储文件挂载为默认的 M:,并启动带有 yara 扫描的取证模式:
memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar - 在 Linux 上将内存转储文件挂载为 /home/pi/mnt/:
./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw - 将内存转储文件挂载为 S:
memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw - 使用 WinPMEM 驱动程序以只读模式挂载实时目标内存:
memprocfs.exe -device pmem - 使用 PCILeech FPGA 内存采集设备以读/写模式挂载实时目标内存:
memprocfs.exe -device fpga -memmap auto - 挂载带有相应页面文件的内存转储:
memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys
PCILeech 和 MemProcFS 社区:
觉得这一切有点难以应付?或者只是想快速问个问题?加入 Discord 上的 PCILeech 和 MemProcFS DMA 社区服务器吧!
构建:
预构建的二进制文件、模块和配置文件可在最新版本中找到。。MemProcFS 二进制文件使用 Visual Studio 2022 和 Ubuntu x64/AARCH64 构建。
许可证:
项目源代码根据以下许可证发布:GNU Affero General Public License v3.0。一些捆绑的依赖项和插件根据 GPLv3 发布。一些捆绑的 Microsoft 可再发行二进制文件根据单独的许可证发布。可根据要求考虑替代许可。
贡献:
PCILeech、MemProcFS 和 LeechCore 是开源的,但不开放贡献。PCILeech、MemProcFS 和 LeechCore 提供了高度灵活的插件架构,允许以插件形式进行贡献。如果您希望为核心项目做出插件以外的贡献,请在开始开发之前与我联系。
链接:
- Twitter:
- Discord:
- PCILeech: https://github.com/ufrisk/pcileech
- PCILeech FPGA: https://github.com/ufrisk/pcileech-fpga
- LeechCore: https://github.com/ufrisk/LeechCore
- MemProcFS: https://github.com/ufrisk/MemProcFS
- 博客: http://blog.frizk.net
链接 - 相关项目:
- MemProcFS-Analyzer 是一个第三方 PowerShell 应用程序,用于简化 MemProcFS 的使用并优化您的内存分析工作流程。MemProcFS-Analyzer 由 LETHAL-FORENSICS 的 @evild3ad 维护。
更新日志:
以前的版本(点击展开):
v1.0
- 初始版本。
v1.1-v4.9
- 各种更新。请参阅各个版本以获取更多信息。
v5.0
v5.1
- 支持 Windows 11 22H2。
- '/misc/view/' 处的文本和仅二进制视图。
v5.2
- 错误修复。
- 虚拟机支持。
- ARM64 Windows 支持。
- FPGA 性能改进。
- /sys/drivers 中的设备树信息。
- Linux 功能新增:memcompress 和 token。
- 在离线系统上手动下载调试符号(PDB)(仅限 Windows)。
v5.3
- 错误修复和性能优化。
- PE 转发函数。
- PE 版本信息。
- MemProcFS Python 批处理模式。
- Linux Python 插件支持。
- Hyper-V 容器/沙箱支持。
- Windows Hypervisor Platform 支持(Hyper-V 上的 VMware 和 VirtualBox)。
v5.4
- Rust API 支持。
- 在 Linux 上运行时的调试符号支持。
v5.5
- Findevil:新的基于线程的检测。Findevil 现在仅限取证模式。
- Jupyter Notebook 示例
- 取证模式和搜索中的 Yara 支持。
v5.6
- 错误修复、性能优化和次要更新。
- 取证模式下的 files 插件 - 显示具有可恢复内容的文件。
- 取证模式下来自 Elastic Security 的 Findevil 内置 yara 规则。
通过启动选项-license-accept-elastic-license-2.0接受 Elastic license 2.0 来激活。
v5.7
- 错误修复。
- Rust API 更新。
- 新的 FindEvil Yara 检测。
- 对文件对象进行 Yara 扫描(增加 FindEvil 检测易受攻击驱动程序的机会)。
- 针对较小读取的改进 FPGA 性能。
- 通过远程 LeechAgent 改进的 MemProcFS 远程访问。通过 SMB - tcp/445 提供完整的 MemProcFS 远程支持。非常适合内存取证事件响应 (IR)!
v5.8
- 适用于 C/C++、C#、Rust、Python、Java 的 LeechCore API 更新。
- 支持分析 ARM64 Windows 内存。
- 错误修复。
- 模块改进:ntfs、procinfo、web。
- C# API:改进。
- Java API:支持 java.lang.foreign (JDK21+) 以实现高效的内存访问。
- Linux PCIe FPGA 性能改进。
- FindEvil:现在显示触发的 Yara 规则。
- FindEvil:来自被分析系统上 Windows Defender 的 AV 检测。
- Python API:新功能(多读、类型读)和改进的分散读取性能。
- 支持 Proxmox 内存转储文件。
- 支持 Windows 11 24H2 版本。
- 错误修复。
- 在 VAD 映射中添加了命名的 _SECTION 对象。
-memmap auto改进。- 休眠文件支持。
- FindEvil:UM APC 检测。感谢 @thejanit0r 的贡献。
- Sysinfo 模块,用于轻松读取系统信息。
- Eventlog 模块,用于方便地访问事件日志文件。
- 二进制搜索 API 现在允许最多 1600 万个搜索词(从之前的 16 个增加)。
- 预取解析。
- 错误修复。
- 新的 Vmmsharp C# API。
- 错误修复。
- 更新(FindEvil、新签名等)。
- 用于内核对象、驱动程序和设备的新 API。
- 错误修复。
- 添加了新的 console 模块。
- files 模块 的文件恢复改进(文件大小、签名信息)。
- 内存回调 API 功能(仅限 C/C++ API)。
- 用于 x64 用户模式进程调用栈的调用栈解析。
- 错误修复。
- Linux clang 编译支持。
- macOS 支持。
- 错误修复。
- 使用 gRPC 的 Linux LeechAgent 支持(LeechCore v2.21)。
- 新的 FindEvil 检测:高熵。
- DNS 缓存解析。感谢 @MattCore71 的贡献。
- 错误修复。
- 支持 Windows 11 25H2
- 支持 Windows 11 26H1。
- 改进的注册表解析。
- API 中新的刷新选项。
- API 中新的可选日志记录回调。
- 支持文件路径中的非 ASCII 字符。
- 错误修复。
- 新模块:Windows Terminal 解析器(Win11+)。
- 新取证模块:amcache 解析器(Win10+)。
- PTE 映射上限从 65536 调整为 131072。
- 修复:在 WSL 挂载的 MemProcFS (drvfs) 中的文件写入现在可以正常工作。
最新:
- 错误修复。
- 修复:堆恢复现在可以在 Windows 11 24H2 及更高版本上运行。
- 修复:池和堆解析得到改进。
- 修复:压缩内存恢复率得到改进。
- 新模块:/sys/eventlog(Windows 事件日志恢复)。
