Crate memprocfs

source ·
Expand description

§The MemProcFS API Documentation

The MemProcFS crate contains a wrapper API around the MemProcFS physical memory analysis framework. The native libray in the form of vmm.dll or vmm.so must be downloaded or compiled in order to make use of the memprocfs crate.

Physical memory analysis may take place on memory dump files for forensic purposes. Analysis may also take place on live memory - either captured by using PCILeech PCIe DMA devices or by using a driver - such as WinPMEM, LiveCloudKd, VMware or similar.

The base of the MemProcFS API is the Vmm struct. Once the native vmm has been initialized it’s possible to retrieve processes in the form of the VmmProcess struct. Using the Vmm and VmmProcess it’s possible to undertake a wide range of actions - such as reading/writing memory or retrieve various information.

The use of the low-level LeechCore library is also possible. LeechCore is used for low-level tasks such as setting a memory map, implementing raw PCIe Transaction Layer Packet (TLP), PCIe Base Address Register (BAR) support and more.

Read and write memory by using the methods mem_read(), mem_read_ex() and mem_write(). Virtual memory is read from VmmProcess struct. Physical memory is read from the Vmm struct.

Efficiently read and write memory using the VmmScatterMemory struct. The scatter struct is retrieved by calling mem_scatter() on either the base Vmm struct or the individual VmmProcess structs.

Access information about loaded modules, memory regions, registry, process handles, kernel pool allocations and much more!

Access the Virtual File System (VFS) using the Rust API to get access to the full range of built-in and external plugins. The VFS is accessed by using the methods vfs_list(), vfs_read() and vfs_write() on the Vmm struct.

The MemProcFS crate and API also supports creation of native MemProcFS plugins in the form of a library .dll or .so.

§Example projects

Check out the Example Project and the Example Plugin.

§Project documentation

Check out the project documentation for MemProcFS, LeechCore and pcileech-fpga:

§Support PCILeech/MemProcFS development:

PCILeech and MemProcFS is free and open source!

I put a lot of time and energy into PCILeech and MemProcFS and related research to make this happen. Some aspects of the projects relate to hardware and I put quite some money into my projects and related research. If you think PCILeech and/or MemProcFS are awesome tools and/or if you had a use for them it’s now possible to contribute by becoming a sponsor!

If you like what I’ve created with PCIleech and MemProcFS with regards to DMA, Memory Analysis and Memory Forensics and would like to give something back to support future development please consider becoming a sponsor at: https://github.com/sponsors/ufrisk

To all my sponsors, Thank You 💖

§Questions and Comments

Please feel free to contact me!

§Get Started!

Check out the Vmm documentation and the Example Project!

Best wishes with your memory analysis project!

Structs§

Enums§

Constants§

Functions§

Type Aliases§