
Sandbox de ingeniería inversa programable en Python, un framework de instrumentación e inspección de máquinas virtuales basado en QEMU
ESTE PROYECTO HA SIDO ARCHIVADO Y SU COLA DE INCIDENCIAS ESTÁ BLOQUEADA. EL PROYECTO SE MANTENDRÁ PÚBLICO SOLO CON FINES DE REFERENCIA.
.. 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 es un sandbox de ingeniería inversa programable en Python. Está basado en QEMU, y su objetivo es ayudar en la ingeniería inversa proporcionando capacidades de análisis dinámico y depuración desde una perspectiva diferente. PyREBox permite inspeccionar una máquina virtual QEMU en ejecución, modificar su memoria o registros, e instrumentar su ejecución mediante la creación de scripts simples en Python para automatizar cualquier tipo de análisis. QEMU (cuando funciona como emulador de sistema completo) emula un sistema completo (CPU, memoria, dispositivos...). Mediante técnicas VMI, no requiere realizar ninguna modificación en el sistema operativo invitado, ya que obtiene información de su memoria de forma transparente en tiempo de ejecución.
Varios proyectos académicos como DECAF_, PANDA_, S2E_ o AVATAR_ han aprovechado anteriormente la instrumentación basada en QEMU para superar tareas de ingeniería inversa. Estos proyectos permiten escribir plugins en C/C++ e implementan varias características avanzadas como análisis de flujo de datos dinámico, ejecución simbólica, e incluso grabación y reproducción de trazas de ejecución. Con PyREBox, buscamos aplicar esta tecnología centrándonos en mantener el diseño simple y en la usabilidad del sistema para analistas de amenazas.
¡PyREBox ganó el Concurso de Plugins de Volatility (Contest_) en 2017!
Esta herramienta fue presentada en HITB Amsterdam 2018. Puede ver las diapositivas (slides_) o ver la presentación_ (presentation). También fue presentada en la tercera edición del Congreso de Seguridad EuskalHack (diapositivas disponibles_).
Recuerde extraer la última versión de PyREBox para disfrutar de sus últimas características. PyREBox está en desarrollo activo y ¡nuevas características interesantes están por venir! La rama master siempre debe contener una versión estable, mientras que las ramas dev contienen las últimas características en desarrollo. La siguiente lista de anuncios se refiere a la rama master y la fecha en que los cambios de desarrollo se fusionaron en master.
Se proporciona un script de compilación. Para detalles específicos sobre dependencias, consulte BUILD_. También proporcionamos un Dockerfile.
La documentación de este proyecto está alojada en readthedocs.io_.
Si cree que ha encontrado un error, por favor repórtelo aquí_.
Antes de crear una nueva incidencia, revise las preguntas_ abiertas por otros usuarios anteriormente.
Este programa se proporciona "TAL CUAL", y no se garantiza soporte. Dicho esto, para ayudarnos a resolver sus problemas, incluya tanta información como sea posible para reproducir el error:
PyREBox está basado en QEMU, por lo que para iniciar una VM con PyREBox, debe ejecutarlo exactamente como si estuviera arrancando una VM de QEMU. Se proporcionan un par de scripts de ejemplo: start_i386.sh, start_x86_64.sh, puede usarlos como ejemplo.
La única opción de monitor de QEMU compatible actualmente es stdio (-monitor stdio).