2 releases

new 0.0.1-rc.1 Nov 6, 2024
0.0.0 Oct 30, 2024

#384 in Database interfaces

Download history 100/week @ 2024-10-25 121/week @ 2024-11-01

221 downloads per month
Used in vmi-utils

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.

License: MIT

Dependencies

~8–20MB
~261K SLoC