
Sandbox de Engenharia Reversa programável em Python, um framework de instrumentação e inspeção de Máquinas Virtuais baseado no QEMU
ESTE PROJETO FOI ARQUIVADO E SUA FILA DE ISSUES ESTÁ BLOQUEADA. O PROJETO SERÁ MANTIDO PÚBLICO APENAS PARA FINS DE REFERÊNCIA.
.. 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 é uma sandbox de engenharia reversa programável em Python. É baseada no QEMU, e seu objetivo é auxiliar a engenharia reversa fornecendo capacidades de análise dinâmica e depuração a partir de uma perspectiva diferente. PyREBox permite inspecionar uma VM QEMU em execução, modificar sua memória ou registradores e instrumentar sua execução, criando scripts simples em Python para automatizar qualquer tipo de análise. O QEMU (quando funciona como emulador de sistema completo) emula um sistema completo (CPU, memória, dispositivos...). Ao usar técnicas de VMI, ele não requer nenhuma modificação no sistema operacional convidado, pois recupera informações de sua memória de forma transparente em tempo de execução.
Vários projetos acadêmicos como DECAF_, PANDA_, S2E_ ou AVATAR_ já utilizaram instrumentação baseada em QEMU para superar tarefas de engenharia reversa. Esses projetos permitem escrever plugins em C/C++ e implementam vários recursos avançados, como análise dinâmica de taint, execução simbólica ou até mesmo gravação e reprodução de traços de execução. Com o PyREBox, pretendemos aplicar essa tecnologia focando em manter o design simples e na usabilidade do sistema para analistas de ameaças.
PyREBox venceu o Volatility Plugin Contest_ em 2017!
Esta ferramenta foi apresentada no HITB Amsterdam 2018. Você pode ver os slides_ ou assistir à apresentação_. Também foi apresentada na terceira edição do EuskalHack Security Congress (slides disponíveis_).
Lembre-se de puxar a versão mais recente do PyREBox para aproveitar seus novos recursos. PyREBox está em desenvolvimento ativo e novos recursos interessantes ainda estão por vir! O branch master deve sempre conter uma versão estável, enquanto os branches dev contêm os recursos mais recentes e em andamento. A lista de anúncios a seguir refere-se ao branch master e à data em que as alterações de desenvolvimento foram mescladas no master.
Um script de build é fornecido. Para detalhes específicos sobre dependências, veja BUILD_. Também fornecemos um Dockerfile.
A documentação deste projeto está hospedada em readthedocs.io_.
Se você acha que encontrou um bug, por favor reporte-o aqui_.
Antes de criar uma nova issue, por favor, veja as questões_ abertas por outros usuários anteriormente.
Este programa é fornecido "COMO ESTÁ", e nenhum suporte é garantido. Dito isso, para nos ajudar a resolver seus problemas, inclua o máximo de informações possível para reproduzir o bug:
PyREBox é baseado no QEMU, então para iniciar uma VM dentro do PyREBox, você precisa executá-lo exatamente como se estivesse inicializando uma VM QEMU. Alguns scripts de exemplo são fornecidos: start_i386.sh, start_x86_64.sh, você pode usá-los como exemplo.
A única opção de monitor QEMU suportada atualmente é stdio (-monitor stdio).