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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
applepie — Ein Hypervisor für Fuzzing, erstellt mit WHVP und Bochs. | Kitploit
Tools/GitHubGitHub/gamozolabs/applepie
Dynamische Analyse (Sandboxing)SchwachstellenanalyseReverse EngineeringFuzzingBinäranalyse
GitHubgamozolabs/applepie

applepie

Ein Hypervisor für Fuzzing, erstellt mit WHVP und Bochs.

Repository anzeigen
3846020vor 7 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

applepie, eine Hypervisor-Implementierung für Bochs

Hallo! Willkommen bei applepie! Dieses Tool wurde für Fuzzing, Introspection und das Finden von Bugs entwickelt! Es ist ein Hypervisor, der die Windows Hypervisor Platform API verwendet, die in aktuellen Windows-Versionen vorhanden ist (insbesondere wurde es auf Windows 10 17763 entwickelt und getestet). Bochs wird für tiefgehende Introspection und Geräteemulation verwendet.

Die Windows Hypervisor Platform API (WHVP) ist eine API-Sammlung, um auf die Hypervisor-Fähigkeiten von Hyper-V zuzugreifen. Diese API macht es uns leicht, eine virtuelle Maschine komplett im Userspace zu implementieren, ohne dass spezielle Treiber oder Berechtigungen erforderlich sind.

Folgen Sie mir auf Twitter für Updates

Dies ist ein sich schnell entwickelndes Projekt. Ich werde wahrscheinlich twittern, wenn neue Funktionen erscheinen, bevor sie dokumentiert werden.

@gamozolabs

Aktuelle Feature-Demo

Youtube Video

Beispiel für Code Coverage (Binärabdeckung)

Youtube Video

Maskottchen

Ich mag physische Dinge für meine Projekte:

apple pie squishable

Wofür ist das?

Dieses Tool wurde für Fuzzing und Introspection während der Sicherheitsforschung entwickelt. Durch die Verwendung eines Hypervisors können gängige Fuzzing-Techniken auf jedes Ziel angewendet werden, sei es Kernel oder Userspace. Diese Umgebung ermöglicht das Fuzzing ganzer Systeme ohne Quellcode des Ziels. Auf Hypervisor-Ebene kann Code Coverage gesammelt werden, und bei Bedarf kann die Bochs-Emulation genutzt werden, um in einer Emulationsumgebung beliebige Introspection durchzuführen. Diese Coverage-Informationen können verwendet werden, um die Effektivität der Fuzz-Fälle zu ermitteln. Ein Fuzz-Fall, der zu einer Erhöhung der Coverage führt, kann als interessanter Fall gespeichert werden. Dieser Input kann später verwendet werden und durch neue Korruptionen erweitert werden.

Snapshot-Fuzzing ist die primäre Verwendung dieses Tools. Dabei wird ein Snapshot eines Systems in einem bestimmten Zustand erstellt und gespeichert. Dieser Snapshot kann dann zum Fuzzing geladen werden, ein Fuzz-Fall wird injiziert und die Ausführung fortgesetzt. Da die VM sehr günstig zurückgesetzt werden kann, kann die VM oft zurückgesetzt werden. Wenn Word 5 Sekunden zum Booten braucht, man es aber genau dann snapshotieren kann, wenn es die Datei liest, kann der Fuzz-Fall auf das reduziert werden, was für einen Input relevant ist. Dies ermöglicht eine sehr enge Fuzzing-Schleife, ohne dass Quellcode benötigt wird. Da die VMs vollständig getrennte Systeme sind, können viele parallel ausgeführt werden, um auf alle Kerne zu skalieren.

Derzeit unterstützt dieses Tool nur das Sammeln von Code Coverage, das dynamische Herunterladen von Symbolen für Windows und das Parsen von Symbolen/Modulen für Windows-Ziele. Die Fuzzing-Unterstützung wird bald hinzugefügt.

Entwicklungszyklus

Da ich die meisten dieser Funktionen bereits entwickelt habe (Coverage, Fuzzing, schnelle Resets, etc.), erwarte ich, dass dieses Projekt ziemlich schnell fuzzing-bereit wird, es sei denn, ich werde abgelenkt :D

Ich strebe Ende Januar für Coverage (erledigt!), Feedback, Modulauflistungen (erledigt!), Prozesslisten, schnelle Resets und Symbolunterstützung (erledigt!) an. Damit wäre es ein sehr leistungsfähiger Fuzzer.

Betriebssystemunterstützung

Das Hauptziel ist modernes Windows 10. Windows-Ziele unterstützen das Herunterladen von Symbolen aus dem Symbolspeicher. Dies ermöglicht symbolische Coverage bei Windows-Zielen von Haus aus. Der Code ist jedoch so geschrieben, dass eine Linux-Erleuchtung (enlightenment) einfach hinzugefügt werden kann.

Ohne jegliche Erleuchtung kann jedes bootfähige Betriebssystem dennoch gefuzzt werden und grundlegende Coverage gesammelt werden.

Bevor Sie Probleme mit der Betriebssystemunterstützung melden, validieren Sie bitte, ob das Problem im Hypervisor/den Änderungen an Bochs liegt, indem Sie versuchen, Ihr Ziel mit standardmäßig vorkompiliertem Bochs ohne Hypervisor zu booten. Bochs wird nicht häufig verwendet und kann oft Fehler verursachen, selbst bei alltäglichen Dingen wie dem Booten von Linux. Insbesondere aufgrund der schnellen internen Änderungen an CPUID/MSR-Verwendungen im Zusammenhang mit Spectre/Meltdown-Mitigation, die in Betriebssysteme einfließen.

Probleme

Siehe die Issues-Seite auf GitHub für eine Liste der Probleme. Ich habe sie bereits mit einigen bestückt. Einige davon müssen schnell behoben werden, bevor die Fuzzing-Entwicklung beginnt.

Bauen

Build-Voraussetzungen

Zum Bauen benötigen Sie einige Dinge:

  • Aktueller MSVC-Compiler (Visual Studio 2017)
  • Nightly Rust (https://rustup.rs/, muss nightly sein)
  • Python (ich habe 3 verwendet, aber 2 sollte auch funktionieren)
  • 64-Bit-Cygwin mit installierten autoconf- und GNU make-Paketen
  • Installiertes Hyper-V und eine aktuelle Windows 10-Build

MSVC

Installieren Sie Visual Studio 2017 und stellen Sie sicher, dass es aktualisiert ist. Wir verwenden hier einige hochaktuelle APIs, Header und Bibliotheken.

Ich habe die cl.exe-Version verwendet: Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64 Und SDK-Version 10.0.17763.0

Nightly Rust

Installieren Sie Rust über https://rustup.rs/. Ich habe rustc 1.32.0-nightly (b3af09205 2018-12-04) verwendet.

Stellen Sie sicher, dass Sie die Toolchain x86_64-pc-windows-msvc installieren, da nur 64-Bit für dieses Projekt unterstützt wird.

Stellen Sie sicher, dass cargo in Ihrem Pfad ist. Dies sollte standardmäßig der Fall sein.

Python

Holen Sie sich Python von https://www.python.org/ und stellen Sie sicher, dass es in Ihrem PATH ist, sodass python aufgerufen werden kann.

Cygwin

Installieren Sie 64-Bit-Cygwin (https://www.cygwin.com/setup-x86_64.exe) speziell nach C:\cygwin64. Stellen Sie bei der Installation von Cygwin sicher, dass Sie die Pakete autoconf und make installieren.

Hyper-V

Gehen Sie zu "Windows-Features aktivieren oder deaktivieren" und aktivieren Sie das Kontrollkästchen neben "Hyper-V" und "Windows Hypervisor Platform". Dies setzt natürlich voraus, dass Ihr Computer Hyper-V unterstützt.

Schritt-für-Schritt-Build-Prozess

Diese Installationsanleitung wurde auf Folgendem verifiziert:

Saubere Installation von Windows 10, Build 17763
rustc 1.33.0-nightly (8e2063d02 2019-01-07)
Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27025.1 for x64
Visual Studio Community 2017 Version 15.9.4
applepie Commit `f84c084feb487e2e7f31f9052a4ab0addd2c4cf9`
Python 3.7.2 x64
git version 2.20.1.windows.1
  • Stellen Sie sicher, dass Windows 10 vollständig aktuell ist
    • Wir verwenden einige hochaktuelle Funktionen von WHVP und nur die neueste Windows 10 wird getestet
  • Gehen Sie zu "Windows-Features aktivieren oder deaktivieren"
    • Aktivieren Sie "Hyper-V"
    • Aktivieren Sie "Windows Hypervisor Platform"
    • Klicken Sie auf OK, um die Installation zu starten und neu zu starten

windows features

  • Installieren Sie VS Community 2017 und aktualisieren Sie es
    • Desktopentwicklung mit C++

vsconfig

Tool herunterladen