
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
在大多数安装了 FUSE 的 Linux 发行版上,MemProcFS 应该可以开箱即用。如果从源代码构建,请查看关于 Linux 上的 MemProcFS 的指南。
macOS
从此处下载最新的 MemProcFS 版本。MemProcFS 作为挂载的虚拟文件系统使用时依赖于 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
- Blog: http://blog.frizk.net
