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
- Funcionalidades
- Aplicação
- IDAPython
- Rekall
- Volatility
- Ghidra
- Minidump
- Configuração
- Solução de problemas
- Contribuindo
- 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:
- Usar IAT/IDT existente
- Reconstruir IDT a partir do IAT existente
- 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.

Requisitos
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
> virtualenv env
> env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/blackberry/pe_tree.git
Mac/Linux
$ 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
> git clone https://github.com/blackberry/pe_tree.git
> cd pe_tree
> virtualenv env
> env\Scripts\activate
> pip install -e .
Mac/Linux
$ 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:
$ 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:
$ 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:
$ pip install qdarkstyle
IDAPython
O plugin IDAPython do PE Tree encontra executáveis portáteis em bancos de dados do IDA.

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.