Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pe_tree — Module Python pour visualiser les fichiers Portable Executable (PE) dans une vue arborescente en utilisant pefile et PyQt5. Peut également être utilisé avec IDA Pro et Rekall pour extraire les fichiers PE en mémoire et reconstruire les importations. | Kitploit
Outils/GitHubGitHub/blackberry/pe_tree
Criminalistique MémoireAnalyse des VulnérabilitésRétro-ingénierieDébogueursAnalyse ForensiqueAnalyse de MalwareCriminalistique NumériqueAnalyse de BinairesArchived
GitHubblackberry/pe_tree

pe_tree

Module Python pour visualiser les fichiers Portable Executable (PE) dans une vue arborescente en utilisant pefile et PyQt5. Peut également être utilisé avec IDA Pro et Rekall pour extraire les fichiers PE en mémoire et reconstruire les importations.

1.3k173il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

PE Tree

PE Tree est un module Python permettant d'afficher les fichier Portable Executable (PE) dans une arborescence à l'aide de pefile et PyQt5. Il peut également être utilisé avec IDA Pro, Ghidra, Volatility, Rekall et minidump pour visualiser et extraire des fichiers PE en mémoire, ainsi que pour reconstruire la table d'importation.

Table des matières

  1. Fonctionnalités
  2. Application
    • Prérequis
    • Fonctionnalités
    • Installation
      • Windows
      • Mac/Linux
      • Pour les développeurs
    • Utilisation
    • Mode sombre
  3. IDAPython
    • Prérequis
    • Fonctionnalités
    • Installation
      • Avec setuptools
      • Installation manuelle
      • Pour les développeurs
    • Utilisation
    • Exemple
      • Extraction de fichiers PE en mémoire
  4. Rekall
    • Prérequis
    • Fonctionnalités
    • Installation
    • Utilisation
  5. Volatility
    • Prérequis
    • Fonctionnalités
    • Installation
    • Utilisation
  6. Ghidra
    • Prérequis
    • Fonctionnalités
    • Installation
    • Utilisation
  7. Minidump
    • Prérequis
    • Fonctionnalités
    • Installation
    • Utilisation
  8. Configuration
    • Vue d'ensemble
    • Options
    • Emplacement
    • Partage de données tiers
  9. Dépannage
  10. Contribuer
    • Documentation pour développeurs
  11. Licence

Fonctionnalités

  • Application autonome avec plugins pour :
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidumps
    • Carving
  • Prend en charge Windows, Linux et Mac
  • Analyse de fichiers PE et d'images mémoire depuis :
    • Système de fichiers
    • Archives ZIP (y compris protégées par mot de passe)
    • Dumps mémoire Windows (bruts, EWF, vmem, etc.)
    • Mémoire Windows active (avec rekall)
    • Minidump Windows
    • Base de données IDA Pro
    • Base de données Ghidra
    • Carving de fichiers binaires
  • Carte arc-en-ciel PE :
    • Fournit une vue d'ensemble de haut niveau des structures PE, de leur taille et de leur emplacement dans le fichier
    • Permet un aperçu visuel rapide et une comparaison des échantillons PE
  • Affiche les en-têtes PE suivants dans une arborescence :
    • En-tête MZ
    • Stub DOS
    • En-têtes Rich
    • En-têtes NT/Fichier/Options
    • Répertoires de données
    • Sections
    • Importations
    • Exportations
    • Informations de débogage
    • Configuration de chargement
    • TLS
    • Ressources
    • Informations de version
    • Certificats
    • Overlay
  • Extraire et sauvegarder des données depuis :
    • Stub DOS
    • Sections
    • Ressources
    • Certificats
    • Overlay
    • Exporter vers CyberChef pour une manipulation ultérieure
  • Effectuer des recherches VirusTotal sur :
    • Empreintes de fichiers
    • Chemin PDB
    • Horodatages
    • Empreinte/nom de section
    • Empreinte/nom d'importation
    • Nom d'exportation
    • Empreinte de ressource
    • Numéro de série du certificat
  • Extraire des images PE chargées en mémoire :
    • Corriger les pointeurs et tailles de section
    • Corriger les en-têtes PE :
      • Supprimer les pointeurs de répertoire de données inutiles
      • Recalculer la somme de contrôle PE
      • Mettre à jour le point d'entrée
    • Reconstruire les tables d'adresses d'importation et de répertoire d'importation (IAT/IDT) en utilisant plusieurs méthodes :
      1. Utiliser l'IAT/IDT existante
      2. Reconstruire l'IDT à partir de l'IAT existante

Application

L'application autonome PE Tree trouve les exécutables portables dans les fichiers, dossiers et archives ZIP.

Application autonome PE Tree

Prérequis

  • Python 3.5+

Fonctionnalités

  • Analyser les fichiers et dossiers à la recherche de fichiers PE
  • Extraire des fichiers PE d'archives ZIP (y compris protégées par mot de passe avec infected)
  • Carver des fichiers PE à partir de fichiers binaires
  • Double-clic sur VA/RVA pour désassembler avec capstone
  • Affichage hexadécimal des données

Installation

Avec pip (recommandé)

Installez directement depuis GitHub en utilisant un environnement virtuel frais et 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

Pour les développeurs

Clonez le dépôt Git et préparez-le pour le développement :

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 .

Utilisation

Lancez PE Tree et analysez les fichiers, dossiers et archives ZIP à la recherche d'exécutables portables :

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

PE-Tree

positional arguments:
  filenames   Chemin(s) vers fichier/dossier/zip

optional arguments:
  -h, --help  affiche ce message d'aide et quitte

Lancez PE Tree et tentez de carver des fichiers exécutables portables à partir d'un fichier binaire :

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

PE-Tree (Carve)

positional arguments:
  filename    Chemin vers le fichier à carver

optional arguments:
  -h, --help  affiche ce message d'aide et quitte

Mode sombre

Le mode sombre peut être activé en installant QDarkStyle :

root@kitploit:~
$ pip install qdarkstyle

IDAPython

Le plugin IDAPython PE Tree trouve les exécutables portables dans les bases de données IDA.

Plugin IDAPython PE Tree

Prérequis

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

Fonctionnalités

  • Navigation facile des structures de fichiers PE
  • Double-clic sur une adresse mémoire dans PE Tree pour l'afficher dans IDA-view ou hex-view
  • Rechercher dans une IDB des images PE en mémoire et :
    • Reconstruire les importations (IAT + IDT)
    • Extraire les fichiers PE reconstruits
    • Commenter automatiquement les structures PE dans l'IDB
    • Étiqueter automatiquement les décalages IAT dans l'IDB

Installation

Pour installer et exécuter en tant que plugin IDAPython, vous pouvez utiliser setuptools ou installer manuellement.

Avec setuptools

  1. Téléchargez pe_tree et installez-le pour l'interpréteur Python global utilisé par IDA :

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. Copiez pe_tree_ida.py dans votre dossier de plugins IDA

Installation manuelle

  1. Téléchargez pe_tree et installez les dépendances pour l'interpréteur Python global utilisé par IDA :

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. Copiez pe_tree_ida.py et le contenu de ./pe_tree/ dans votre dossier de plugins IDA

Pour les développeurs

Pour éviter d'installer comme plugin et simplement exécuter comme script sous IDA, installez d'abord les dépendances du paquet pe_tree pour l'installation Python globale :

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

Exécutez ensuite pe_tree_ida.py sous IDA :

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

Dossier de plugins IDA

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

Utilisation

  1. Lancez IDA Pro et désassemblez un fichier PE (sélectionnez toujours Manual Load et Load Resources pour de meilleurs résultats !)

  2. Chargez le plugin PE Tree :

    Edit -> Plugins -> PE Tree

Exemple

Extraction de fichiers PE en mémoire

Voici les étapes de base pour extraire un fichier PE packé (par exemple MPRESS ou UPX) et reconstruire les importations (en supposant que l'image de base/point d'entrée est assez standard) :

  1. Lancez IDA Pro et désassemblez un fichier PE packé MPRESS ou UPX (sélectionnez Manual Load et Load Resources)

  2. Sélectionnez un débogueur (Windows ou Bochs) et exécutez jusqu'à l'OEP (généralement 0x00401000, mais pas toujours !)

  3. À ce stade, vous pouvez prendre un instantané mémoire (en sauvegardant tous les segments) et sauvegarder l'IDB pour plus tard

  4. Assurez-vous qu'IDA a trouvé tout le code :

    Options -> General -> Analysis -> Reanalyze program

  5. Ouvrez le plugin IDAPython PE Tree, faites un clic droit dans le panneau de droite et sélectionnez :

    Add PE -> Search IDB

    Cela analysera l'IDB à la recherche d'en-têtes MZ/PE et affichera tous les modules trouvés.

  6. Faites un clic droit sur HEADER-0x00400000 (ou le nom de module approprié) et sélectionnez Dump...

  7. Spécifiez le AddressOfEntryPoint (généralement 0x1000, mais encore une fois, pas toujours !)

  8. Assurez-vous que Rebuild IDT/IAT est sélectionné

  9. Extrayez !

Un nouvel exécutable sera créé en utilisant les données de section dépaquetées obtenues depuis la mémoire/IDB, tandis qu'une nouvelle section nommée .pe_tree contenant l'IAT reconstruite, la table des noms d'indication et l'IDT sera ajoutée au fichier PE (un peu comme une section .idata). Si le segment mémoire du point d'entrée a été marqué comme accessible en écriture pendant l'exécution (via VirtualProtect par exemple), alors les caractéristiques de la section du point d'entrée seront également marquées comme accessibles en écriture. Enfin, les répertoires de données BASERELOC, BOUND_IMPORT et SECURITY sont marqués nuls, et la somme de contrôle OPTIONAL_HEADER est recalculée (si spécifié).

En utilisant l'approche ci-dessus, il est possible d'extraire de nombreux fichiers PE en mémoire qui ont été dépaquetés, injectés, chargés de manière réflexive ou évidés, etc.

Rekall

Le plugin Rekall PE Tree trouve les exécutables portables dans les dumps mémoire Windows.

Plugin Rekall PE Tree

Prérequis

  • Python 3+

Fonctionnalités

  • Fonctionne avec un dump mémoire Windows ou un système actif
  • Visualiser, extraire et reconstruire des modules PE depuis ;
    • Processus actifs et DLL
    • Pilotes en mode noyau chargés

Installation

  1. Installez Rekall depuis GitHub.
  2. Installez l'application autonome PE Tree (voir Installation) sous le même environnement virtuel.

Utilisation

Lancez Rekall et visualisez les processus actifs, DLL et pilotes sur un système actif :

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

Alternativement, lancez Rekall/PE Tree sur un dump mémoire existant :

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

Volatility

Le plugin Volatility PE Tree trouve les exécutables portables dans les dumps mémoire Windows.

Plugin Volatility PE Tree

Prérequis

  • Python 3.5+

Fonctionnalités

  • Fonctionne avec un dump mémoire Windows
  • Visualiser, extraire et reconstruire des modules PE depuis ;
    • Processus actifs et DLL
    • Pilotes en mode noyau chargés

Installation

  1. Installez Volatility3 depuis GitHub.
  2. Installez l'application autonome PE Tree (voir Installation) sous le même environnement virtuel.

Utilisation

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

PE-Tree (Volatility)

positional arguments:
  filename    Chemin vers le dump mémoire

optional arguments:
  -h, --help  affiche ce message d'aide et quitte

Ghidra

Le plugin Ghidra PE Tree trouve les exécutables portables dans les bases de données Ghidra.

Plugin Ghidra PE Tree

Prérequis

  • Python 3.5+
  • Ghidra Bridge

Fonctionnalités

  • Navigation facile des structures de fichiers PE
  • Double-clic sur une adresse mémoire dans PE Tree pour l'afficher dans le désassemblage/vue hexadécimale de Ghidra
  • Reconstruire les importations (IAT + IDT)
  • Extraire les fichiers PE reconstruits

Installation

  1. Installez PE Tree (voir Installation)
  2. Installez Ghidra Bridge

Utilisation

  1. Démarrez le serveur Ghidra Bridge
  2. Exécutez le plugin Ghidra PE Tree
root@kitploit:~
$ pe-tree-ghidra -h
usage: pe-tree-ghidra [-h] [--server SERVER] [--port PORT]

PE-Tree (Ghidra)

optional arguments:
  -h, --help       affiche ce message d'aide et quitte
  --server SERVER  IP du serveur Ghidra bridge (défaut : 127.0.0.1)
  --port PORT      Port du serveur Ghidra bridge (défaut : 4768)

Minidump

Le plugin Minidump PE Tree trouve les exécutables portables dans les Minidumps Windows.

Plugin Minidump PE Tree

Prérequis

  • Python 3.6+
  • minidump

Fonctionnalités

  • Visualiser, extraire et reconstruire des modules PE à partir d'un fichier Minidump Windows (.dmp)

Installation

  1. Installez PE Tree (voir Installation)
  2. Installez minidump (pip install minidump)

Utilisation

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

PE-Tree (Minidump)

positional arguments:
  filename    Chemin vers le fichier .dmp

optional arguments:
  -h, --help  affiche ce message d'aide et quitte

Configuration

Vue d'ensemble

La configuration est stockée dans un fichier INI et prend par défaut les valeurs suivantes :

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

Options

Emplacement

Partage de données tiers

Les informations suivantes seront partagées avec des applications web tierces (selon la configuration) dans les conditions suivantes :

VirusTotal

Si l'URL VirusTotal est spécifiée dans la configuration, des métadonnées telles que les empreintes de fichiers, les horodatages, etc. seront envoyées à VirusTotal pour traitement lorsque l'utilisateur clique sur des liens en surbrillance ou sélectionne "VirusTotal search" dans le menu contextuel du clic droit.

CyberChef

Si l'URL CyberChef est présente dans la configuration, toutes les données de fichier seront encodées en base64 et envoyées à CyberChef pour traitement lorsque l'utilisateur sélectionne "CyberChef" dans le menu contextuel du clic droit.

Dépannage

AttributeError: le module 'pip' n'a pas d'attribut 'main'

ou

PyQt5 ne s'installe pas sous Linux

Essayez de mettre à niveau pip vers la version 20.0+ :

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

ModuleNotFoundError: Aucun module nommé 'PyQt5.sip'

Essayez de désinstaller puis réinstaller PyQt5 comme suit :

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

Importations manquantes après extraction

Assurez-vous qu'IDA a trouvé et désassemblé tout le code :

Options -> General -> Analysis -> Reanalyze program

Une fois cela fait, essayez à nouveau d'extraire/reconstruire les importations.

Contribuer

N'hésitez pas à contribuer ! Les problèmes et les demandes de tirage sont les bienvenus.

Documentation pour développeurs

Pour générer la documentation à partir des sources avec Sphinx :

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

Pour consulter la documentation, ouvrez ./doc/build/index.html dans un navigateur web.

Auteurs

Tom Bonner - tombonner - @thomas_bonner

Licence

PE Tree est distribué sous la licence Apache. Voir LICENSE pour plus d'informations.

Télécharger l’outil
  • Reconstruire l'IAT et l'IDT à partir du désassemblage (avec IDA Pro, Ghidra ou capstone)
  • SectionOptionTypeDescription
    configdebugbooléenAfficher pefile.dump() dans la sortie
    configfontschaîneListe séparée par des virgules des noms de police pour l'interface
    configpasswordschaîneListe séparée par des virgules des mots de passe ZIP
    configvirustotal_urlchaîneURL de recherche VirusTotal
    configcyberchef_urlchaîneURL de CyberChef
    TypeOSChemin
    ApplicationWindows%TEMP%\pe_tree.ini
    ApplicationLinux/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