Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
pyrebox — Python-scriptbare Reverse-Engineering-Sandbox, ein Framework zur Instrumentierung und Inspektion virtueller Maschinen auf Basis von QEMU | Kitploit
Tools/GitHubGitHub/cisco-talos/pyrebox
Dynamische Analyse (Sandboxing)SpeicherforensikReverse EngineeringDebuggerMalware-AnalyseDigitale ForensikBinäranalyseLernen & BildungArchived
GitHubcisco-talos/pyrebox

pyrebox

Python-scriptbare Reverse-Engineering-Sandbox, ein Framework zur Instrumentierung und Inspektion virtueller Maschinen auf Basis von QEMU

1.7k2549vor 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 →
Repository anzeigen
Webseite
Teilen

ARCHIVIERTES PROJEKT

DIESES PROJEKT WURDE ARCHIVIERT UND SEIN ISSUE-QUEUE IST GESPERRT. DAS PROJEKT WIRD NUR AUS REFERENZGRÜNDEN ÖFFENTLICH GEHALTEN.

.. image:: docs/media/pyrebox_logo_light_bg.png

.. _QEMU: http://qemu.org/ .. _DECAF: https://github.com/sycurelab/DECAF .. _S2E: https://github.com/dslab-epfl/s2e .. _AVATAR: https://github.com/avatartwo .. _PANDA: https://github.com/panda-re/panda .. _Volatility: http://www.volatilityfoundation.org/ .. _BUILD: BUILD.rst .. _here: https://github.com/Cisco-Talos/pyrebox/issues .. _slides: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_hitb_ams.pdf .. _available: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_euskalhack.pdf .. _scripts: https://github.com/Cisco-Talos/pyrebox/tree/master/scripts .. _readthedocs.io: https://pyrebox.readthedocs.io/en/latest/ .. _questions: https://github.com/Cisco-Talos/pyrebox/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20 .. _presentation: https://www.youtube.com/watch?v=F2voG87obzM .. _Contest: https://volatility-labs.blogspot.com/2017/11/results-from-5th-annual-2017-volatility.html

PyREBox ist eine in Python scriptbare Reverse-Engineering-Sandbox. Sie basiert auf QEMU und hat zum Ziel, Reverse Engineering durch dynamische Analyse- und Debugging-Funktionen aus einer anderen Perspektive zu unterstützen. PyREBox ermöglicht es, eine laufende QEMU-VM zu inspizieren, ihren Speicher oder ihre Register zu ändern und ihre Ausführung zu instrumentieren, indem einfache Skripte in Python zur Automatisierung beliebiger Analysen erstellt werden. QEMU (wenn es als Vollsystem-Emulator arbeitet) emuliert ein komplettes System (CPU, Speicher, Geräte...). Durch den Einsatz von VMI-Techniken ist keine Modifikation des Gastbetriebssystems erforderlich, da Informationen transparent zur Laufzeit aus dessen Speicher abgerufen werden.

Mehrere akademische Projekte wie DECAF_, PANDA_, S2E_ oder AVATAR_ haben zuvor QEMU-basierte Instrumentierung genutzt, um Reverse-Engineering-Aufgaben zu bewältigen. Diese Projekte erlauben das Schreiben von Plugins in C/C++ und implementieren mehrere fortgeschrittene Funktionen wie dynamische Taint-Analyse, symbolische Ausführung oder sogar Aufzeichnung und Wiedergabe von Ausführungsspuren. Mit PyREBox möchten wir diese Technologie anwenden, wobei der Schwerpunkt auf einem einfachen Design und der Benutzerfreundlichkeit des Systems für Bedrohungsanalysten liegt.

PyREBox hat den Volatility Plugin Contest_ im Jahr 2017 gewonnen!

Dieses Tool wurde auf der HITB Amsterdam 2018 vorgestellt. Sie können die Folien (slides_) ansehen oder die Präsentation (presentation_) anschauen. Es wurde auch auf dem dritten EuskalHack Security Congress vorgestellt (Folien verfügbar unter available_).

Was gibt es Neues

Denken Sie daran, die neueste Version von PyREBox zu ziehen, um die neuesten Funktionen zu nutzen. PyREBox wird aktiv weiterentwickelt und neue coole Funktionen stehen noch bevor! Der Master-Zweig sollte immer eine stabile Version enthalten, während die Entwicklungszweige die neuesten, in Arbeit befindlichen Funktionen enthalten. Die folgende Ankündigungsliste bezieht sich auf den Master-Zweig und das Datum, an dem die Entwicklungsänderungen in den Master gemergt wurden.

  • [Dec 5, 2019] Beta-Version von PyREBox3, bereit auf dem python3migration-Zweig. Das Tool wurde auf Python3 und Volatility3 portiert. Plugins wurden noch nicht portiert.
  • [Jun 21, 2019] Upgrade von QEMU auf Version 4.0.0, mit MTTCG (Multi-Threaded TCG) Support. Besonderer Dank geht an @richsurgenor für seine wertvollen Beiträge zu diesem Upgrade.
  • [Jun 17, 2019] Zusammenführung des dev-Zweigs (Malware Monitor 2).
  • [Jun 17, 2019] Mausbewegungsautomatisierung.
  • [Jun 17, 2019] Volatility aktualisiert.
  • [Oct 17, 2018] API-Funktion zum Abrufen der Systemzeit von Windows-Gästen hinzugefügt.
  • [Oct 17, 2018] Unterstützung für Symbole in der BP (Breakpoint)-Klasse hinzugefügt.
  • [Oct 17, 2018] Symbol-Cache (Host-Datei) hinzugefügt. Siehe Beispielkonfigurationsdateien (pyrebox.conf.WinXPSP3x86).
  • [Oct 17, 2018] Symbolabruf geändert, um DLL-Dateien von der Festplatte zu erhalten.
  • [Oct 10, 2018] Experimentelle Unterstützung zum Abrufen von nicht gemappten Speicherseiten hinzugefügt.
  • [0ct 10, 2018] Integration von The Sleuth Kit hinzugefügt
  • [Aug 02, 2018] Autorun-Skripte hinzugefügt.
  • [Jul 26, 2018] Folien der EuskalHack 2018 Präsentation hochgeladen.
  • [Jul 02, 2018] Fehlerbehebungen zur Unterstützung von CentOS 7.
  • [Jun 25, 2018] Skripte der EuskalHack 2018 Präsentation hinzugefügt.
  • [May 31, 2018] Upgrade auf Qemu v2.12.0.
  • [May 29, 2018] Möglichkeit hinzugefügt, Trigger-Funktionen (in C/C++) aus Python-Skripten aufzurufen.
  • [May 29, 2018] Format der Callback-Parameter geändert. Siehe Dokumentation. Standard ist weiterhin der alte Stil.
  • [Apr 28, 2018] Einen Entwicklungszweig für neue und potenziell instabile Funktionen in PyREBox erstellt.
  • [Apr 13, 2018] PyREBox auf der HITB Amsterdam (CommSec Track) vorgestellt.
  • [Apr 13, 2018] Malware-Überwachungsskripte (mw_mon) hinzugefügt.
  • [Mar 08, 2018] Trigger werden jetzt für jeden Prozess im System aufgerufen (nicht nur für überwachte Prozesse). Siehe Dokumentation
  • [Mar 08, 2018] Parameter von Speicher-Lese-/Schreib-Callbacks geändert. Siehe Dokumentation und Beispiele.
  • [Mar 08, 2018] Breakpoints für physische Speicheradressen (Lesen/Schreiben) hinzugefügt.
  • [Mar 08, 2018] Callbacks für Modulladen und -entfernen hinzugefügt.
  • [Nov 02, 2017] Gast-Agent für Linux 32 und 64 Bit hinzugefügt.
  • [Oct 23, 2017] Gast-Agent für Windows 32 und 64 Bit hinzugefügt.
  • [Oct 11, 2017] Symbol-Parsing für Linux-Module hinzugefügt.
  • [Sep 22, 2017] Unterstützung für das Neuladen von Modulen hinzugefügt.
  • [Sep 20, 2017] Benutzerdefinierte Funktions-Callbacks zur BP-Klasse hinzugefügt.
  • [Sep 20, 2017] Upgrade auf Qemu v2.10.0.
  • [Aug 31, 2017] Teilweise Unterstützung für Linux-Gäste.

Installation

Ein Build-Skript wird bereitgestellt. Für spezifische Details zu Abhängigkeiten siehe BUILD_. Wir stellen auch ein Dockerfile bereit.

Dokumentation

Die Dokumentation dieses Projekts wird auf readthedocs.io_ gehostet.

Fehler, Fragen und Support

Wenn Sie glauben, einen Fehler gefunden zu haben, melden Sie ihn bitte hier_.

Bevor Sie ein neues Issue erstellen, gehen Sie bitte die von anderen Benutzern geöffneten Fragen (questions_) durch.

Dieses Programm wird "WIE BESEHEN" bereitgestellt, und es wird kein Support garantiert. Um uns bei der Lösung Ihrer Probleme zu helfen, fügen Sie bitte so viele Informationen wie möglich hinzu, um den Fehler reproduzieren zu können:

  • Betriebssystem, das für die Kompilierung und Ausführung von PyREBox verwendet wurde.
  • Die spezifische Betriebssystemversion und das Emulationsziel, das Sie verwenden.
  • Shell-Befehl / Skript / Aufgabe, die Sie ausführen wollten.
  • Alle Informationen zum Fehler wie Fehlermeldungen, Python- (oder IPython-) Stack-Trace oder QEMU-Stack-Trace.
  • Alle anderen relevanten Informationen.

Fahrplan

  • Konfiguration und Verwaltungskonsole für VM-Images.
  • Unterstützung für ARM, MIPS und andere Architekturen.
  • Fertigstellung der Unterstützung für GNU/Linux-Gastsysteme (siehe Issues).

Starten einer VM

PyREBox basiert auf QEMU. Um eine VM innerhalb von PyREBox zu starten, müssen Sie sie genau so ausführen, als ob Sie eine QEMU-VM hochfahren würden. Einige Beispielskripte werden bereitgestellt: start_i386.sh, start_x86_64.sh, die Sie als Beispiel verwenden können.

Die einzige derzeit unterstützte QEMU-Monitor-Option ist stdio (-monitor stdio).

Ziele dieses Projekts

  • Bereitstellung einer Plattform zur Emulation kompletter Systeme mit einer einfachen Schnittstelle zur Inspektion des emulierten Gastsystems.

    • Fein granulare Instrumentierung von Systemereignissen.
    • Integrierte Virtual Machine Introspection (VMI), basierend auf Volatility. Es muss kein Agent oder Treiber im Gast installiert werden.
    • Eine IPython-basierte Shell-Schnittstelle.
    • Eine Python-basierte Skript-Engine, die es erlaubt, beliebige auf dieser Sprache basierende Sicherheitstools (eines der größten Ökosysteme) in die Skripte zu integrieren.
  • Ein sauberes, von QEMU entkoppeltes Design. Viele Projekte, die auf QEMU aufbauen, entwickeln sich nicht weiter, wenn QEMU aktualisiert wird, wodurch neue Funktionen und Optimierungen sowie Sicherheitsupdates verpasst werden. Um dies zu erreichen, ist PyREBox als unabhängiges Modul implementiert, das mit minimalen Änderungen zusammen mit QEMU kompiliert werden kann.

  • Unterstützung für verschiedene Architekturen. Derzeit unterstützt PyREBox nur Windows für x86- und x86-64-Bit-Architekturen, aber das Design ermöglicht die Unterstützung anderer Architekturen wie ARM, MIPS oder PowerPC sowie anderer Betriebssysteme.

IPython-Shell

Das Starten einer PyREBox-Shell ist so einfach wie das Tippen des sh-Befehls im QEMU-Monitor. Es wird sofort eine IPython-Shell gestartet. Diese Shell zeichnet den Befehlsverlauf sowie die definierten Variablen auf. Sie können beispielsweise einen Wert speichern und später an einem anderen Punkt der Ausführung wieder abrufen, wenn Sie die Shell erneut starten. PyREBox nutzt alle verfügbaren Funktionen von IPython wie Autovervollständigung, Befehlsverlauf, mehrzeilige Bearbeitung und automatische Hilfegenerierung für Befehle.

PyREBox ermöglicht es Ihnen, das System (oder einen Prozess) auf recht verdeckte Weise zu debuggen. Im Gegensatz zu herkömmlichen Debuggern, die sich im zu debuggenden System befinden (und sogar den Speicher des debugged Prozesses modifizieren, um Breakpoints einzufügen), bleibt PyREBox vollständig außerhalb des inspizierten Systems und erfordert keine Installation von Treibern oder Komponenten im Gast.

.. image:: docs/media/breakpoint.gif

PyREBox bietet eine vollständige Reihe von Befehlen, um den Zustand der laufenden VM zu inspizieren und zu ändern. Geben Sie einfach list_commands ein, um eine vollständige Liste zu erhalten. Sie können jedes Volatility-Plugin ausführen, indem Sie vol und den entsprechenden Volatility-Befehl eingeben. Für eine vollständige Liste der verfügbaren Volatility-Plugins können Sie list_vol_commands eingeben. Diese Liste wird automatisch generiert und zeigt daher auch alle Volatility-Plugins an, die Sie im Pfad volatility/ von PyREBox installieren.

Sie können auch Ihre eigenen Befehle definieren! Dies ist so einfach wie das Deklarieren einer Funktion in einem Skript und das Laden dieses Skripts.

Wenn Sie etwas Ausdrucksstärkeres als einen Befehl benötigen, können Sie einen Python-Snippet unter Verwendung der API schreiben. Eine detaillierte Beschreibung der API finden Sie in der Dokumentation_ oder geben Sie help(api) in der Shell ein.

.. image:: docs/media/stack.gif

Scripting

PyREBox ermöglicht das dynamische Laden von Skripten, die Callback-Funktionen registrieren können, die bei bestimmten Ereignissen aufgerufen werden, wie ausgeführten Instruktionen, Speicher-Lese-/Schreibzugriffen, erstellten/zerstörten Prozessen usw.

Da PyREBox in Volatility integriert ist, können Sie in Ihren Python-Skripten alle Volatility-Plugins für die Speicherforensik nutzen. Viele der bekanntesten Reverse-Engineering-Tools sind in Python implementiert oder haben zumindest Python-Bindungen. Unser Ansatz ermöglicht die Integration beliebiger dieser Tools in ein Skript.

Da Python-Callbacks bei häufigen Ereignissen wie ausgeführten Instruktionen zu Leistungseinbußen führen können, ist es auch möglich, Trigger zu erstellen. Trigger sind native Code-Plugins (entwickelt in C/C++), die zur Laufzeit dynamisch bei jedem Ereignis eingefügt werden können, kurz bevor der Python-Callback ausgeführt wird. Dies ermöglicht es, die Anzahl der Ereignisse, die den Python-Code erreichen, zu begrenzen sowie Werte in nativem Code vorzuberechnen.

In diesem Repository finden Sie Beispielskripte (scripts_), die Ihnen beim Schreiben Ihres eigenen Codes helfen können. Beiträge sind willkommen!

Danksagung

Zuallererst wäre PyREBox ohne QEMU_ und Volatility_ nicht möglich. Wir danken ihren Entwicklern und Maintainern für diese großartige Arbeit.

PyREBox ist von mehreren akademischen Projekten wie DECAF_ oder PANDA_ inspiriert. Tatsächlich sind viele der von PyREBox unterstützten Callbacks äquivalent zu denen in DECAF_, und die Konzepte hinter der Instrumentierung basieren auf diesen Arbeiten.

PyREBox profitiert von Code Dritter, der im Verzeichnis pyrebox/third_party zu finden ist. Für jedes Drittanbieterprojekt fügen wir einen Hinweis auf die ursprüngliche Lizenz, die aus dem Projekt übernommenen Original-Quellcodedateien sowie die geänderten Versionen der Quellcodedateien (falls zutreffend) bei, die von PyREBox verwendet werden.

Tool herunterladen