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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SimpleVisor — Minimaler Intel VT-x Hypervisor für Windows und UEFI, der einen laufenden Host zur Introspektion virtualisiert und dynamisches Hyperjacking, Unhyperjacking, EPT und VPID unterstützt. | Kitploit
Tools/GitHubGitHub/ionescu007/simplevisor
Reverse EngineeringSicherheitsvirtualisierungMalware-AnalyseHardware-SicherheitBinäranalysePapers & ForschungLernen & Bildung
GitHubionescu007/simplevisor

SimpleVisor

Minimaler Intel VT-x Hypervisor für Windows und UEFI, der einen laufenden Host zur Introspektion virtualisiert und dynamisches Hyperjacking, Unhyperjacking, EPT und VPID unterstützt.

Repository anzeigen
2.0k286vor 2 JahrenVon 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

SimpleVisor

SimpleVisor ist ein einfacher, portabler, Intel x64/EM64T VT-x-spezifischer Hypervisor mit zwei konkreten Zielen: den geringstmöglichen Einsatz von Assembly-Code (10 Zeilen) zu verwenden und den kleinstmöglichen Umfang an VMX-bezogenem Code zu haben, um dynamisches Hyperjacking und Unhyperjacking zu unterstützen (das heißt, den Host-Zustand von innerhalb des Hosts zu virtualisieren), während gleichzeitig erweiterte Funktionen wie EPT und VPID unterstützt werden. Er läuft derzeit sowohl unter Windows als auch in UEFI-Umgebungen.

Einführung

Waren Sie schon immer neugierig, wie man einen Hypervisor baut? Haben Intels Dokumentation (die vielen hundert Seiten) Sie entmutigt? Haben die Beispiele, die Sie online gefunden haben, die Sache nur verwirrender gemacht oder erforderten sie Wochen des Lesens durch Dutzende von Tausenden Zeilen und Code? Wenn ja, könnte SimpleVisor das richtige Projekt für Sie sein.

Ohne die ausführlichen Kommentare zu zählen, die jede einzelne Codezeile erklären, sowie spezifische Windows- oder Intel-bezogene Eigenheiten, kommt SimpleVisor auf etwa 500 Zeilen C-Code und 10 Zeilen x64-Assembly-Code, und das alles mit der Fähigkeit, auf jeder aktuellen Version von 64-Bit-Windows zu laufen, und mit Unterstützung für dynamisches Laden/Entladen zur Laufzeit.

Darüber hinaus verwendet SimpleVisor eine leichtgewichtige OS-Bibliothek für Windows-spezifische Funktionalität, wodurch die Hypervisor-Teile von den Windows-spezifischen Teilen getrennt werden. Durch dieses portable Design ist nun auch eine UEFI-Version von SimpleVisor verfügbar. Beachten Sie jedoch, dass diese keine robuste Unterstützung für MP-Umgebungen aufgrund von Problemen mit UEFI bietet und dass das Laden eines Betriebssystems schließlich zu einem Absturz führen wird, da das OS auf nicht implementierte Codepfade trifft, weil es Prozessorressourcen neu konfiguriert. Den gesamten Bootvorgang des Betriebssystems von UEFI aus zu virtualisieren, liegt außerhalb des Umfangs des Projekts.

SimpleVisor kann mit Visual Studio 2015 Update 3 erstellt werden, und obwohl ältere/neuere Compiler nicht getestet wurden und nicht unterstützt werden, ist es wahrscheinlich, dass sie das Projekt ebenfalls erstellen können. Es ist jedoch wichtig, die verschiedenen Compiler- und Linker-Einstellungen so beizubehalten, wie Sie sie sehen.

SimpleVisor wurde derzeit erfolgreich auf den folgenden Plattformen getestet:

  • Windows 8.1 auf einem Haswell-Prozessor (Custom Desktop)
  • Windows 10 Redstone 1 auf einem Sandy Bridge-Prozessor (Samsung 930 Laptop)
  • Windows 10 Threshold 2/Redstone 1 auf einem Skylake-Prozessor (Surface Pro 4 Tablet)
  • Windows 10 Threshold 2 auf einem Skylake-Prozessor (Dell Inspiron 11-3153 mit SGX)
  • VMWare Workstation 11, aber ohne EPT (VMWare unterstützt keine 1GB EPTs)
  • UEFI 2.4 auf einem Asus Maximus VII Extreme Motherboard (Custom Desktop)

Derzeit wurde es nicht auf Bochs getestet, aber es gibt keinen Grund, warum SimpleVisor nicht auch in einer solchen Umgebung laufen könnte. Wenn Ihr Rechner jedoch bereits unter einem Hypervisor wie Hyper-V oder Xen läuft, wird SimpleVisor nicht geladen.

Beachten Sie, dass x86-Versionen von Windows ausdrücklich nicht unterstützt werden, ebenso wenig wie Prozessoren vor der Nehalem-Mikroarchitektur oder Windows 7. Die Unterstützung für die letzten beiden ist einfach hinzuzufügen und existiert in bestimmten Forks.

Motivation

Zu viele Hypervisor-Projekte da draußen sind entweder extrem kompliziert ([Xen][1], KVM, VirtualBox) und/oder Closed-Source (VMware, Hyper-V), sowie stark auf Linux-basierte Entwicklung oder Systeme ausgerichtet. Darüber hinaus sind die meisten (außer Hyper-V) ausdrücklich zu dem Zweck gebaut, die Ausführung virtueller Maschinen zu ermöglichen, und nicht die Virtualisierung eines laufenden, aktiven Systems, um Introspektion oder andere sicherheitsrelevante Aufgaben darauf durchzuführen.

Einige Projekte stechen jedoch hervor, wie das ursprüngliche [Blue Pill][2] von Joanna oder Projekte wie [VirtDbg][3] und [HyperDbg][4]. Leider sind die meisten davon mittlerweile ziemlich alt geworden, und einige funktionieren nur auf x86-Prozessoren und unterstützen neuere Betriebssysteme wie Windows 10 nicht. Ein weiteres recht einfaches Beispiel, das in mancher Hinsicht Blue Pill ähnelt, aber tatsächlich ein gutes Beispiel für die EPT-Nutzung für "Split-TLB" liefert, ist [MoRE][7] von Jacob Torrey/AIS.

Das nächstliegende Projekt, das tatsächlich einen Windows-zentrierten, modernen und unterstützten Hypervisor liefert, ist [HyperPlatform][5], und wir empfehlen dessen Verwendung nachdrücklich als Ausgangspunkt für breiter nutzbare forschungsartige Hypervisor-Entwicklung. Bei dem Versuch, eine generische "Plattform" zu schaffen, die breiter robust ist, leidet HyperPlatform jedoch auch unter ein wenig Ballast, was es schwieriger macht zu verstehen, was wirklich die grundlegenden Bedürfnisse eines Hypervisors sind und wie man einen initialisiert. In ähnlicher Weise, und mit gleicher Liebe zu STL/C++, aber auch mit einem ELF-Loader und UEFI/Linux-Unterstützung neben Unit-Tests und noch mehr Robustheit, ist [Bareflank][8], ebenfalls von AIS. Darüber hinaus bewegen Sie sich wahrscheinlich auf Xen-Level-Komplexität zu.

Das ausdrückliche Ziel dieses Projekts war, wie oben dargelegt, den Code so weit wie möglich zu minimieren, ohne negative Nebenwirkungen zu verursachen, und sich auf die 'Bare-Metal'-Bedürfnisse zu konzentrieren. Dazu gehört:

  • Minimierung der Verwendung von Assembly-Code. Wäre da nicht das Fehlen eines __lgdt-Intrinsics und ein Workaround für das Verhalten einer Windows-API, würden nur die ersten 4 Instruktionen des Einstiegspunkts des Hypervisors Assembly erfordern. Wie es steht, hat das Projekt insgesamt 10 Instruktionen, verteilt auf 3 Funktionen. Dies ist eine massive Abkehr von anderen Hypervisor-Projekten, die oft mehrere hundert Zeilen Assembly-Code haben. Eine Vielzahl von OS-spezifischen Tricks und Compiler-Abkürzungen wird verwendet, um dieses Ergebnis zu erzielen.
  • Reduzierung von Prüfungen auf Fehler, die unwahrscheinlich auftreten. Bei einem ordnungsgemäß konfigurierten und vertrauenswürdigen Satz von Eingabedaten sollten Instruktionen wie vmx_vmwrite und vmx_vmread beispielsweise niemals fehlschlagen.
  • Entfernung der Unterstützung für x86, was die Angelegenheit verkompliziert und spezielle Behandlung rund um 64-Bit-Felder erfordert.
  • Ausdrückliche Reduzierung aller möglichen VM-Exits auf nur das von Intel architektonisch definierte Minimum (CPUID, INVD, VMX Instructions und XSETBV). Dies geschieht absichtlich, um den Hypervisor so klein wie möglich zu halten, ebenso wie den Initialisierungscode.
  • Keine Unterstützung für VMCALL. Viele Hypervisoren verwenden VMCALL als Möglichkeit, den Hypervisor zu verlassen, was Assembly-Programmierung erfordert (es gibt kein Intrinsic) und zusätzliche Exit-Behandlung. SimpleVisor verwendet stattdessen einen CPUID-Trap.
  • Verlass auf wenig bekannte OS-Funktionen, um die Entwicklung des Hypervisors zu vereinfachen, wie Generic DPCs und Hibernation-Kontexte unter Windows oder das PI MP-Protokoll unter UEFI.
  • Unterstützung von EPT/VPID auf sehr einfache Weise, um eine solide Basis der einfachstmöglichen Implementierung der Funktion zu demonstrieren.
  • Portabilität und Isolierung von OS-spezifischen Routinen.

Ein weiteres implizites Ziel war die Unterstützung der allerneuesten Hardware-Funktionen, da selbst [Bochs][6] nicht immer die allerneuesten Intel VMX-Instruktionen und/oder -Definitionen hat. Diese finden sich oft in Header-Dateien wie "vmcs.h" und "vmx.h", die verschiedene Projekte in unterschiedlichen Definitionsgraden haben. Zum Beispiel hat Xen master einige unveröffentlichte VM Exit-Gründe, aber nicht bestimmte veröffentlichte, die Bochs hat, obwohl es die unveröffentlichten nicht hat! Ein solches Beispiel ist die Verwendung von 1GB EPT-Einträgen, die beispielsweise VMWare nicht korrekt virtualisiert.

Tool herunterladen