PE Tree
PE Tree ist ein Python-Modul zur Darstellung von Portable Executable (PE)-Dateien in einer Baumansicht mittels pefile und PyQt5.
Es kann auch mit IDA Pro, Ghidra, Volatility, Rekall und minidump verwendet werden, um PE-Dateien im Speicher anzuzeigen und auszulagern sowie die Importtabelle zu rekonstruieren.
Inhaltsverzeichnis
- Funktionen
- Anwendung
- IDAPython
- Rekall
- Volatility
- Ghidra
- Minidump
- Konfiguration
- Fehlerbehebung
- Mitwirken
- Lizenz
Funktionen
- Eigenständige Anwendung mit Plugins für:
- IDA Pro
- Ghidra
- Volatility
- Rekall
- Minidumps
- Carving
- Unterstützt Windows, Linux und Mac
- Analysiert PE-Dateien und Speicherabbilder aus:
- Dateisystem
- ZIP-Archiven (auch passwortgeschützt)
- Windows-Speicherabbildern (raw, EWF, vmem usw.)
- Live-Windows-Speicher (mit rekall)
- Windows-Minidump
- IDA Pro-Datenbank
- Ghidra-Datenbank
- Binärdatei-Carving
- Regenbogen-PE-Karte:
- Bietet eine Übersicht auf hoher Ebene über PE-Strukturen, Größe und Dateispeicherort
- Ermöglicht schnellen visuellen Überblick und Vergleich von PE-Beispielen
- Zeigt die folgenden PE-Header in einer Baumansicht:
- MZ-Header
- DOS-Stub
- Rich-Header
- NT/Datei/Optional-Header
- Datenverzeichnisse
- Abschnitte
- Importe
- Exporte
- Debug-Informationen
- Load-Konfiguration
- TLS
- Ressourcen
- Versionsinformationen
- Zertifikate
- Overlay
- Daten extrahieren und speichern aus:
- DOS-Stub
- Abschnitten
- Ressourcen
- Zertifikaten
- Overlay
- Export nach CyberChef zur weiteren Bearbeitung
- VirusTotal-Suchen durchführen nach:
- Datei-Hashes
- PDB-Pfad
- Zeitstempeln
- Abschnitts-Hash/Name
- Import-Hash/Name
- Export-Name
- Ressourcen-Hash
- Zertifikats-Seriennummer
- Geladene PE-Images aus dem Speicher auslagern:
- Abschnittszeiger und -größen korrigieren
- PE-Header korrigieren:
- Überflüssige Datenverzeichniszeiger entfernen
- PE-Prüfsumme neu berechnen
- Einsprungspunkt aktualisieren
- Importadress- und Verzeichnistabellen (IAT/IDT) mit verschiedenen Methoden rekonstruieren:
- Vorhandene IAT/IDT verwenden
- IDT aus bestehender IAT neu aufbauen
- IAT und IDT aus Disassemblierung neu aufbauen (mit IDA Pro, Ghidra oder capstone)
Anwendung
Die PE Tree-Standalone-Anwendung findet portable ausführbare Dateien in Dateien, Ordnern und ZIP-Archiven.

Anforderungen
Funktionen
- Scannen von Dateien und Ordnern nach PE-Dateien
- Extrahieren von PE-Dateien aus ZIP-Archiven (auch passwortgeschützt mit infected)
- Carven von PE-Dateien aus Binärdateien
- Doppelklick auf VA/RVA zur Disassemblierung mit capstone
- Hex-Dump von Daten
Installation
Mit pip (empfohlen)
Direkt von GitHub installieren mit einer neuen virtuellen Umgebung und 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
Für Entwickler
Das Repository klonen und für die Entwicklung einrichten:
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 .
Verwendung
PE Tree ausführen und nach portablen ausführbaren Dateien in Dateien, Ordnern und ZIP-Archiven suchen:
$ pe-tree -h
usage: pe-tree [-h] [filenames [filenames ...]]
PE-Tree
positional arguments:
filenames Pfad(e) zu Datei/Ordner/ZIP
optional arguments:
-h, --help show this help message and exit
PE Tree ausführen und versuchen, portable ausführbare Dateien aus einer Binärdatei zu carven:
$ pe-tree-carve -h
usage: pe-tree-carve [-h] filename
PE-Tree (Carve)
positional arguments:
filename Pfad zur Datei zum Carven
optional arguments:
-h, --help show this help message and exit
Dark-Modus
Der Dark-Modus kann durch die Installation von QDarkStyle aktiviert werden:
$ pip install qdarkstyle
IDAPython
Das PE Tree-IDAPython-Plugin findet portable ausführbare Dateien in IDA-Datenbanken.

Anforderungen
- IDA Pro 7.0+ mit Python 2.7
- IDA Pro 7.4+ mit Python 2.7 oder 3.5+
Funktionen
- Einfache Navigation der PE-Dateistrukturen
- Doppelklick auf eine Speicheradresse im PE Tree zur Anzeige in der IDA-Ansicht oder Hex-Ansicht
- Suche einer IDB nach PE-Images im Speicher und;
- Importe rekonstruieren (IAT + IDT)
- Rekonstruierte PE-Dateien auslagern
- Automatisch Kommentare zu PE-Dateistrukturen in der IDB setzen
- Automatisch IAT-Offsets in der IDB beschriften
Installation
Um als IDAPython-Plugin zu installieren und auszuführen, können Sie entweder setuptools verwenden oder manuell installieren.