
Python-scriptbare Reverse-Engineering-Sandbox, ein Framework zur Instrumentierung und Inspektion virtueller Maschinen auf Basis von QEMU
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_).
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.
Ein Build-Skript wird bereitgestellt. Für spezifische Details zu Abhängigkeiten siehe BUILD_. Wir stellen auch ein Dockerfile bereit.
Die Dokumentation dieses Projekts wird auf readthedocs.io_ gehostet.
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:
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).