PE Tree
PE Tree es un módulo de Python para visualizar archivos Portable Executable (PE) en una vista de árbol usando pefile y PyQt5.
También se puede usar con IDA Pro, Ghidra, Volatility, Rekall y minidump para ver y volcar archivos PE en memoria, así como realizar reconstrucción de tablas de importación.
Tabla de contenidos
- Características
- Aplicación
- IDAPython
- Rekall
- Volatility
- Ghidra
- Minidump
- Configuración
- Solución de problemas
- Contribuir
- Licencia
Características
- Aplicación independiente con complementos para:
- IDA Pro
- Ghidra
- Volatility
- Rekall
- Minidumps
- Carving
- Compatible con Windows, Linux y Mac
- Análisis de archivos PE e imágenes de memoria desde:
- Sistema de archivos
- Archivos ZIP (incluyendo protegidos con contraseña)
- Volcados de memoria de Windows (raw, EWF, vmem, etc.)
- Memoria de Windows en vivo (usando rekall)
- Minidump de Windows
- Base de datos de IDA Pro
- Base de datos de Ghidra
- Carving de archivos binarios
- Mapa PE arcoíris:
- Proporciona una vista general de alto nivel de las estructuras PE, tamaño y ubicación del archivo
- Permite una rápida visualización general y comparación de muestras PE
- Muestra los siguientes encabezados PE en una vista de árbol:
- Encabezado MZ
- Stub DOS
- Encabezados Rich
- Encabezados NT/Archivo/Opcional
- Directorios de datos
- Secciones
- Importaciones
- Exportaciones
- Información de depuración
- Configuración de carga
- TLS
- Recursos
- Información de versión
- Certificados
- Superposición (Overlay)
- Extraer y guardar datos desde:
- Stub DOS
- Secciones
- Recursos
- Certificados
- Superposición
- Exportar a CyberChef para manipulación adicional
- Realizar búsquedas en VirusTotal de:
- Hashes de archivo
- Ruta PDB
- Marcas de tiempo
- Hash/nombre de sección
- Hash/nombre de importación
- Nombre de exportación
- Hash de recurso
- Serial de certificado
- Volcar imágenes PE cargadas desde memoria:
- Corregir punteros y tamaños de secciones
- Corregir encabezados PE:
- Eliminar punteros de directorio de datos innecesarios
- Recalcular suma de comprobación PE
- Actualizar punto de entrada
- Reconstruir tablas de direcciones de importación y directorios de importación (IAT/IDT) usando varios métodos:
- Usar IAT/IDT existentes
- Reconstruir IDT a partir de IAT existente
- Reconstruir IAT e IDT a partir de desensamblado (usando IDA Pro, Ghidra o capstone)
Aplicación
La aplicación independiente PE Tree encuentra ejecutables portables en archivos, carpetas y archivos ZIP.

Requisitos
Características
- Escanear archivos y carpetas en busca de archivos PE
- Extraer archivos PE de archivos ZIP (incluyendo protegidos con contraseña con infected)
- Extraer (carve) archivos PE de archivos binarios
- Doble clic en VA/RVA para desensamblar con capstone
- Volcado hexadecimal de datos
Instalación
Usando pip (recomendado)
Instale directamente desde GitHub usando un entorno virtual limpio y 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 desarrolladores
Clone el repositorio de Git y prepare el entorno para desarrollo:
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
Ejecute PE Tree y escanee en busca de ejecutables portables en archivos, carpetas y archivos 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
Ejecute PE Tree e intente extraer (carve) archivos ejecutables portables de un archivo binario:
$ 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 oscuro
El modo oscuro se puede activar instalando QDarkStyle:
$ pip install qdarkstyle
IDAPython
El complemento IDAPython de PE Tree encuentra ejecutables portables en bases de datos de IDA.

Requisitos
- IDA Pro 7.0+ con Python 2.7
- IDA Pro 7.4+ con Python 2.7 o 3.5+
Características
- Navegación sencilla de las estructuras de archivos PE
- Doble clic en una dirección de memoria en PE Tree para ver en IDA-view o hex-view
- Buscar en una IDB imágenes PE en memoria y;
- Reconstruir importaciones (IAT + IDT)
- Volcar archivos PE reconstruidos
- Comentar automáticamente las estructuras de archivos PE en la IDB
- Etiquetar automáticamente los desplazamientos de IAT en la IDB
Instalación
Para instalar y ejecutar como complemento de IDAPython, puede usar setuptools o instalar manualmente.