Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
35642vor 3 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, , , , , .

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:
root@kitploit:~
[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.
root@kitploit:~
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:

root@kitploit:~
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.
  • Satoshi Tanda (@tandasat): Satoshi Tandas Anleitung, Projekte und strukturierte Trainingsprogramme waren unglaublich hilfreich. Seine detaillierten Erklärungen und Beiträge auf GitHub haben mein Verständnis erheblich verbessert und ihn zu einem großartigen Mentor auf meinem Weg gemacht:

    • Hypervisor-Entwicklung für Sicherheitsforscher.
    • Hypervisor 101 in Rust.
    • Weitere Projekte: Hello-VT-rp, DdiMon, HyperPlatform, MiniVisorPkg.
  • Jess (@jessiep_): Für seine unschätzbare Unterstützung und Zusammenarbeit in mehreren Bereichen dieses Projekts, die wesentliche Einblicke und Fachwissen lieferte, sowie für seine schnellen Antworten auf meine Fragen.

  • Drew (@drew): Für seine Hilfe, Anleitung und schnellen Antworten auf meine Fragen zu verschiedenen Aspekten der Hypervisor-Entwicklung.

  • Sina Karvandi (@Intel80x86): Für seine detaillierte kostenlose Hypervisor-From-Scratch-Serie:

    • Tutorial-Serie.

Community- und technische Ressourcen

  • Secret Club: Einblicke in Anti-Cheat-Systeme und Hypervisor-Erkennung, die ebenfalls dieses Projekt inspiriert haben:

    • Erkennung von Systememulation von @Daax, @iPower, @ajkhoury, @drew.
    • BattlEye-Hypervisor-Erkennung von @vmcall, @Daax.
  • Weitere wichtige Ressourcen:

    • Intels Softwareentwickler-Handbuch.
    • Maurice Heumanns (@momo5502) Erkennung von Hypervisor-gestütztem Hooking.
    • Guided Hackings x64-Übersetzung virtueller Adressen auf YouTube.
    • UnKnoWnCheaTs Forumsbeitrag von @namazso.
    • RVM1.5, Barbervisor, rustyvisor, orange_slice, mythril, uhyve, maystorm.
    • AMD-V-Hypervisor-Entwicklung von Back Engineering, .

Helfer und Mitwirkende

Besonderer Dank geht an:

  • Daax.
  • Satoshi Tanda (@tandasat).
  • Drew (@drew).
  • iPower (@iPower).
  • Namazso (@namazso).
  • Jess (@jessiep_).
  • Matthias @not-matthias.
  • @felix-rs / @joshuа.
  • Ryan McCrystal / @rmccrystal.
  • Jim Colerick (@vmprotect).

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen findest du in den MIT-Lizenzdetails.

Tool herunterladen
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.
  • GitHub-Repository.
  • Matthias (@not-matthias): Für seine wegweisende Arbeit am Projekt amd_hypervisor, das diese Forschung stark inspiriert und beeinflusst hat.

  • Nick Peterson (@everdox) und Aidan Khoury (@ajkhoury): Für ihre aufschlussreichen Untersuchungen zur Hypervisor-Introspektion und zum Syscall-Hooking:

    • Patchguard: Hypervisor-basierte Introspektion [P1].
    • Patchguard: Hypervisor-basierte Introspektion [P2].
    • Syscall-Hooking über das Extended Feature Enable Register (EFER).
  • bluepill von @_xeroxz
  • hvpp von @wbenny.
  • HyperHide von @Air14.
  • Wie AetherVisor unter der Haube funktioniert, von M3ll0wN1ght.
  • Rust-Bibliothek zur Nutzung x86-spezifischer (amd64) Funktionen und Register (x86-Crate für Rust).
  • DarthTons HyperBone (basierend auf der legendären Version von Alex Ionescu) auf UnknownCheats.
  • Joanna Rutkowska: Pionierarbeit am Blue-Pill-Hypervisor-Konzept, einer der frühesten Proofs of Concept.