
Sandbox de rétro-ingénierie scriptable en Python, un framework d'instrumentation et d'inspection de machines virtuelles basé sur QEMU
CE PROJET A ÉTÉ ARCHIVÉ ET SA FILE D'ATTENTE DE PROBLÈMES EST VERROUILLÉE. LE PROJET RESTERA PUBLIC UNIQUEMENT À TITRE DE RÉFÉRENCE.
.. 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 est un bac à sable de rétro-ingénierie scriptable en Python. Il est basé sur QEMU et vise à faciliter la rétro-ingénierie en offrant des capacités d'analyse dynamique et de débogage d'un point de vue différent. PyREBox permet d'inspecter une machine virtuelle QEMU en cours d'exécution, de modifier sa mémoire ou ses registres, et d'instrumenter son exécution en créant des scripts simples en Python pour automatiser tout type d'analyse. QEMU (lorsqu'il fonctionne en tant qu'émulateur de système complet) émule un système entier (CPU, mémoire, périphériques...). En utilisant des techniques VMI, il ne nécessite aucune modification du système d'exploitation invité, car il récupère de manière transparente les informations de sa mémoire en temps réel.
Plusieurs projets académiques tels que DECAF_, PANDA_, S2E_ ou AVATAR_ ont déjà exploité l'instrumentation basée sur QEMU pour résoudre des tâches de rétro-ingénierie. Ces projets permettent d'écrire des plugins en C/C++ et implémentent plusieurs fonctionnalités avancées telles que l'analyse dynamique de flux (taint), l'exécution symbolique, ou même l'enregistrement et la relecture de traces d'exécution. Avec PyREBox, nous visons à appliquer cette technologie en nous concentrant sur la simplicité de conception et sur la convivialité du système pour les analystes de menaces.
PyREBox a remporté le Volatility Plugin Contest_ en 2017 !
Cet outil a été présenté à la conférence HITB Amsterdam 2018. Vous pouvez voir les slides_ ou regarder la présentation_. Il a également été présenté à la troisième édition du Congrès de Sécurité EuskalHack (slides disponibles_).
N'oubliez pas de tirer la dernière version de PyREBox pour profiter de ses dernières fonctionnalités. PyREBox est en développement actif et de nouvelles fonctionnalités intéressantes sont encore à venir ! La branche master devrait toujours contenir une version stable, tandis que les branches de développement contiennent les dernières fonctionnalités en cours de développement. La liste d'annonces suivante fait référence à la branche master et à la date à laquelle les modifications de développement ont été fusionnées dans master.
Un script de construction est fourni. Pour plus de détails sur les dépendances, veuillez consulter BUILD_. Nous fournissons également un Dockerfile.
La documentation de ce projet est hébergée sur readthedocs.io_.
Si vous pensez avoir trouvé un bug, veuillez le signaler ici_.
Avant de créer un nouveau ticket, veuillez consulter les questions_ ouvertes par d'autres utilisateurs.
Ce programme est fourni "EN L'ÉTAT", et aucun support n'est garanti. Cela dit, pour nous aider à résoudre vos problèmes, veuillez inclure autant d'informations que possible pour reproduire le bug :
PyREBox est basé sur QEMU. Pour démarrer une VM avec PyREBox, vous devez l'exécuter exactement comme si vous démarriez une VM QEMU. Deux scripts d'exemple sont fournis : start_i386.sh, start_x86_64.sh, vous pouvez les utiliser comme exemple.
La seule option du moniteur QEMU actuellement supportée est stdio (-monitor stdio).