#virtual-machine #introspection #hypervisor #vmi #cross-platform #api #unified

microvmi

A cross-platform, unified, low-level VM introspection API supporting multiple hypervisors

29 releases

0.3.14 Feb 29, 2024
0.3.13 Feb 29, 2024
0.3.11 Oct 6, 2021
0.3.8 Sep 29, 2021
0.1.10 Dec 18, 2020

#39 in Emulators

Download history 206/week @ 2024-02-25 20/week @ 2024-03-03 62/week @ 2024-03-10 3/week @ 2024-03-17 177/week @ 2024-03-31

243 downloads per month

GPL-3.0-only

160KB
2K SLoC

libmicrovmi

A cross-platform unified Virtual Machine Introspection API library

CI crates.io docs.rs gitter gitpod

online_docs

Table of Contents

Overview

libmicrovmi aims to provide a cross-platform unified Virtual Machine Introspection API. (See What's VMI ?)

The term micro (μ) refers to the library's simplicity as well as the letter U standing for Unified interface.

Virtual Machine Introspection has been around since 2003, yet the ecosystem is still heavily fragmented and lacks standards as well as interoperability. (See VMI Ecosystem Fragmentation)

The main objective is to provide the simplest virtual machine introspection abstraction, offering a standard API to interact with any VMI provider, with a high degree of compatibility and composability to be integrated with any high-level VMI application.

libmicrovmi_image

Project Status

Below you can find a table describing the apps and drivers that can be used with libmicrovmi.

App Driver
API Platform
  • ✅ Linux
  • ✅ Windows
  • 🔲 MacOS

Legend:

  • ✅: full support
  • 🟧: partial support
  • 🔲: TODO

Getting Started

The documentation is here to guide you, whether you are a user or developer.

User

User documentation

  • I would like to install libmicrovmi on my system
  • I would like to know how to setup my VMI app with libmicrovmi
  • I would like to know which drivers are available and how to initialize them

Developer

Developer documentation

  • I am developing a memory forensic / VM introspection app, and I want an API that supports multiple hypervisors at glance
  • I want to add a new driver for libmicrovmi

Documentation

Our documentation is hosted online at online_docs

You can find it at doc/ as an mdbook 📖

To build the docs locally:

$ cargo install mdbook
$ mdbook build doc
$ xdg-open doc/book/index.html

Maintainers

License

GNU General Public License v3.0

Dependencies

~7–16MB
~200K SLoC