Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
matrix-rs — Rusty Hypervisor - Windows Kernel Blue Pill Type-2 Hypervisor in Rust (Codename: Matrix) | Kitploit
Tools/GitHubGitHub/memn0ps/matrix-rs
SpeicherforensikDynamische Code-Analyse (DAST)IDS/IPS-UmgehungReverse EngineeringSicherheitsvirtualisierungLernen & BildungArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - Windows Kernel Blue Pill Type-2 Hypervisor in Rust (Codename: Matrix)

Repository anzeigen
3564220vor 4 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Windows-Kernel-Blue-Pill-Typ-2-Hypervisor in Rust (Codename: Matrix)

License Issues Forks Stars

Blog: https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

Ein leichtgewichtiger, speichersicherer und blitzschneller in Rust geschriebener Typ-2-Forschungshypervisor mit Hooks für Intel VT-x, der sich auf das Studium der Kernkonzepte der Virtualisierung konzentriert.

Hinweis: Der Illusion-Hypervisor (Windows-UEFI-Blue-Pill-Typ-1-Hypervisor in Rust) ist stabiler, unterstützt mehr Funktionen und ist insgesamt besser gestaltet. Der Matrix-Hypervisor (Windows-Kernel-Blue-Pill-Typ-2-Hypervisor in Rust) ist eine ältere, experimentelle Version und nicht für den Produktionseinsatz gedacht. Beide Projekte dienen als Vorlagen, um Menschen den Einstieg in die Hypervisor-Entwicklung mit Rust zu erleichtern.

EPT Hooks Abbildung 0: Extended Page Tables (EPT)-Hooks (Matrix)

Features

  • ✅ Extended Page Tables (EPT): Unterstützung für Memory Type Range Registers (MTRR).
  • ✅ VM-Exit-Behandlung: Behandlung von ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, EptViolation, EptMisconfiguration, Invept, Invvpid, Xsetbv.
  • ✅ Versteckte Kernel-Inline-Hooks: PatchGuard-kompatible Breakpoint-Hooks (int3).
  • ✅ Versteckte System-Call-Hooks (Syscall-Hooks): PatchGuard-kompatible Hooks für Funktionseinträge der System Service Descriptor Table (SSDT).
  • ✅ Isolation und Sicherheit: Benutzerdefinierte Implementierungen der Global Descriptor Table (GDT), Interrupt Descriptor Table (IDT) und Page Tables, um die Sicherheit und Isolation des Hypervisors zu verbessern. Dank an @namazso für das Schärfen des Bewusstseins.

Unterstützte Hardware

  • ✅ Intel-Prozessoren mit VT-x- und Extended Page Tables (EPT)-Unterstützung.
  • ❌ AMD-Prozessoren mit AMD-V (SVM)- und Nested Page Tables (NPT)-Unterstützung.

Unterstützte Plattformen

  • ✅ Windows 10 – Windows 11, nur x64.

Installation

  1. Installiere Rust von hier.
  2. Wechsle zu Rust Nightly: rustup toolchain install nightly und rustup default nightly.
  3. Installiere LLVM: winget install LLVM.LLVM.
  4. Installiere die Tools: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Installiere WDK/SDK/EWDK: Schritte hier.
  6. Setze die Umgebungsvariable WDKContentRoot so, dass sie auf deinen WDK-Installationspfad zeigt, falls sie während der WDK-Installation nicht automatisch gesetzt wurde:
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Erstellen des Projekts

  • Entwicklung: cargo make --profile development.
  • Produktion: cargo make --profile release.

Debugging

Debug-Modi aktivieren

  • Testmodus: Aktiviere die Testsignierung mit bcdedit.exe /set testsigning on.
  • Windows-Debugging: Folge den Schritten in diesem Microsoft-Leitfaden.
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Netzwerk-Debugging mit Windbg

Einrichtung: bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n.

Debug-Print-Filter

  1. Öffne regedit.exe.
  2. Gehe zu HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Erstelle Debug Print Filter mit dem DEFAULT-DWORD = 8.

VMware-Serienport-Debugging

  1. Füge in VMware einen seriellen Port hinzu: 'Ausgabedatei verwenden'.
  2. Konfiguriere in der Windows-VM: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Dienstverwaltung

Verwende den Dienstcontroller (sc.exe), um den Hypervisor-Dienst zu erstellen und zu verwalten:

sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

Verwendung

  1. Einrichtung für VMware Workstation

    Baue das Projekt: Folge den Build-Anweisungen in den vorherigen Abschnitten, um das Projekt zu kompilieren.

  2. VMware Workstation einrichten

    Konfiguriere den seriellen Port von VMware für das Debugging.

VMware Serial Port Settings Abbildung 1: Serielle Port-Einstellungen von VMware

Stelle sicher, dass "Intel VT-x/EPT oder AMD-V/RVI virtualisieren" aktiviert ist und "IOMMU (IO-Speicherverwaltungseinheit) virtualisieren" aktiviert ist.

VMware Processors Settings Abbildung 2: Prozessor-Einstellungen von VMware

  1. Den Treiber kopieren

    Kopiere den Treiber matrix.sys in das Verzeichnis C:\Windows\System32\drivers.

  2. VMware-Serienport-Debugging

    Führe das PowerShell-Skript aus dem Abschnitt Serienport-Debugging aus, um den seriellen Port zu öffnen.

  3. Den Hypervisor laden

    Verwende das PowerShell-Skript load.ps1 aus dem Abschnitt Dienstverwaltung, um den Hypervisor-Dienst zu erstellen und zu starten.

Load Hypervisor Abbildung 3: Hypervisor laden

PoC

Hypervisor PoC Setup Abbildung 4: Logs und Windbg-PoC-Einrichtung

Hypervisor PoC Execute Abbildung 5: Logs und Windbg-PoC-Ausführung

Danksagungen, Referenzen und Motivation

Ein großes Dankeschön an die großartigen Menschen und Ressourcen, die dieses Projekt geprägt haben. Ein besonderer Gruß an alle unten Aufgeführten. Auch wenn ich nicht alle diese Ressourcen in meiner Arbeit verwendet habe, sind sie wahre Goldgruben an Informationen und sehr hilfreich für alle, die sich in die Hypervisor-Entwicklung stürzen – mich eingeschlossen.

  • Daax (@daaximus): Für seine herausragende kostenlose Serie zur Hypervisor-Entwicklung, die eine der besten verfügbaren Ressourcen ist und meine Arbeit durch ihre gründliche Recherche und klaren Erklärungen stark beeinflusst hat. Seine Unterstützung und Antworten auf meine Fragen waren von unschätzbarem Wert, um mir den Einstieg in die Hypervisor-Entwicklung zu ermöglichen:
    • 7 Days to Virtualization.
    • MMU-Virtualisierung per Intel-EPT.
Tool herunterladen