Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
matrix-rs — Rusty Hypervisor - Hypervisor Blue Pill di Tipo 2 per il kernel Windows, scritto in Rust (Nome in codice: Matrix) | Kitploit
Strumenti/GitHubGitHub/memn0ps/matrix-rs
Memory ForensicsAnalisi Dinamica del Codice (DAST)Evasione IDS/IPSReverse EngineeringVirtualizzazione per la SicurezzaApprendimento e FormazioneArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - Hypervisor Blue Pill di Tipo 2 per il kernel Windows, scritto in Rust (Nome in codice: Matrix)

Vedi Repository
3564283 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

Hypervisor Windows Kernel Blue Pill Type-2 in Rust (Nome in codice: Matrix)

License Issues Forks Stars

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

Un hypervisor di ricerca di tipo 2 basato su Rust, leggero, memory-safe ed estremamente veloce, con hook per Intel VT-x, focalizzato sullo studio dei concetti fondamentali della virtualizzazione.

Nota: L'hypervisor Illusion (Windows UEFI Blue Pill Type-1 Hypervisor in Rust) è più stabile, supporta più funzionalità ed è complessivamente meglio progettato. L'hypervisor Matrix (Windows Kernel Blue Pill Type-2 Hypervisor in Rust) è una versione più vecchia e sperimentale e non è pensato per l'uso in produzione. Entrambi i progetti servono come modelli per aiutare le persone a iniziare con lo sviluppo di hypervisor in Rust.

EPT Hooks Figura 0: Hook delle Extended Page Tables (EPT) (Matrix)

Caratteristiche

  • ✅ Extended Page Tables (EPT): Supporto per i Memory Type Range Registers (MTRR).
  • ✅ Gestione delle VM Exit: Gestione di ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, , , , , .

Hardware Supportato

  • ✅ Processori Intel con supporto VT-x ed Extended Page Tables (EPT).
  • ❌ Processori AMD con supporto AMD-V (SVM) e Nested Page Tables (NPT).

Piattaforme Supportate

  • ✅ Windows 10 - Windows 11, solo x64.

Installazione

  1. Installa Rust da qui.
  2. Passa a Rust Nightly: rustup toolchain install nightly e rustup default nightly.
  3. Installa LLVM: winget install LLVM.LLVM.
  4. Installa gli strumenti: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Installa WDK/SDK/EWDK: passaggi qui.
  6. Imposta la variabile d'ambiente WDKContentRoot in modo che punti al percorso di installazione del WDK, se non è stata impostata automaticamente durante l'installazione del WDK:
root@kitploit:~
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Compilazione del Progetto

  • Sviluppo: cargo make --profile development.
  • Produzione: cargo make --profile release.

Debugging

Abilitazione delle Modalità di Debug

  • Modalità Test: attiva la firma di test con bcdedit.exe /set testsigning on.
  • Debugging di Windows: segui i passaggi di questa guida Microsoft.
root@kitploit:~
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Debug di Rete con Windbg

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

Filtro Debug Print

  1. Apri regedit.exe.
  2. Vai a HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Crea Debug Print Filter con DWORD DEFAULT = 8.

Debug della Porta Seriale VMware

  1. Aggiungi la porta seriale in VMware: 'Use output file'.
  2. Configura nella VM Windows: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Gestione del Servizio

Usa il Service Controller (sc.exe) per creare e gestire il servizio dell'hypervisor:

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

Utilizzo

  1. Configurazione per VMware Workstation

    Compila il progetto: segui le istruzioni di compilazione fornite nelle sezioni precedenti per compilare il progetto.

  2. Configura VMware Workstation

    Configura la porta seriale VMware per il debug.

VMware Serial Port Settings Figura 1: Impostazioni della Porta Seriale VMware

Assicurati che "Virtualize Intel VT-x/EPT or AMD-V/RVI" sia abilitata e che "Virtualize IOMMU (IO memory management unit)" sia abilitata.

VMware Processors Settings Figura 2: Impostazioni dei Processori VMware

  1. Copia il Driver

    Copia il driver matrix.sys nella directory C:\Windows\System32\drivers.

  2. Debug della Porta Seriale VMware

    Esegui lo script PowerShell nella sezione Debug della Porta Seriale per aprire la porta seriale.

  3. Carica l'Hypervisor

    Usa lo script PowerShell load.ps1 mostrato nella sezione Gestione del Servizio per creare e avviare il servizio dell'hypervisor.

Load Hypervisor Figura 3: Caricamento dell'Hypervisor

PoC

Hypervisor PoC Setup Figura 4: Configurazione PoC con Log e Windbg

Hypervisor PoC Execute Figura 5: Esecuzione PoC con Log e Windbg

Ringraziamenti, Riferimenti e Motivazione

Un grande ringraziamento alle fantastiche persone e risorse che hanno contribuito a dare forma a questo progetto. Un ringraziamento speciale a tutti coloro elencati di seguito. Anche se non ho usato tutte queste risorse nel mio lavoro, sono state miniere d'oro di informazioni, estremamente utili per chiunque si immerga nello sviluppo di hypervisor, me compreso.

  • Daax (@daaximus): Per la sua eccezionale serie gratuita sullo sviluppo di hypervisor, una delle migliori risorse disponibili, che ha fortemente influenzato il mio lavoro grazie alla sua ricerca approfondita e alle spiegazioni chiare. Il suo supporto e le risposte alle mie domande sono stati preziosi per iniziare con lo sviluppo di hypervisor:

    • 7 Days to Virtualization.
    • MMU Virtualization via Intel EPT.
  • Satoshi Tanda (@tandasat): La guida, i progetti e i programmi di formazione strutturati di Satoshi Tanda sono stati incredibilmente utili. Le sue spiegazioni dettagliate e i suoi contributi su GitHub hanno migliorato notevolmente la mia comprensione, rendendolo un grande mentore durante il mio percorso:

    • Hypervisor Development for Security Researchers.
    • Hypervisor 101 in Rust.
    • Progetti aggiuntivi: Hello-VT-rp, DdiMon, HyperPlatform, MiniVisorPkg.
  • Jess (@jessiep_): Per il suo inestimabile supporto e la collaborazione in diverse aree di questo progetto, fornendo intuizioni e competenze essenziali, e per le sue rapide risposte alle mie domande.

  • Drew (@drew): Per il suo aiuto, la sua guida e le sue rapide risposte alle mie domande su vari aspetti dello sviluppo di hypervisor.

  • Sina Karvandi (@Intel80x86): Per la sua dettagliata serie gratuita Hypervisor From Scratch:

    • Tutorial Series.

Risorse della Community e Tecniche

  • Secret Club: Approfondimenti sui sistemi anti-cheat e sul rilevamento degli hypervisor, che hanno anch'essi ispirato questo progetto:

    • System emulation detection di @Daax, @iPower, @ajkhoury, @drew.
    • BattlEye hypervisor detection di @vmcall, @Daax.
  • Altre Risorse Essenziali:

    • Intel's Software Developer's Manual.
    • Di Maurice Heumann (@momo5502): Detecting Hypervisor-Assisted Hooking.
    • Di Guided Hacking x64 Virtual Address Translation su YouTube.
    • UnKnoWnCheaTs post del forum di @namazso.
    • RVM1.5, Barbervisor, rustyvisor, orange_slice, mythril, uhyve, maystorm.
    • AMD-V Hypervisor Development by Back Engineering, .

Aiutanti e Collaboratori

Un ringraziamento speciale a:

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

Licenza

Questo progetto è concesso in licenza sotto la MIT License. Per maggiori informazioni, consulta i dettagli della MIT License.

Scarica lo strumento
EptViolation
EptMisconfiguration
Invept
Invvpid
Xsetbv
  • ✅ Hook Inline del Kernel Nascosti: hook breakpoint (int3) compatibili con PatchGuard.
  • ✅ Hook di System Call (Syscall) Nascosti: hook compatibili con PatchGuard per le voci di funzione della System Service Descriptor Table (SSDT).
  • ✅ Isolamento e Sicurezza: implementazioni personalizzate della Global Descriptor Table (GDT), dell'Interrupt Descriptor Table (IDT) e delle Page Tables per migliorare la sicurezza e l'isolamento dell'hypervisor. Crediti a @namazso per aver sensibilizzato sull'argomento.
  • GitHub Repository.
  • Matthias (@not-matthias): Per il suo influente lavoro sul progetto amd_hypervisor, che ha fortemente ispirato e influenzato questa ricerca.

  • Nick Peterson (@everdox) e Aidan Khoury (@ajkhoury): Per le loro illuminanti esplorazioni sull'introspezione degli hypervisor e sull'hooking delle syscall:

    • Patchguard: Hypervisor Based Introspection [P1].
    • Patchguard: Hypervisor Based Introspection [P2].
    • Syscall Hooking Via Extended Feature Enable Register (EFER).
  • bluepill by @_xeroxz
  • hvpp by @wbenny.
  • HyperHide by @Air14.
  • How AetherVisor works under the hood by M3ll0wN1ght.
  • Libreria Rust per utilizzare funzionalità e registri specifici di x86 (amd64) (crate x86 per Rust).
  • HyperBone di DarthTon (basato sulla leggendaria versione di Alex Ionescu) su UnknownCheats.
  • Joanna Rutkowska: pioniera del concetto di hypervisor Blue Pill, una delle prime prove di concetto.