20 个稳定版本
5.11.1 | 2024年7月29日 |
---|---|
5.9.17 | 2024年6月3日 |
5.9.5 | 2024年3月20日 |
5.8.14 | 2023年10月19日 |
5.4.4 | 2023年3月13日 |
#85 in 操作系统
每月328次下载
340KB
5K SLoC
MemProcFS Rust API
MemProcFS crate 包含了对 MemProcFS 物理内存分析框架 的封装 API。必须编译或 下载 形状的 vmm.dll
或 vmm.so
原生库,才能使用 memprocfs rust crate。
MemProcFS Rust Crate 和 API 的目标是使 Rust 上的 MemProcFS 使用简单流畅!请告诉我您的看法或任何改进建议!
物理内存分析可以在用于法医目的的内存转储文件上进行。分析还可以在实时内存上进行,无论是通过使用 PCILeech PCIe DMA 设备 捕获,还是通过使用驱动程序(如 WinPMEM、LiveCloudKd、VMware 或类似设备)。
Rust API 版本遵循 MemProcFS 主次版本号。始终使用与主次号匹配的 MemProcFS 原生库版本。但是,原生库中的 修订号 可能更高(但不是更低)。通常在原生库中修复错误,而 Rust API 不更新。例如,可以使用 Rust API 版本 5.8.1 与 MemProcFS 5.8.10 一起使用。不支持使用 Rust API 版本 5.8.1 与 MemProcFS 5.7.x 或 MemProcFS 5.9.x 一起使用。
MemProcFS API 的基础是 Vmm
结构。一旦初始化了原生 vmm,就可以以 VmmProcess
结构的形式检索进程。使用 Vmm
和 VmmProcess
,可以执行各种操作,例如读取/写入内存和检索各种信息。
使用 mem_read()
、mem_read_ex()
和 mem_write()
方法从 Vmm
和 VmmProcess
结构体中读取和写入内存。
高效读取和写入内存 使用 VmmScatterMemory
结构体。
获取信息 关于已加载的模块、内存区域、注册表、进程句柄、内核池分配等!
通过 Rust API 访问 VFS(虚拟文件系统),以获取内置和外部插件的完全访问权限。
MemProcFS Rust API 支持创建本机 MemProcFS 插件,形式为库 .dll
或 .so
,适用于更高级的用户。
示例
// Initialize MemProcFS on Linux targeting a live Windows system
// by reading memory using a PCILeech PCIe FPGA hardware device.
// After initialization list all processes.
let mut args = ["-printf", "-device", "fpga"].to_vec();
let vmm = Vmm::new("/home/user/memprocfs/vmm.so", &args)?
if let Ok(process_all) = vmm.process_list() {
for process in &*process_all {
println!("{} : {}", process.pid, process.info()?.name);
}
}
// Initialize MemProcFS on Windows - analyzing a memory dump file.
// Also trigger the forensic mode and scan for VMs.
// List all processes in the virtual file system directory /name/.
let mut args = ["-printf", "-forensic", "1", "-vm",
"-device", "C:\\dumps\\memory.dmp"].to_vec();
let vmm = Vmm::new("C:\\MemProcFS\\vmm.dll", &args)?
if let Ok(vfs_all) = vmm.vfs_list("/name/") {
println!("Number of files/directories: {}.", vfs_all.len());
for vfs in &*vfs_all {
println!("{vfs}");
}
}
示例项目
查看示例项目 example project 和示例 MemProcFS 插件 example MemProcFS plugin。
项目文档
查看 MemProcFS、LeechCore 和 pcileech-fpga 的项目文档。
问题和评论
请随时与我联系!
- Github: https://github.com/ufrisk/MemProcFS
- Discord: https://discord.gg/pcileech
- Twitter: https://twitter.com/UlfFrisk
- Email: [email protected]
开始吧!
查看 MemProcFS 文档 和 示例项目!
祝您 Rust 内存分析项目一切顺利!
依赖项
~0.6–6MB
~26K SLoC