• This repository has been archived on 17/Nov/2021
  • Stars
    star
    131
  • Rank 275,867 (Top 6 %)
  • Language
    C
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated almost 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Hypervisor-Level Debugger based on Radare2 / LibVMI, using VMI IO and debug plugins

r2vmi

Join the chat at https://gitter.im/r2vmi/Lobby

Radare2 VMI IO and debugger plugins.

These plugins allow you to debug remote process running in a VM, from the hypervisor-level, leveraging Virtual Machine Introspection.

Based on Libvmi to access the VM memory and listen on hardware events.

Note: since hack.lu 2018, I shifted my work towards an improved version of this project which is more flexible and open to any reverse-engineering framework that can act as a GDB frontend:

https://github.com/Wenzel/pyvmidbg

What works:

  • Intercept a process by name/PID (at CR3 load)
  • Read the registers
  • Single-step the process execution
  • Set breakpoints
    • software
    • hardware (based on memory access permissions, page must be mapped)
  • Load Kernel symbols

Demo

High quality link

The following demonstrate how r2vmi:

  • intercepts explorer.exe process
  • sets a software breakpoint on NtOpenKey
  • how the breakpoint is hit (ignoring hits by not targeted processes)
  • using radare2 to disassemble NtOpenFile's function
  • singlestep the execution
  • opening a Rekall shell usin the VMIAddressSpace to work on the VM's physical memory
  • running pslist plugin
  • running dlllist plugin and selecting a random DLL's base address
  • seeking there in radare2 and displaying the MZ header

R2VMI_DEMO

Requirements

Setup

An complete installation guide is available on the Wiki

Usage

You need a virtual machine configured on top of Xen, and a process name/pid to intercept

$ r2 -d vmi://<vm_name>:<name/pid>

Example:

$ r2 -d vmi://win7:firefox

More Repositories

1

awesome-virtualization

Collection of resources about Virtualization
1,602
star
2

checksec.py

Checksec tool in Python, Rich output. Based on LIEF
Python
303
star
3

pyvmidbg

LibVMI-based debug server, implemented in Python. Building a guest aware, stealth and agentless full-system debugger
Python
216
star
4

libmicrovmi

A cross-platform unified Virtual Machine Introspection API library
Rust
164
star
5

osw-fs-windows

A git history of Windows filesystems
78
star
6

oswatcher

A framework to track the evolution of Operating Systems over time
Python
57
star
7

docker-kdesrc-build

Dockerfiles to compile KDE source code into Docker with kdesrc-build script
Python
47
star
8

vid-sys

Rust unsafe bindings for Vid API (Hyper-V)
C
13
star
9

libsysinfo

Extracts information about running processes and network connections from the virtual filesystem /proc
CMake
11
star
10

protonvpn-nm-import

Script to import ProtonVPN configuration files into NetworkManager automatically
Python
10
star
11

linux-sysinternals

CMake
9
star
12

packer-templates-winxp

Batchfile
7
star
13

kvm-vmi

KVM-based Virtual Machine Introspection
Jinja
6
star
14

kvmi

Rust bindings to KVM's introspection libkvmi library
Rust
5
star
15

vagrant-xen-pyvmidbg

Vagrant box to work on pyvmidbg project
HTML
5
star
16

xenctrl

Rust
4
star
17

CNAF

Source code used by the French CNAF (Caisse Nationale des Allocations Familiales)
COBOL
4
star
18

packer-templates

My packer templates
Python
3
star
19

fdp

Rust bindings on FDP (Fast Debugging Protocol) VirtualBox introspection library
Rust
3
star
20

xenstore

Rust bindings to Xenstore
Rust
3
star
21

libvmi-rs

Rust reimplementation of LibVMI
Rust
3
star
22

protonvpn-vm

Preconfigured ProtonVPN setup in a virtual machine
3
star
23

docker-gui-app

Summary of the techniques available to run gui applications inside docker
3
star
24

packer-flare

Packer templates to build your FLARE VM from scratch
PowerShell
3
star
25

windows_internals

2
star
26

kvm

Fork of KVM with Virtual Machine Introspection patch
C
2
star
27

xenevtchn

Rust bindings to xenevtchn library
Rust
2
star
28

cmake_template_cpp

A simple C++ project template based on CMake
CMake
2
star
29

nitro

KVM-based Virtual Machine Introspection
Python
2
star
30

vagrant-icebox

A vagrant environment to develop Icebox and VirtualBox VMI
Batchfile
2
star
31

unbound-formula

Install and configure the Unbound DNS server
SaltStack
2
star
32

libksysguard

Fork of libksysguard
C++
1
star
33

web_monitor

Python
1
star
34

test-formula

A docker container to quickly test a SaltStack formula
SaltStack
1
star
35

testdbus

CMake
1
star
36

kdesrc-build.py

An attempt to rewrite the KDE build system into Python
Python
1
star
37

doxify

Quick C++ source code documentation generator based on doxygen.
Shell
1
star
38

wikimedia-phabricator-tools

Fork of https://gerrit.wikimedia.org/r/phabricator/tools
Python
1
star
39

xenvmevent-sys

Rust unsafe bindings for Xen VM event definitions
Rust
1
star
40

kdesrc-build-genconf

Python
1
star
41

bug_pyfakefs

No such file or directory in the fake filesystem: b'/tmp'
Python
1
star
42

kde-build-metadata

Fork of the kde-build-metadata KDE repository
1
star
43

pandoc_template

A template to generate reports with Pandoc
Makefile
1
star
44

wenzel.github.io

https://wenzel.github.io
HTML
1
star
45

vagrant-xen-r2vmi

Vagrant box to work on r2vmi project
Ruby
1
star
46

salt-oneshot

A quick wrapper around SaltStack to quickly test and deploy a system configuration without having to set-up a Salt Master server.
Python
1
star
47

procexp_helper

C++
1
star
48

bug_pyspy

Python
1
star
49

kcm_template_qml

CMake
1
star
50

docker-owncloud

Dockerfile to configure and deploy Owncloud with a simplified configuration based on SaltStack
Shell
1
star
51

bug_report

A repo to store reproducible code for bug reports
1
star
52

vagrant-xen

A set of Vagrant boxes to install and test the Xen hypervisor
Ruby
1
star
53

fdp-sys

Rust unsafe bindings on FDP (Fast Debugging Protocol) library for VirtualBox Introspection
Rust
1
star
54

xenforeignmemory

Safe Rust bindings to xenforeignmemory
Rust
1
star
55

checksec.py-test-binaries

Test binaries for checksec.py
1
star
56

test_bug_actions

https://bugzilla.mozilla.org/show_bug.cgi?id=1622455
1
star
57

kmonitor

A new system monitor for KDE
CMake
1
star
58

xenevtchn-sys

Rust bindings for xenevtchn library
Rust
1
star
59

kvmi-sys

Rust bindings for KVM's introspection libkvmi library
Rust
1
star