Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pe_tree — Python-Modul zur Anzeige von Portable Executable (PE)-Dateien in einer Baumansicht mithilfe von pefile und PyQt5. Kann auch mit IDA Pro und Rekall verwendet werden, um PE-Dateien aus dem Speicher auszulesen und Importe zu rekonstruieren. | Kitploit
Tools/GitHubGitHub/blackberry/pe_tree
SpeicherforensikSchwachstellenanalyseReverse EngineeringDebuggerForensikMalware-AnalyseDigitale ForensikBinäranalyseArchived
GitHubblackberry/pe_tree

pe_tree

Python-Modul zur Anzeige von Portable Executable (PE)-Dateien in einer Baumansicht mithilfe von pefile und PyQt5. Kann auch mit IDA Pro und Rekall verwendet werden, um PE-Dateien aus dem Speicher auszulesen und Importe zu rekonstruieren.

1.3k1738vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen

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

  1. Funktionen
  2. Anwendung
    • Anforderungen
    • Funktionen
    • Installation
      • Windows
      • Mac/Linux
      • Für Entwickler
    • Verwendung
    • Dark-Modus
  3. IDAPython
    • Anforderungen
    • Funktionen
    • Installation
      • Mit setuptools
      • Manuelle Installation
      • Für Entwickler
    • Verwendung
    • Beispiel
      • Auslagern von PE-Dateien im Speicher
  4. Rekall
    • Anforderungen
    • Funktionen
    • Installation
    • Verwendung
  5. Volatility
    • Anforderungen
    • Funktionen
    • Installation
    • Verwendung
  6. Ghidra
    • Anforderungen
    • Funktionen
    • Installation
    • Verwendung
  7. Minidump
    • Anforderungen
    • Funktionen
    • Installation
    • Verwendung
  8. Konfiguration
    • Überblick
    • Optionen
    • Speicherort
    • Datenweitergabe an Drittanbieter
  9. Fehlerbehebung
  10. Mitwirken
    • Entwicklerdokumentation
  11. 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:
      1. Vorhandene IAT/IDT verwenden
      2. IDT aus bestehender IAT neu aufbauen
      3. 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.

PE Tree-Standalone-Anwendung

Anforderungen

  • Python 3.5+

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

Für Entwickler

Das Repository klonen und für die Entwicklung einrichten:

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 .

Verwendung

PE Tree ausführen und nach portablen ausführbaren Dateien in Dateien, Ordnern und ZIP-Archiven suchen:

root@kitploit:~
$ 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:

root@kitploit:~
$ 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:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

Das PE Tree-IDAPython-Plugin findet portable ausführbare Dateien in IDA-Datenbanken.

PE Tree-IDAPython-Plugin

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.

Mit setuptools

  1. Laden Sie pe_tree herunter und installieren Sie es für den globalen Python-Interpreter, der von IDA verwendet wird:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. Kopieren Sie pe_tree_ida.py in Ihren IDA-Plugins-Ordner

Manuelle Installation

  1. Laden Sie pe_tree herunter und installieren Sie die Anforderungen für den globalen Python-Interpreter, der von IDA verwendet wird:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. Kopieren Sie pe_tree_ida.py und den Inhalt von ./pe_tree/ in Ihren IDA-Plugins-Ordner

Für Entwickler

Um auf die Installation als Plugin zu verzichten und das Skript einfach unter IDA auszuführen, installieren Sie zuerst die Paketanforderungen für die globale Python-Installation:

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

Führen Sie dann pe_tree_ida.py unter IDA aus:

Datei -> Skriptdatei... -> pe_tree_ida.py -> Öffnen

IDA-Plugins-Ordner

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

Verwendung

  1. Starten Sie IDA Pro und disassemblieren Sie eine PE-Datei (wählen Sie für beste Ergebnisse immer Manuelles Laden und Ressourcen laden!)

  2. Laden Sie das PE Tree-Plugin:

    Bearbeiten -> Plugins -> PE Tree

Beispiel

Auslagern von PE-Dateien im Speicher

Im Folgenden sind die grundlegenden Schritte zum Auslagern einer gepackten PE-Datei (z. B. MPRESS oder UPX) und zum Rekonstruieren der Importe (unter der Annahme, dass Image-Base/Einsprungspunkt einigermaßen standardmäßig sind):

  1. Starten Sie IDA Pro und disassemblieren Sie eine mit MPRESS oder UPX gepackte PE-Datei (wählen Sie Manuelles Laden und Ressourcen laden)

  2. Wählen Sie einen Debugger (Windows oder Bochs) und führen Sie ihn bis zum OEP aus (normalerweise 0x00401000, aber nicht immer!)

  3. An diesem Punkt können Sie einen Speicher-Snapshot erstellen (alle Segmente speichern) und die IDB für später speichern

  4. Stellen Sie sicher, dass IDA den gesamten Code gefunden hat:

    Optionen -> Allgemein -> Analyse -> Programm erneut analysieren

  5. Öffnen Sie das PE Tree-IDAPython-Plugin, klicken Sie mit der rechten Maustaste in das rechte Fenster und wählen Sie:

    PE hinzufügen -> IDB durchsuchen

    Dadurch wird die IDB nach MZ/PE-Headern durchsucht und alle gefundenen Module angezeigt.

  6. Klicken Sie mit der rechten Maustaste auf HEADER-0x00400000 (oder den entsprechenden Modulnamen) und wählen Sie Auslagern...

  7. Geben Sie die AddressOfEntryPoint an (normalerweise 0x1000, aber auch hier nicht immer!)

  8. Stellen Sie sicher, dass IDT/IAT neu aufbauen ausgewählt ist

  9. Auslagern!

Eine neue ausführbare Datei wird unter Verwendung der aus dem Speicher/IDB entpackten Abschnittsdaten erstellt, während ein neuer Abschnitt namens .pe_tree, der die neu aufgebaute IAT, Hinweisanmentabelle und IDT enthält, an die PE-Datei angehängt wird (ähnlich wie ein .idata-Abschnitt). Wenn der Speichersegment des Einsprungspunkts während der Ausführung als beschreibbar markiert wurde (z. B. über VirtualProtect), werden die Attribute des Einsprungspunkt-Abschnitts ebenfalls als beschreibbar markiert. Schließlich werden die Datenverzeichnisse BASERELOC, BOUND_IMPORT und SECURITY auf null gesetzt und die OPTIONAL_HEADER-Prüfsumme neu berechnet (falls angegeben).

Mit dem obigen Ansatz ist es möglich, viele PE-Dateien im Speicher auszulagern, die entweder entpackt, injiziert, reflektiv geladen oder ausgehöhlt wurden usw.

Rekall

Das PE Tree-Rekall-Plugin findet portable ausführbare Dateien in Windows-Speicherabbildern.

PE Tree-Rekall-Plugin

Anforderungen

  • Python 3+

Funktionen

  • Arbeitet gegen ein Windows-Speicherabbild oder ein Live-System
  • PE-Module anzeigen, auslagern und rekonstruieren von;
    • Aktiven Prozessen und DLLs
    • Geladenen Kernel-Modus-Treibern

Installation

  1. Installieren Sie Rekall von GitHub.
  2. Installieren Sie die PE Tree-Standalone-Anwendung (siehe Installation) in derselben virtuellen Umgebung.

Verwendung

Rekall ausführen und aktive Prozesse, DLLs und Treiber auf einem Live-System anzeigen:

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

Alternativ Rekall/PE Tree gegen ein vorhandenes Speicherabbild ausführen:

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

Volatility

Das PE Tree-Volatility-Plugin findet portable ausführbare Dateien in Windows-Speicherabbildern.

PE Tree-Volatility-Plugin

Anforderungen

  • Python 3.5+

Funktionen

  • Arbeitet gegen ein Windows-Speicherabbild
  • PE-Module anzeigen, auslagern und rekonstruieren von;
    • Aktiven Prozessen und DLLs
    • Geladenen Kernel-Modus-Treibern

Installation

  1. Installieren Sie Volatility3 von GitHub.
  2. Installieren Sie die PE Tree-Standalone-Anwendung (siehe Installation) in derselben virtuellen Umgebung.

Verwendung

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

PE-Tree (Volatility)

positional arguments:
  filename    Pfad zum Speicherabbild

optional arguments:
  -h, --help  show this help message and exit

Ghidra

Das PE Tree-Ghidra-Plugin findet portable ausführbare Dateien in Ghidra-Datenbanken.

PE Tree-Ghidra-Plugin

Anforderungen

  • Python 3.5+
  • Ghidra Bridge

Funktionen

  • Einfache Navigation der PE-Dateistrukturen
  • Doppelklick auf eine Speicheradresse im PE Tree zur Anzeige in der Ghidra-Disassemblierung/Hex-Ansicht
  • Importe rekonstruieren (IAT + IDT)
  • Rekonstruierte PE-Dateien auslagern

Installation

  1. Installieren Sie PE Tree (siehe Installation)
  2. Installieren Sie Ghidra Bridge

Verwendung

  1. Starten Sie den Ghidra Bridge-Server
  2. Führen Sie das PE Tree-Ghidra-Plugin aus
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 (Standard: 127.0.0.1)
  --port PORT      Ghidra Bridge-Server-Port (Standard: 4768)

Minidump

Das PE Tree-Minidump-Plugin findet portable ausführbare Dateien in Windows-Minidumps.

PE Tree-Minidump-Plugin

Anforderungen

  • Python 3.6+
  • minidump

Funktionen

  • PE-Module aus einer Windows-Minidump-Datei (.dmp) anzeigen, auslagern und rekonstruieren

Installation

  1. Installieren Sie PE Tree (siehe Installation)
  2. Installieren Sie minidump (pip install minidump)

Verwendung

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

PE-Tree (Minidump)

positional arguments:
  filename    Pfad zur .dmp-Datei

optional arguments:
  -h, --help  show this help message and exit

Konfiguration

Überblick

Die Konfiguration wird in einer INI-Datei gespeichert und standardmäßig mit den folgenden Werten belegt:

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

Optionen

Speicherort

Datenweitergabe an Drittanbieter

Die folgenden Informationen werden unter den angegebenen Bedingungen an Drittanbieter-Webanwendungen weitergegeben (je nach Konfiguration):

VirusTotal

Wenn die VirusTotal-URL in der Konfiguration angegeben ist, werden Metadaten wie Datei-Hashes, Zeitstempel usw. an VirusTotal zur Verarbeitung gesendet, wenn der Benutzer auf hervorgehobene Links klickt oder „VirusTotal-Suche“ aus dem Kontextmenü (rechte Maustaste) auswählt.

CyberChef

Wenn die CyberChef-URL in der Konfiguration vorhanden ist, werden alle Dateidaten base64-kodiert und an CyberChef zur Verarbeitung gesendet, wenn der Benutzer „CyberChef“ aus dem Kontextmenü (rechte Maustaste) auswählt.

Fehlerbehebung

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

oder

PyQt5 kann unter Linux nicht installiert werden

Versuchen Sie, pip auf Version 20.0+ zu aktualisieren:

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

ModuleNotFoundError: No module named 'PyQt5.sip'

Versuchen Sie, PyQt5 wie folgt zu deinstallieren und neu zu installieren:

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

Fehlende Importe nach dem Auslagern

Stellen Sie sicher, dass IDA den gesamten Code gefunden und disassembliert hat:

Optionen -> Allgemein -> Analyse -> Programm erneut analysieren

Nachdem dies abgeschlossen ist, versuchen Sie erneut, die Importe auszulagern/neu aufzubauen.

Mitwirken

Fühlen Sie sich frei, einen Beitrag zu leisten! Issues und Pull-Requests sind sehr willkommen.

Entwicklerdokumentation

So erstellen Sie die Dokumentation aus dem Quellcode mit Sphinx:

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

Um die Dokumentation anzusehen, öffnen Sie ./doc/build/index.html in einem Webbrowser.

Autoren

Tom Bonner - tombonner - @thomas_bonner

Lizenz

PE Tree wird unter der Apache-Lizenz vertrieben. Weitere Informationen finden Sie in der LIZENZ-Datei.

Tool herunterladen
AbschnittOptionTypBeschreibung
configdebugbooleanGibt pefile.dump() auf der Ausgabe aus
configfontsstringKommagetrennte Liste von Schriftartnamen für die UI
configpasswordsstringKommagetrennte Liste von ZIP-Dateipasswörtern
configvirustotal_urlstringVirusTotal-Such-URL
configcyberchef_urlstringCyberChef-URL
TypOSPfad
AnwendungWindows%TEMP%\pe_tree.ini
AnwendungLinux/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