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
- Fonctionnalités
- Application
- IDAPython
- Rekall
- Volatility
- Ghidra
- Minidump
- Configuration
- Dépannage
- Contribuer
- 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 :
- Utiliser l'IAT/IDT existante
- Reconstruire l'IDT à partir de l'IAT existante
- Reconstruire l'IAT et l'IDT à partir du désassemblage (avec IDA Pro, Ghidra ou capstone)
Application
L'application autonome PE Tree trouve les exécutables portables dans les fichiers, dossiers et archives ZIP.

Prérequis
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
> 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
Pour les développeurs
Clonez le dépôt Git et préparez-le pour le développement :
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 .
Utilisation
Lancez PE Tree et analysez les fichiers, dossiers et archives ZIP à la recherche d'exécutables portables :
$ 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 :
$ 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 :
$ pip install qdarkstyle
IDAPython
Le plugin IDAPython PE Tree trouve les exécutables portables dans les bases de données IDA.

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