4 releases

0.1.1 Nov 9, 2024
0.1.0 Nov 9, 2024
0.0.1-rc.1 Nov 6, 2024
0.0.0 Oct 30, 2024

#797 in Database interfaces

Download history 116/week @ 2024-10-28 319/week @ 2024-11-04 34/week @ 2024-11-11 15/week @ 2024-11-18 28/week @ 2024-12-02 7/week @ 2024-12-09

52 downloads per month
Used in 2 crates

MIT license

415KB
7.5K SLoC

Windows OS-specific VMI operations

This crate provides functionality for introspecting Windows-based virtual machines, working in conjunction with the vmi-core crate. It offers abstractions and utilities for navigating Windows kernel structures, analyzing processes and memory, and performing Windows-specific VMI tasks.

Features

  • Windows kernel structure parsing and navigation
  • Process and thread introspection
  • Memory management operations (VAD tree traversal, PFN database manipulation)
  • Windows object handling (files, sections, etc.)
  • PE file format parsing and analysis

Safety Considerations

Many operations in this crate require pausing the VM to ensure consistency. Always pause the VM when performing operations that could be affected by concurrent changes in the guest OS. Be aware of the Windows version you're introspecting, as kernel structures may vary between versions. Handle errors appropriately, as VMI operations can fail due to various reasons (e.g., invalid memory access, incompatible Windows version).

Example

let _guard = vmi.pause_guard()?;
// Perform introspection operations here
// VM automatically resumes when `_guard` goes out of scope

Always consider the potential for race conditions and ensure you're working with a consistent state of the guest OS.

Dependencies

~8–19MB
~263K SLoC