Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pe_tree — Módulo de Python para ver archivos Portable Executable (PE) en una vista de árbol usando pefile y PyQt5. También puede usarse con IDA Pro y Rekall para volcar archivos PE en memoria y reconstruir importaciones. | Kitploit
Herramientas/GitHubGitHub/blackberry/pe_tree
Forensia de MemoriaAnálisis de VulnerabilidadesIngeniería InversaDepuradoresAnálisis ForenseAnálisis de MalwareForensia DigitalAnálisis de BinariosArchived
GitHubblackberry/pe_tree

pe_tree

Módulo de Python para ver archivos Portable Executable (PE) en una vista de árbol usando pefile y PyQt5. También puede usarse con IDA Pro y Rekall para volcar archivos PE en memoria y reconstruir importaciones.

1.3k173hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

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

  1. Características
  2. Aplicación
    • Requisitos
    • Características
    • Instalación
      • Windows
      • Mac/Linux
      • Para desarrolladores
    • Uso
    • Modo oscuro
  3. IDAPython
    • Requisitos
    • Características
    • Instalación
      • Usando setuptools
      • Instalar manualmente
      • Para desarrolladores
    • Uso
    • Ejemplo
      • Volcado de archivos PE en memoria
  4. Rekall
    • Requisitos
    • Características
    • Instalación
    • Uso
  5. Volatility
    • Requisitos
    • Características
    • Instalación
    • Uso
  6. Ghidra
    • Requisitos
    • Características
    • Instalación
    • Uso
  7. Minidump
    • Requisitos
    • Características
    • Instalación
    • Uso
  8. Configuración
    • Descripción general
    • Opciones
    • Ubicación
    • Intercambio de datos con terceros
  9. Solución de problemas
  10. Contribuir
    • Documentación para desarrolladores
  11. 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:
      1. Usar IAT/IDT existentes
      2. Reconstruir IDT a partir de IAT existente
      3. 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.

Aplicación independiente PE Tree

Requisitos

  • Python 3.5+

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
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 desarrolladores

Clone el repositorio de Git y prepare el entorno para desarrollo:

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

Ejecute PE Tree y escanee en busca de ejecutables portables en archivos, carpetas y archivos 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

Ejecute PE Tree e intente extraer (carve) archivos ejecutables portables de un archivo binario:

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 oscuro

El modo oscuro se puede activar instalando QDarkStyle:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

El complemento IDAPython de PE Tree encuentra ejecutables portables en bases de datos de IDA.

Complemento IDAPython de PE Tree

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.

Usando setuptools

  1. Descargue pe_tree e instálelo para el intérprete de Python global utilizado por 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 a su carpeta de complementos de IDA

Instalar manualmente

  1. Descargue pe_tree e instale los requisitos para el intérprete de Python global utilizado por 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 y el contenido de ./pe_tree/ a su carpeta de complementos de IDA

Para desarrolladores

Para evitar instalar como complemento y simplemente ejecutar como script en IDA, instale primero los requisitos del paquete pe_tree para la instalación de Python global:

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

Luego ejecute pe_tree_ida.py en IDA:

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

Carpeta de complementos de IDA

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

Uso

  1. Inicie IDA Pro y desensamble un archivo PE (¡seleccione siempre Manual Load y Load Resources para mejores resultados!)

  2. Cargue el complemento PE Tree:

    Edit -> Plugins -> PE Tree

Ejemplo

Volcado de archivos PE en memoria

A continuación se muestran los pasos básicos para volcar un archivo PE empaquetado (por ejemplo MPRESS o UPX) y reconstruir las importaciones (asumiendo que la base de imagen/punto de entrada es bastante estándar):

  1. Inicie IDA Pro y desensamble un archivo PE empaquetado con MPRESS o UPX (seleccione Manual Load y Load Resources)

  2. Seleccione un depurador (Windows o Bochs) y ejecute hasta OEP (normalmente 0x00401000, ¡pero no siempre!)

  3. En este punto, podría tomar una instantánea de la memoria (guardando todos los segmentos) y guardar la IDB para más tarde

  4. Asegúrese de que IDA haya encontrado todo el código:

    Options -> General -> Analysis -> Reanalyze program

  5. Abra el complemento IDAPython de PE Tree, haga clic derecho en el panel derecho y seleccione:

    Add PE -> Search IDB

    Esto escaneará la IDB en busca de encabezados MZ/PE y mostrará cualquier módulo que encuentre.

  6. Haga clic derecho en HEADER-0x00400000 (o el nombre de módulo apropiado) y seleccione Dump...

  7. Especifique el AddressOfEntryPoint (típicamente 0x1000, ¡pero de nuevo, no siempre!)

  8. Asegúrese de que Rebuild IDT/IAT esté seleccionado

  9. ¡Vuelque!

Se creará un nuevo ejecutable utilizando los datos de las secciones desempaquetadas obtenidas de la memoria/IDB, mientras que una nueva sección llamada .pe_tree que contiene la IAT reconstruida, la tabla de nombres de sugerencia (hint name table) y la IDT se añadirá al archivo PE (muy similar a una sección .idata). Si el segmento de memoria del punto de entrada se ha marcado como escribible durante la ejecución (a través de VirtualProtect, por ejemplo), las características de la sección del punto de entrada también se marcarán como escribibles. Finalmente, los directorios de datos BASERELOC, BOUND_IMPORT y SECURITY se marcan como nulos, y la suma de comprobación del OPTIONAL_HEADER se recalcula (si se especifica).

Usando el enfoque anterior, es posible volcar muchos archivos PE en memoria que hayan sido desempaquetados, inyectados, cargados de forma reflectante o vaciados, etc.

Rekall

El complemento Rekall de PE Tree encuentra ejecutables portables en volcados de memoria de Windows.

Complemento Rekall de PE Tree

Requisitos

  • Python 3+

Características

  • Opera contra un volcado de memoria de Windows o un sistema en vivo
  • Ver, volcar y reconstruir módulos PE desde;
    • Procesos activos y DLLs
    • Controladores en modo kernel cargados

Instalación

  1. Instale Rekall desde GitHub.
  2. Instale la aplicación independiente PE Tree (consulte Instalación) bajo el mismo entorno virtual.

Uso

Ejecute Rekall y vea procesos activos, DLLs y controladores en un sistema en vivo:

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

Alternativamente, ejecute Rekall/PE Tree contra un volcado de memoria existente:

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

Volatility

El complemento Volatility de PE Tree encuentra ejecutables portables en volcados de memoria de Windows.

Complemento Volatility de PE Tree

Requisitos

  • Python 3.5+

Características

  • Opera contra un volcado de memoria de Windows
  • Ver, volcar y reconstruir módulos PE desde;
    • Procesos activos y DLLs
    • Controladores en modo kernel cargados

Instalación

  1. Instale Volatility3 desde GitHub.
  2. Instale la aplicación independiente PE Tree (consulte Instalación) bajo el mismo entorno 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

El complemento Ghidra de PE Tree encuentra ejecutables portables en bases de datos de Ghidra.

Complemento Ghidra de PE Tree

Requisitos

  • Python 3.5+
  • Ghidra Bridge

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 el desensamblador/vista hexadecimal de Ghidra
  • Reconstruir importaciones (IAT + IDT)
  • Volcar archivos PE reconstruidos

Instalación

  1. Instale PE Tree (consulte Instalación)
  2. Instale Ghidra Bridge

Uso

  1. Inicie el servidor de Ghidra Bridge
  2. Ejecute el complemento Ghidra de 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

El complemento Minidump de PE Tree encuentra ejecutables portables en Minidumps de Windows.

Complemento Minidump de PE Tree

Requisitos

  • Python 3.6+
  • minidump

Características

  • Ver, volcar y reconstruir módulos PE desde un archivo Minidump de Windows (.dmp)

Instalación

  1. Instale PE Tree (consulte Instalación)
  2. Instale 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

Configuración

Descripción general

La configuración se almacena en un archivo INI y tiene como valores predeterminados los siguientes:

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

Opciones

Ubicación

Intercambio de datos con terceros

La siguiente información se compartirá con aplicaciones web de terceros (según la configuración) bajo las siguientes condiciones:

VirusTotal

Si la URL de VirusTotal está especificada en la configuración, metadatos como hashes de archivo, marcas de tiempo, etc., se enviarán a VirusTotal para su procesamiento cuando el usuario haga clic en enlaces resaltados o seleccione "VirusTotal search" en el menú contextual del botón derecho.

CyberChef

Si la URL de CyberChef está presente en la configuración, cualquier dato de archivo se codificará en base64 y se enviará a CyberChef para su procesamiento cuando el usuario seleccione "CyberChef" en el menú contextual del botón derecho.

Solución de problemas

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

o

PyQt5 falla al instalarse en Linux

Intente actualizar pip a la versión 20.0+:

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

ModuleNotFoundError: No module named 'PyQt5.sip'

Intente desinstalar y reinstalar PyQt5 de la siguiente manera:

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

Faltan importaciones después del volcado

Asegúrese de que IDA haya encontrado y desensamblado todo el código:

Options -> General -> Analysis -> Reanalyze program

Después de que esto se complete, intente volcar/reconstruir las importaciones nuevamente.

Contribuir

¡Siéntase libre de contribuir! Las incidencias y las solicitudes de extracción (pull requests) son muy bienvenidas.

Documentación para desarrolladores

Para generar la documentación desde el código fuente usando Sphinx:

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

Para ver la documentación, abra ./doc/build/index.html en un navegador web.

Autores

Tom Bonner - tombonner - @thomas_bonner

Licencia

PE Tree se distribuye bajo la Licencia Apache. Consulte LICENSE para obtener más información.

Descargar herramienta
SecciónOpciónTipoDescripción
configdebugbooleanImprime pefile.dump() en la salida
configfontsstringLista separada por comas de nombres de fuentes para la UI
configpasswordsstringLista separada por comas de contraseñas de archivos ZIP
configvirustotal_urlstringURL de búsqueda de VirusTotal
configcyberchef_urlstringURL de CyberChef
TipoSORuta
AplicaciónWindows%TEMP%\pe_tree.ini
AplicaciónLinux/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