Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
matrix-rs — Rusty Hypervisor - Hyperviseur Blue Pill de type 2 du noyau Windows en Rust (Nom de code : Matrix) | Kitploit
Outils/GitHubGitHub/memn0ps/matrix-rs
Criminalistique MémoireAnalyse Dynamique de Code (DAST)Évasion IDS/IPSRétro-ingénierieVirtualisation de SécuritéApprentissage et ÉducationArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor - Hyperviseur Blue Pill de type 2 du noyau Windows en Rust (Nom de code : Matrix)

Voir le dépôt
3564221il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Hyperviseur Blue Pill de type 2 du noyau Windows en Rust (Nom de code: Matrix)

License Issues Forks Stars

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

Un hyperviseur de recherche de type 2 écrit en Rust, léger, sûr en matière de mémoire et extrêmement rapide, avec des hooks pour Intel VT-x, axé sur l'étude des concepts fondamentaux de la virtualisation.

Remarque: L'hyperviseur Illusion (hyperviseur Blue Pill de type 1 pour UEFI Windows en Rust) est plus stable, prend en charge davantage de fonctionnalités et est globalement mieux conçu. L'hyperviseur Matrix (hyperviseur Blue Pill de type 2 du noyau Windows en Rust) est une version plus ancienne et expérimentale qui n'est pas destinée à une utilisation en production. Les deux projets servent de modèles pour aider les personnes à démarrer dans le développement d'hyperviseurs en Rust.

Hooks EPT Figure 0: Hooks de tables de pages étendues (EPT) (Matrix)

Fonctionnalités

  • ✅ Tables de pages étendues (EPT): prise en charge des registres de plage de types de mémoire (MTRR).
  • ✅ Gestion des VM Exit: gestion de ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff Rdmsr, Wrmsr, Invd, Rdtsc, EptViolation, EptMisconfiguration, Invept, Invvpid, Xsetbv.
  • ✅ Hooks inline cachés du noyau: hooks de points d'arrêt (int3) compatibles PatchGuard.
  • ✅ Hooks d'appels système (Syscall) cachés: hooks compatibles PatchGuard pour les entrées de fonctions de la table de descripteurs de services système (SSDT).
  • ✅ Isolation et sécurité: implémentations personnalisées de la table de descripteurs globaux (GDT), de la table de descripteurs d'interruptions (IDT) et des tables de pages afin d'améliorer la sécurité et l'isolation de l'hyperviseur. Merci à @namazso pour avoir sensibilisé à ce sujet.

Matériel pris en charge

  • ✅ Processeurs Intel avec prise en charge de VT-x et des tables de pages étendues (EPT).
  • ❌ Processeurs AMD avec prise en charge d'AMD-V (SVM) et des tables de pages imbriquées (NPT).

Plateformes prises en charge

  • ✅ Windows 10 - Windows 11, x64 uniquement.

Installation

  1. Installez Rust à partir d'ici.
  2. Passez à Rust Nightly: rustup toolchain install nightly et rustup default nightly.
  3. Installez LLVM: winget install LLVM.LLVM.
  4. Installez les outils: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Installez WDK/SDK/EWDK: étapes ici.
  6. Définissez la variable d'environnement WDKContentRoot pour qu'elle pointe vers votre chemin d'installation du WDK, si elle n'a pas été définie automatiquement lors de l'installation du WDK:
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Compilation du projet

  • Développement: cargo make --profile development.
  • Production: cargo make --profile release.

Débogage

Activation des modes de débogage

  • Mode test: activez la signature de test avec bcdedit.exe /set testsigning on.
  • Débogage Windows: suivez les étapes de ce guide Microsoft.
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Débogage réseau avec Windbg

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

Filtre d'impression de débogage

  1. Ouvrez regedit.exe.
  2. Accédez à HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Créez Debug Print Filter avec le DWORD DEFAULT = 8.

Débogage par port série VMware

  1. Ajoutez un port série dans VMware: 'Utiliser un fichier de sortie'.
  2. Configurez dans la VM Windows: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Gestion du service

Utilisez le contrôleur de services (sc.exe) pour créer et gérer le service de l'hyperviseur:

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

Utilisation

  1. Configuration pour VMware Workstation

    Compilez le projet: suivez les instructions de compilation fournies dans les sections précédentes pour compiler le projet.

  2. Configurer VMware Workstation

    Configurez le port série VMware pour le débogage.

Paramètres du port série VMware Figure 1: Paramètres du port série VMware

Assurez-vous que "Virtualize Intel VT-x/EPT or AMD-V/RVI" est activé et que "Virtualize IOMMU (IO memory management unit)" est activé.

Paramètres des processeurs VMware Figure 2: Paramètres des processeurs VMware

  1. Copier le pilote

    Copiez le pilote matrix.sys dans le répertoire C:\Windows\System32\drivers.

  2. Débogage par port série VMware

    Exécutez le script PowerShell de la section Débogage par port série pour ouvrir le port série.

  3. Charger l'hyperviseur

    Utilisez le script PowerShell load.ps1 présenté dans la section Gestion du service pour créer et démarrer le service de l'hyperviseur.

Chargement de l'hyperviseur Figure 3: Chargement de l'hyperviseur

PoC

Configuration du PoC de l'hyperviseur Figure 4: Configuration du PoC avec les journaux et Windbg

Exécution du PoC de l'hyperviseur Figure 5: Exécution du PoC avec les journaux et Windbg

Remerciements, références et motivation

Un grand merci aux personnes et aux ressources exceptionnelles qui ont façonné ce projet. Un merci tout particulier à toutes les personnes énumérées ci-dessous. Bien que je n'aie pas utilisé toutes ces ressources dans mon travail, elles ont été de véritables mines d'or d'informations, extrêmement utiles pour quiconque se lance dans le développement d'hyperviseurs, y compris moi-même.

Télécharger l’outil