Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pyrebox — Sandbox de Engenharia Reversa programável em Python, um framework de instrumentação e inspeção de Máquinas Virtuais baseado no QEMU | Kitploit
Ferramentas/GitHubGitHub/cisco-talos/pyrebox
Análise Dinâmica (Sandboxing)Forensia de MemóriaEngenharia ReversaDepuradoresAnálise de MalwareForensia DigitalAnálise de BináriosAprendizado e EducaçãoArchived
GitHubcisco-talos/pyrebox

pyrebox

Sandbox de Engenharia Reversa programável em Python, um framework de instrumentação e inspeção de Máquinas Virtuais baseado no QEMU

1.7k2548há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
Site
Compartilhar

================ PROJETO ARQUIVADO

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_).

Novidades

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.

  • [5 de Dez, 2019] Versão beta do PyREBox3, pronta no branch python3migration. A ferramenta foi portada para Python3 e Volatility3. Os plugins ainda não foram portados.
  • [21 de Jun, 2019] Atualização do QEMU para a versão 4.0.0, com suporte a MTTCG (TCG multi-thread). Agradecimentos especiais a @richsurgenor por suas valiosas contribuições para esta atualização.
  • [17 de Jun, 2019] Mesclagem do branch dev (Malware monitor 2).
  • [17 de Jun, 2019] Automação de movimento do mouse.
  • [17 de Jun, 2019] Atualização do volatility.
  • [17 de Out, 2018] Adicionada função de API para obter hora do sistema de convidados Windows.
  • [17 de Out, 2018] Adicionado suporte para símbolos na classe BP (breakpoint).
  • [17 de Out, 2018] Adicionado cache de símbolos (arquivo host). Veja arquivos de configuração de exemplo (pyrebox.conf.WinXPSP3x86).
  • [17 de Out, 2018] Alterada a busca de símbolos para obter arquivos DLL do disco.
  • [10 de Out, 2018] Adicionado suporte experimental para buscar páginas de memória não mapeadas.
  • [10 de Out, 2018] Adicionada integração com The Sleuth Kit
  • [02 de Ago, 2018] Adicionados scripts de execução automática.
  • [26 de Jul, 2018] Enviados slides da apresentação do EuskalHack 2018.
  • [02 de Jul, 2018] Correções para suporte ao CentOS 7.
  • [25 de Jun, 2018] Adicionados scripts apresentados no EuskalHack 2018.
  • [31 de Mai, 2018] Atualizado para Qemu v2.12.0.
  • [29 de Mai, 2018] Adicionada a possibilidade de chamar funções de trigger (em C/C++) a partir de scripts Python.
  • [29 de Mai, 2018] Alterado o formato dos parâmetros de callback. Veja a documentação. O padrão ainda é o estilo antigo.
  • [28 de Abr, 2018] Criado um branch de desenvolvimento para novos recursos potencialmente instáveis no PyREBox.
  • [13 de Abr, 2018] Apresentado PyREBox no HITB Amsterdam (trilha CommSec).
  • [13 de Abr, 2018] Adicionados scripts de monitoramento de malware (mw_mon).
  • [08 de Mar, 2018] Triggers agora são chamados para todos os processos no sistema (não apenas processos monitorados). Veja a documentação
  • [08 de Mar, 2018] Alterados os parâmetros de callback de leitura/escrita de memória. Veja a documentação e exemplos.
  • [08 de Mar, 2018] Adicionados breakpoints de endereço de memória física leitura/escrita.
  • [08 de Mar, 2018] Adicionados callbacks de carregamento e remoção de módulos.
  • [02 de Nov, 2017] Adicionado agente convidado para Linux 32 e 64 bits.
  • [23 de Out, 2017] Adicionado agente convidado para Windows 32 e 64 bits.
  • [11 de Out, 2017] Adicionada análise de símbolos de módulos Linux.
  • [22 de Set, 2017] Adicionado suporte para recarregamento de módulos.
  • [20 de Set, 2017] Adicionado callback de função personalizada à classe BP.
  • [20 de Set, 2017] Atualizado para Qemu v2.10.0.
  • [31 de Ago, 2017] Suporte parcial para convidados Linux.

Instalação

Um script de build é fornecido. Para detalhes específicos sobre dependências, veja BUILD_. Também fornecemos um Dockerfile.

Documentação

A documentação deste projeto está hospedada em readthedocs.io_.

Bugs, dúvidas e suporte

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:

  • Sistema operacional usado para compilar e executar o PyREBox.
  • A versão específica do sistema operacional e o alvo de emulação que você está usando.
  • Comando de shell / script / tarefa que você estava tentando executar.
  • Qualquer informação sobre o erro, como mensagens de erro, rastreamento de pilha do Python (ou IPython) ou rastreamento de pilha do QEMU.
  • Qualquer outra informação relevante

Roadmap

  • Configuração de imagem de VM e console de gerenciamento.
  • Suporte para ARM, MIPS e outras arquiteturas.
  • Finalizar suporte para sistemas convidados GNU/Linux (veja issues).

Iniciando uma VM

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).

Objetivos deste projeto

  • Fornecer uma plataforma de emulação de sistema completo com uma interface simples para inspecionar o sistema convidado emulado.

    • Instrumentação detalhada de eventos do sistema.
    • Introspecção de Máquina Virtual (VMI) integrada, baseada em volatility. Nenhum agente ou driver precisa ser instalado no convidado.
    • Interface de shell baseada em IPython.
    • Motor de script baseado em Python, que permite integrar nos scripts qualquer uma das ferramentas de segurança baseadas nesta linguagem (um dos maiores ecossistemas).
  • Ter um design limpo, desacoplado do QEMU. Muitos projetos construídos sobre o QEMU não evoluem quando o QEMU é atualizado, perdendo novos recursos e otimizações, bem como atualizações de segurança. Para conseguir isso, o PyREBox é implementado como um módulo independente que pode ser compilado junto com o QEMU exigindo um conjunto mínimo de modificações.

  • Suporte para diferentes arquiteturas. Atualmente, o PyREBox suporta apenas Windows para arquiteturas x86 e x86-64 bits, mas seu design permite suportar outras arquiteturas como ARM, MIPS ou PowerPC, e outros sistemas operacionais também.

Shell IPython

Iniciar um shell PyREBox é tão fácil quanto digitar o comando sh no monitor do QEMU. Imediatamente iniciará um shell IPython. Este shell registra o histórico de comandos, bem como as variáveis definidas. Por exemplo, você pode salvar um valor e recuperá-lo posteriormente em um ponto diferente da execução, quando iniciar o shell novamente. PyREBox aproveita todos os recursos disponíveis no IPython, como autocompletar, histórico de comandos, edição multi-linha e geração automatizada de ajuda de comandos.

PyREBox permitirá que você depure o sistema (ou um processo) de uma forma bastante furtiva. Diferentemente dos depuradores tradicionais que permanecem no sistema sendo depurado (até mesmo modificando a memória do processo depurado para inserir breakpoints), o PyREBox permanece completamente fora do sistema inspecionado e não requer a instalação de nenhum driver ou componente no convidado.

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

PyREBox oferece um conjunto completo de comandos para inspecionar e modificar o estado da VM em execução. Basta digitar list_commands para obter uma lista completa. Você pode executar qualquer plugin do volatility apenas digitando vol e o comando volatility correspondente. Para uma lista completa dos plugins volatility disponíveis, você pode digitar list_vol_commands. Esta lista é gerada automaticamente, portanto, também mostrará qualquer plugin volatility que você instalar no caminho volatility/ do PyREBox.

Você também pode definir seus próprios comandos! É tão simples quanto declarar uma função em um script e carregá-la.

Se você precisar de algo mais expressivo do que um comando, pode escrever um trecho de Python utilizando a API. Para uma descrição detalhada da API, veja Documentação_ ou digite help(api) no shell.

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

Scripts

PyREBox permite carregar dinamicamente scripts que podem registrar funções de callback que são chamadas quando certos eventos ocorrem, como instruções executadas, memória lida/escrita, processos criados/destruídos e assim por diante.

Considerando que o PyREBox é integrado ao Volatility, ele permitirá que você aproveite todos os plugins do volatility para forense de memória em seus scripts Python. Muitas das ferramentas de engenharia reversa mais famosas são implementadas em Python ou pelo menos possuem bindings Python. Nossa abordagem permite integrar qualquer uma dessas ferramentas em um script.

Finalmente, dado que os callbacks Python podem introduzir uma penalidade de desempenho em eventos frequentes, como instruções executadas, também é possível criar triggers. Triggers são plug-ins em código nativo (desenvolvidos em C/C++) que podem ser inseridos dinamicamente em tempo de execução em qualquer evento, pouco antes do callback Python ser executado. Isso permite limitar o número de eventos que atingem o código Python, bem como pré-calcular valores em código nativo.

Neste repositório você encontrará scripts_ de exemplo que podem ajudá-lo a escrever seu próprio código. Contribuições são bem-vindas!

Agradecimentos

Antes de tudo, PyREBox não seria possível sem o QEMU_ e o Volatility_. Agradecemos aos seus desenvolvedores e mantenedores por um trabalho tão excelente.

PyREBox é inspirado por vários projetos acadêmicos, como DECAF_ ou PANDA_. Na verdade, muitos dos callbacks suportados pelo PyREBox são equivalentes aos encontrados no DECAF_, e os conceitos por trás da instrumentação são baseados nestes trabalhos.

PyREBox se beneficia de código de terceiros, que pode ser encontrado no diretório pyrebox/third_party. Para cada projeto de terceiros, incluímos uma indicação de sua licença original, os arquivos de código-fonte originais retirados do projeto, bem como as versões modificadas dos arquivos de código-fonte (se aplicável), usados pelo PyREBox.

Baixar ferramenta