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
pe_tree — Módulo Python para visualizar arquivos Portable Executable (PE) em uma visualização em árvore usando pefile e PyQt5. Também pode ser usado com IDA Pro e Rekall para despejar arquivos PE em memória e reconstruir importações. | Kitploit
Ferramentas/GitHubGitHub/blackberry/pe_tree
Forensia de MemóriaAnálise de VulnerabilidadesEngenharia ReversaDepuradoresAnálise ForenseAnálise de MalwareForensia DigitalAnálise de BináriosArchived
GitHubblackberry/pe_tree

pe_tree

Módulo Python para visualizar arquivos Portable Executable (PE) em uma visualização em árvore usando pefile e PyQt5. Também pode ser usado com IDA Pro e Rekall para despejar arquivos PE em memória e reconstruir importações.

1.3k173há 4 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 →
Compartilhar
Ver Repositório

PE Tree

O PE Tree é um módulo Python para visualizar arquivos Portable Executable (PE) em uma exibição em árvore usando pefile e PyQt5. Também pode ser usado com IDA Pro, Ghidra, Volatility, Rekall e minidump para visualizar e despejar arquivos PE na memória, bem como realizar a reconstrução da tabela de importação.

Sumário

  1. Funcionalidades
  2. Aplicação
    • Requisitos
    • Funcionalidades
    • Instalação
      • Windows
      • Mac/Linux
      • Para desenvolvedores
    • Uso
    • Modo escuro
  3. IDAPython
    • Requisitos
    • Funcionalidades
    • Instalação
      • Usando setuptools
      • Instalação manual
      • Para desenvolvedores
    • Uso
    • Exemplo
      • Despejando arquivos PE na memória
  4. Rekall
    • Requisitos
    • Funcionalidades
    • Instalação
    • Uso
  5. Volatility
    • Requisitos
    • Funcionalidades
    • Instalação
    • Uso
  6. Ghidra
    • Requisitos
    • Funcionalidades
    • Instalação
    • Uso
  7. Minidump
    • Requisitos
    • Funcionalidades
    • Instalação
    • Uso
  8. Configuração
    • Visão geral
    • Opções
    • Localização
    • Compartilhamento de dados com terceiros
  9. Solução de problemas
  10. Contribuindo
    • Documentação para desenvolvedores
  11. Licença

Funcionalidades

  • Aplicativo independente com plugins para:
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidumps
    • Carving
  • Suporta Windows, Linux e Mac
  • Análise de arquivos PE e imagens de memória a partir de:
    • Sistema de arquivos
    • Arquivos ZIP (incluindo protegidos por senha)
    • Dumps de memória Windows (raw, EWF, vmem etc.)
    • Memória Windows ativa (usando rekall)
    • Minidump do Windows
    • Banco de dados do IDA Pro
    • Banco de dados do Ghidra
    • Carving de arquivos binários
  • Mapa PE arco-íris:
    • Fornece uma visão geral de alto nível das estruturas PE, tamanho e localização do arquivo
    • Permite uma rápida visão visual e comparação de amostras PE
  • Exibe os seguintes cabeçalhos PE em uma exibição em árvore:
    • Cabeçalho MZ
    • Stub DOS
    • Cabeçalhos Rich
    • Cabeçalhos NT/File/Optional
    • Diretórios de dados
    • Seções
    • Importações
    • Exportações
    • Informações de depuração
    • Configuração de carga
    • TLS
    • Recursos
    • Informações de versão
    • Certificados
    • Overlay
  • Extrair e salvar dados de:
    • Stub DOS
    • Seções
    • Recursos
    • Certificados
    • Overlay
    • Exportar para CyberChef para manipulação adicional
  • Realizar buscas no VirusTotal de:
    • Hashes de arquivos
    • Caminho PDB
    • Carimbos de data/hora
    • Hash/nome da seção
    • Hash/nome da importação
    • Nome da exportação
    • Hash do recurso
    • Serial do certificado
  • Despejar imagens PE carregadas da memória:
    • Corrigir ponteiros e tamanhos das seções
    • Corrigir cabeçalhos PE:
      • Remover ponteiros de diretórios de dados desnecessários
      • Recalcular checksum do PE
      • Atualizar ponto de entrada
    • Reconstruir a tabela de endereços de importação e a tabela de diretórios de importação (IAT/IDT) usando vários métodos:
      1. Usar IAT/IDT existente
      2. Reconstruir IDT a partir do IAT existente
      3. Reconstruir IAT e IDT a partir da desmontagem (usando IDA Pro, Ghidra ou capstone)

Aplicação

O aplicativo independente PE Tree encontra executáveis portáteis em arquivos, pastas e arquivos ZIP.

Aplicativo independente PE Tree

Requisitos

  • Python 3.5+

Funcionalidades

  • Escanear arquivos e pastas em busca de arquivos PE
  • Extrair arquivos PE de arquivos ZIP (incluindo protegidos por senha com infected)
  • Escavar arquivos PE a partir de arquivos binários
  • Duplo clique em VA/RVA para desmontar com capstone
  • Despejo hexadecimal de dados

Instalação

Usando pip (recomendado)

Instale diretamente do GitHub usando um ambiente virtual novo e pip:

Windows
root@kitploit:~
> virtualenv env
> env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/blackberry/pe_tree.git
Mac/Linux
root@kitploit:~
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install --upgrade pip
$ pip install git+https://github.com/blackberry/pe_tree.git

Para desenvolvedores

Clone o repositório do Git e configure para desenvolvimento:

Windows
root@kitploit:~
> git clone https://github.com/blackberry/pe_tree.git
> cd pe_tree
> virtualenv env
> env\Scripts\activate
> pip install -e .
Mac/Linux
root@kitploit:~
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install -e .

Uso

Execute o PE Tree e escaneie arquivos executáveis portáteis em arquivos, pastas e arquivos ZIP:

root@kitploit:~
$ pe-tree -h
usage: pe-tree [-h] [filenames [filenames ...]]

PE-Tree

positional arguments:
  filenames   Path(s) to file/folder/zip

optional arguments:
  -h, --help  show this help message and exit

Execute o PE Tree e tente escavar arquivos executáveis portáteis a partir de um arquivo binário:

root@kitploit:~
$ pe-tree-carve -h
usage: pe-tree-carve [-h] filename

PE-Tree (Carve)

positional arguments:
  filename    Path to file to carve

optional arguments:
  -h, --help  show this help message and exit

Modo escuro

O Modo escuro pode ser ativado instalando o QDarkStyle:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

O plugin IDAPython do PE Tree encontra executáveis portáteis em bancos de dados do IDA.

Plugin IDAPython do PE Tree

Requisitos

  • IDA Pro 7.0+ com Python 2.7
  • IDA Pro 7.4+ com Python 2.7 ou 3.5+

Funcionalidades

  • Navegação fácil das estruturas do arquivo PE
  • Duplo clique em um endereço de memória no PE Tree para visualizar na IDA-view ou hex-view
  • Pesquisar um IDB por imagens PE na memória e;
    • Reconstruir importações (IAT + IDT)
    • Despejar arquivos PE reconstruídos
    • Comentar automaticamente as estruturas do arquivo PE no IDB
    • Rotular automaticamente os offsets IAT no IDB

Instalação

Para instalar e executar como um plugin IDAPython, você pode usar setuptools ou instalar manualmente.

Usando setuptools

  1. Baixe o pe_tree e instale para o interpretador Python global usado pelo IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. Copie pe_tree_ida.py para sua pasta de plugins do IDA

Instalação manual

  1. Baixe o pe_tree e instale os requisitos para o interpretador Python global usado pelo IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. Copie pe_tree_ida.py e o conteúdo de ./pe_tree/ para sua pasta de plugins do IDA

Para desenvolvedores

Para dispensar a instalação como plugin e simplesmente executar como script no IDA, primeiro instale os requisitos do pacote pe_tree para a instalação Python global:

root@kitploit:~
$ pip install -r requirements.txt

Em seguida, execute pe_tree_ida.py no IDA:

File -> Script file... -> pe_tree_ida.py -> Open

Pasta de plugins do IDA

SOPasta de plugins
Windows%ProgramFiles%\IDA Pro 7.X\plugins
Linux/opt/ida-7.X/plugins
Mac~/.idapro/plugins

Uso

  1. Inicie o IDA Pro e desmonte um arquivo PE (sempre selecione Manual Load e Load Resources para melhores resultados!)

  2. Carregue o plugin PE Tree:

    Edit -> Plugins -> PE Tree

Exemplo

Despejando arquivos PE na memória

Abaixo estão os passos básicos para despejar um arquivo PE empacotado (por exemplo MPRESS ou UPX) e reconstruir importações (assumindo que a base da imagem/ponto de entrada seja bastante padrão):

  1. Inicie o IDA Pro e desmonte um arquivo PE empacotado com MPRESS ou UPX (selecione Manual Load e Load Resources)

  2. Selecione um depurador (Windows ou Bochs) e execute até o OEP (geralmente 0x00401000, mas nem sempre!)

  3. Neste ponto, você poderia tirar um snapshot de memória (salvando todos os segmentos) e salvar o IDB para uso posterior

  4. Certifique-se de que o IDA encontrou todo o código:

    Options -> General -> Analysis -> Reanalyze program

  5. Abra o plugin IDAPython do PE Tree, clique com o botão direito no painel direito e selecione:

    Add PE -> Search IDB

    Isso irá escanear o IDB em busca de cabeçalhos MZ/PE e exibir quaisquer módulos encontrados.

  6. Clique com o botão direito em HEADER-0x00400000 (ou no nome apropriado do módulo) e selecione Dump...

  7. Especifique o AddressOfEntryPoint (tipicamente 0x1000, mas novamente, nem sempre!)

  8. Certifique-se de que Rebuild IDT/IAT está selecionado

  9. Despeje!

Um novo executável será criado usando os dados das seções desempacotadas obtidos da memória/IDB, enquanto uma nova seção chamada .pe_tree contendo a IAT reconstruída, a tabela de nomes de dica e a IDT será anexada ao arquivo PE (muito parecido com uma seção .idata). Se o segmento de memória do ponto de entrada foi marcado como gravável durante a execução (via VirtualProtect, por exemplo), então as características da seção do ponto de entrada também serão marcadas como graváveis. Finalmente, os diretórios de dados BASERELOC, BOUND_IMPORT e SECURITY são marcados como nulos, e o checksum do OPTIONAL_HEADER é recalculado (se especificado).

Usando a abordagem acima, é possível despejar muitos arquivos PE na memória que foram desempacotados, injetados, carregados reflexivamente ou ocos, etc.

Rekall

O plugin Rekall do PE Tree encontra executáveis portáteis em dumps de memória do Windows.

Plugin Rekall do PE Tree

Requisitos

  • Python 3+

Funcionalidades

  • Opera contra um dump de memória do Windows ou um sistema ativo
  • Visualizar, despejar e reconstruir módulos PE de;
    • Processos ativos e DLLs
    • Drivers em modo kernel carregados

Instalação

  1. Instale o Rekall do GitHub.
  2. Instale o aplicativo independente PE Tree (veja Instalação) sob o mesmo ambiente virtual.

Uso

Execute o Rekall e visualize processos ativos, DLLs e drivers em um sistema ativo:

root@kitploit:~
$ rekall --live Memory
[1] Live (Memory) 00:00:00> run -i pe_tree_rekall.py

Alternativamente, execute Rekall/PE Tree contra um dump de memória existente:

root@kitploit:~
$rekall -f memory.vmem
[1] memory.vmem 00:00:00> run -i pe_tree_rekall.py

Volatility

O plugin Volatility do PE Tree encontra executáveis portáteis em dumps de memória do Windows.

Plugin Volatility do PE Tree

Requisitos

  • Python 3.5+

Funcionalidades

  • Opera contra um dump de memória do Windows
  • Visualizar, despejar e reconstruir módulos PE de;
    • Processos ativos e DLLs
    • Drivers em modo kernel carregados

Instalação

  1. Instale o Volatility3 do GitHub.
  2. Instale o aplicativo independente PE Tree (veja Instalação) sob o mesmo ambiente virtual.

Uso

root@kitploit:~
$ pe-tree-vol -h
usage: pe-tree-vol [-h] filename

PE-Tree (Volatility)

positional arguments:
  filename    Path to memory dump

optional arguments:
  -h, --help  show this help message and exit

Ghidra

O plugin Ghidra do PE Tree encontra executáveis portáteis em bancos de dados do Ghidra.

Plugin Ghidra do PE Tree

Requisitos

  • Python 3.5+
  • Ghidra Bridge

Funcionalidades

  • Navegação fácil das estruturas do arquivo PE
  • Duplo clique em um endereço de memória no PE Tree para visualizar na desmontagem/hex-view do Ghidra
  • Reconstruir importações (IAT + IDT)
  • Despejar arquivos PE reconstruídos

Instalação

  1. Instale o PE Tree (veja Instalação)
  2. Instale o Ghidra Bridge

Uso

  1. Inicie o servidor Ghidra Bridge
  2. Execute o plugin Ghidra do PE Tree
root@kitploit:~
$ pe-tree-ghidra -h
usage: pe-tree-ghidra [-h] [--server SERVER] [--port PORT]

PE-Tree (Ghidra)

optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Ghidra bridge server IP (default: 127.0.0.1)
  --port PORT      Ghidra bridge server port (default: 4768)

Minidump

O plugin Minidump do PE Tree encontra executáveis portáteis em Minidumps do Windows.

Plugin Minidump do PE Tree

Requisitos

  • Python 3.6+
  • minidump

Funcionalidades

  • Visualizar, despejar e reconstruir módulos PE a partir de um arquivo Minidump do Windows (.dmp)

Instalação

  1. Instale o PE Tree (veja Instalação)
  2. Instale o minidump (pip install minidump)

Uso

root@kitploit:~
$ pe-tree-minidump -h
usage: pe-tree-minidump [-h] filename

PE-Tree (Minidump)

positional arguments:
  filename    Path to .dmp file

optional arguments:
  -h, --help  show this help message and exit

Configuração

Visão geral

A configuração é armazenada em um arquivo INI e tem como padrão os seguintes valores:

root@kitploit:~
[config]
debug = False
fonts = Consolas,Monospace,Courier
passwords = ,infected
virustotal_url = https://www.virustotal.com/gui/search
cyberchef_url = https://gchq.github.io/CyberChef

Opções

Localização

Compartilhamento de dados com terceiros

As seguintes informações serão compartilhadas com aplicações web de terceiros (dependendo da configuração) sob as seguintes condições:

VirusTotal

Se a URL do VirusTotal estiver especificada na configuração, metadados como hashes de arquivos, carimbos de data/hora, etc., serão enviados ao VirusTotal para processamento quando o usuário clicar em links destacados ou selecionar "Pesquisar no VirusTotal" no menu de contexto com clique direito.

CyberChef

Se a URL do CyberChef estiver presente na configuração, quaisquer dados de arquivo serão codificados em base64 e enviados ao CyberChef para processamento quando o usuário selecionar "CyberChef" no menu de contexto com clique direito.

Solução de problemas

AttributeError: module 'pip' has no attribute 'main'

ou

PyQt5 falha ao instalar no Linux

Tente atualizar o pip para a versão 20.0+:

root@kitploit:~
$ pip install --upgrade pip

ModuleNotFoundError: No module named 'PyQt5.sip'

Tente desinstalar e reinstalar o PyQt5 da seguinte forma:

root@kitploit:~
pip uninstall PyQt5
pip uninstall PyQt5-sip
pip install PyQt5 PyQt5-sip

Importações ausentes após o despejo

Certifique-se de que o IDA encontrou e desmontou todo o código:

Options -> General -> Analysis -> Reanalyze program

Depois que isso for concluído, tente despejar/reconstruir as importações novamente.

Contribuindo

Sinta-se à vontade para contribuir! Issues e pull requests são muito bem-vindos.

Documentação para desenvolvedores

Para construir a documentação a partir do código-fonte usando Sphinx:

root@kitploit:~
$ pip install sphinx
$ sphinx-apidoc -o ./doc/source/ .
$ sphinx-build -b html ./doc/source ./doc/build -E

Para visualizar a documentação, abra ./doc/build/index.html em um navegador web.

Autores

Tom Bonner - tombonner - @thomas_bonner

Licença

O PE Tree é distribuído sob a Licença Apache. Consulte LICENSE para mais informações.

Baixar ferramenta
SeçãoOpçãoTipoDescrição
configdebugbooleanImprimir pefile.dump() na saída
configfontsstringLista separada por vírgulas de nomes de fontes para UI
configpasswordsstringLista separada por vírgulas de senhas de arquivos ZIP
configvirustotal_urlstringURL de busca do VirusTotal
configcyberchef_urlstringURL do CyberChef
TipoSOCaminho
AplicaçãoWindows%TEMP%\pe_tree.ini
AplicaçãoLinux/Mac/tmp/pe_tree.ini
IDAPythonWindows%APPDATA%\HexRays\IDA Pro\pe_tree.ini
IDAPythonLinux/Mac~/.idapro/pe_tree.ini
RekallWindows%TEMP%\pe_tree_rekall.ini
RekallLinux/Mac/tmp/pe_tree_rekall.ini
VolatilityWindows%TEMP%\pe_tree_volatility.ini
VolatilityLinux/Mac/tmp/pe_tree_volatility.ini
GhidraWindows%TEMP%\pe_tree_ghidra.ini
GhidraLinux/Mac/tmp/pe_tree_ghidra.ini
MinidumpWindows%TEMP%\pe_tree_minidump.ini
MinidumpLinux/Mac/tmp/pe_tree_minidump.ini
CarveWindows%TEMP%\pe_tree_carve.ini
CarveLinux/Mac/tmp/pe_tree_carve.ini