
Windows-x64-Recherche-Hypervisor, der Intel VT-x und EPT-Hooks pro CPU verwendet, um Nt/Ex/Mm-Routinen abzufangen, Anforderungsrichtlinien anzuwenden und Live-Kernel-Telemetrie zu streamen.
Intel VT-x-Virtualisierung, EPT-Hooking und interaktive Kernel-Telemetrie in C und x64-Assembly.
Velum bringt einen laufenden Windows-Kernel in den VMX-Non-Root-Betrieb und bietet Forschern eine interaktive Möglichkeit, native Aufrufe zu beobachten, Kernel-Aktivitäten zu inspizieren und Anfrage- richtlinien anzuwenden. Die EPT-Hooks spielen Originalinstruktionen in Hardware nach, während Guest-Helper Metadaten erfassen und ein verzögerter Worker lesbare Ereignisse an die Konsole oder DebugView liefert.
Nutzen Sie es, um eine Dateioperation von den Eingabeargumenten bis zur Richtlinienentscheidung zu verfolgen, eine erlaubte Anfrage mit einer abgelehnten zu vergleichen oder Prozessoridentität und Timing-Einstellungen zu erkunden, ohne den Hypervisor neu zu starten. Die Implementierung umfasst CPU-spezifisches Starten und Herunterfahren, CET-Zustandsübertragung, Ereignis-Reinjektion und Verwaltung des Translation-Cache.
Erste Schritte | Nutzungsanleitungen | Technische Dokumentation | Laufzeitaufzeichnungen | MIT-Lizenz
| Bereich | Was Sie tun können |
|---|---|
| EPT-Hooks | Exportierte Einstiegspunkt-Hooks mit Originalinstruktions-Replay und MTF-Wiederherstellung aktivieren und deaktivieren |
| Native-Call-Telemetrie | Aufrufer-IDs, Pfade, Prozessmetadaten und dekodierte Eingabeargumente inspizieren |
| Anfrage-Richtlinien | Passende Nt-Anfragen anhand von Aufrufer-, Pfad- und Eingabefeld-Kriterien ablehnen |
| Zugriffsreduzierung | Explizit angeforderte Rechte für NtCreateFile, NtOpenFile, NtCreateSection, NtOpenProcess und NtDuplicateObject entfernen |
| Kernel-Beobachtung | Pool-Allokation/-Freigabe, Speicherzuordnung und Kopier-Eingaben verfolgen; Modul-/Tag-Zusammenfassungen inspizieren |
| Protokollierung | Live-Konsolen- oder DebugView-Ausgabe wählen und Filter pro Ziel konfigurieren |
| CPUID | Identitätsregeln anwenden und abfragen, dann die Standardwerte wiederherstellen |
| TSC | Einen festen vorzeichenbehafteten Offset mit Deadline-Übersetzung anwenden und auf null zurücksetzen |
| Lebenszyklus | Jede beteiligte CPU prüfen und Windows über den Shutdown-Ablauf in die native Ausführung zurückversetzen |
Der Zielkatalog enthält 12 Nt-Routinen und 12 Ex/Mm-Routinen. Die Konsole löst verfügbare Exporte und gemeinsame Einstiegsadressen im laufenden Kernel auf. Siehe den Zielindex für die Felder und unterstützten Aktionen jedes Ziels.
Die Laufzeit ist auf explizite Zustandsverwaltung und einen kleinen VM-Exit- Pfad optimiert. Eine etwa 1.000 Zeilen umfassende x64-Assembly-Schicht übernimmt die Registererhaltung, VMX-Übergänge, CET-Zustandsübertragung und native Rückkehr. Pro-CPU-Strukturen und vorab zugewiesene EPT-Reserven halten die Allokation aus dem Exit-Pfad heraus; die Ereignisformatierung läuft in einem verzögerten Worker auf PASSIVE-Ebene. Release-Builds verwenden Compiler-Optimierung, während selektive Interception das unnötige Abfangen gewöhnlicher Operationen vermeidet.
Root-Handler verwalten VMCS- und EPT-Übergänge. Geeignete Guest-Helper erfassen Argumente und werten Richtlinien im Windows-Kontext aus. Die Formatierung erfolgt später im Drain-Worker. Ein erlaubter Aufruf führt seine ursprüngliche Einstiegsinstruktion unter einem temporären EPT-Mapping aus; MTF gibt die Kontrolle zurück, um den Shadow wiederherzustellen. Abgelehnte Aufrufe verwenden eine echte Guest-Rückkehr, sodass der normale Stack und der CET-Shadow-Stack gemeinsam fortschreiten.
Für eine ausführliche Erklärung lesen Sie Velum: preserving Windows execution across VMX transitions. Der Artikel folgt dem VMX-Start, den VMCS-Steuerungen, EPT-Hooks, CET, NMI-/Ereignisbehandlung, Telemetrie und Shutdown durch den Quellcode. Er enthält WinDbg-Belege aus der Windows 10-Untersuchung und erklärt den Alias-Fix für ExFreePool/ExFreePoolWithTag. Die kürzeren Engineering-Notizen fassen diese Entscheidungen zusammen.
Die folgenden Aufzeichnungen stammen aus einer physischen Windows-11-Sitzung mit Build 26300.9711 auf einem Intel i7-12700F mit 20 logischen Prozessoren. Die Sitzung umfasst 20/20 CPU-Diagnoseprüfungen, bereichsbezogene Dateischreibverweigerung, Zugriffsreduzierung, Prozessorkonfiguration und verifiziertes Herunterfahren. Vollständige Galerie und Animationen | Sitzungsdetails und Hashes.
Hooks aktivieren, Richtlinien konfigurieren, CPU-Status prüfen und die Laufzeitumgebung über eine einzige Konsole verwalten.

Eine kontrollierte NtWriteFile-Anfrage mit sechs Bytes samt Aufrufer, Pfad und Eingabefeldern.

Der angeforderte Zugriff 0x12019F wird nach Entfernen der Maske 0x6 zu 0x120199. Das Öffnen
gelingt, und die Prüfsonde bestätigt, dass das resultierende Handle nicht schreiben kann. Diese beschriftete
Zusammenstellung kombiniert die Monitorausgabe mit dem Ergebnis der Anwendung.



v0.1.0 für Windows x64 herunterladen (ZIP) | Versionshinweise und SHA-256-Prüfsummen
Das ZIP enthält velum.sys und velum-console.exe. Befolgen Sie die untenstehende Einrichtungsanleitung,
bevor Sie den Treiber laden, oder erstellen Sie ihn aus dem Quellcode: