Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pe_tree — Modulo Python per visualizzare i file Portable Executable (PE) in una vista ad albero utilizzando pefile e PyQt5. Può anche essere utilizzato con IDA Pro e Rekall per eseguire il dump di file PE in memoria e ricostruire gli import. | Kitploit
Strumenti/GitHubGitHub/blackberry/pe_tree
Memory ForensicsAnalisi delle VulnerabilitàReverse EngineeringDebuggerInformatica ForenseAnalisi MalwareDigital ForensicsAnalisi di BinariArchived
GitHubblackberry/pe_tree

pe_tree

Modulo Python per visualizzare i file Portable Executable (PE) in una vista ad albero utilizzando pefile e PyQt5. Può anche essere utilizzato con IDA Pro e Rekall per eseguire il dump di file PE in memoria e ricostruire gli import.

1.3k1734 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

PE Tree

PE Tree è un modulo Python per visualizzare i file Portable Executable (PE) in una vista ad albero utilizzando pefile e PyQt5. Può anche essere utilizzato con IDA Pro, Ghidra, Volatility, Rekall e minidump per visualizzare e scaricare file PE in memoria, nonché per eseguire la ricostruzione della tabella delle importazioni.

Indice

  1. Caratteristiche
  2. Applicazione
    • Requisiti
    • Caratteristiche
    • Installazione
      • Windows
      • Mac/Linux
      • Per sviluppatori
    • Utilizzo
    • Modalità scura
  3. IDAPython
    • Requisiti
    • Caratteristiche
    • Installazione
      • Utilizzando setuptools
      • Installazione manuale
      • Per sviluppatori
    • Utilizzo
    • Esempio
      • Scaricare file PE in memoria
  4. Rekall
    • Requisiti
    • Caratteristiche
    • Installazione
    • Utilizzo
  5. Volatility
    • Requisiti
    • Caratteristiche
    • Installazione
    • Utilizzo
  6. Ghidra
    • Requisiti
    • Caratteristiche
    • Installazione
    • Utilizzo
  7. Minidump
    • Requisiti
    • Caratteristiche
    • Installazione
    • Utilizzo
  8. Configurazione
    • Panoramica
    • Opzioni
    • Posizione
    • Condivisione dati con terze parti
  9. Risoluzione dei problemi
  10. Contribuire
    • Documentazione per sviluppatori
  11. Licenza

Caratteristiche

  • App autonoma con plugin per:
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidump
    • Carving
  • Supporto per Windows, Linux e Mac
  • Analisi di file PE e immagini di memoria da:
    • File system
    • Archivi ZIP (inclusi quelli protetti da password)
    • Dump di memoria Windows (raw, EWF, vmem, ecc.)
    • Memoria Windows live (usando rekall)
    • Minidump Windows
    • Database IDA Pro
    • Database Ghidra
    • Carving di file binari
  • Mappa PE arcobaleno:
    • Fornisce una panoramica di alto livello delle strutture PE, delle dimensioni e della posizione del file
    • Consente una rapida panoramica visiva e confronto dei campioni PE
  • Mostra le seguenti intestazioni PE in una vista ad albero:
    • Intestazione MZ
    • Stub DOS
    • Intestazioni Rich
    • Intestazioni NT/File/Optional
    • Directory dati
    • Sezioni
    • Importazioni
    • Esportazioni
    • Informazioni di debug
    • Configurazione di caricamento
    • TLS
    • Risorse
    • Informazioni sulla versione
    • Certificati
    • Overlay
  • Estrai e salva dati da:
    • Stub DOS
    • Sezioni
    • Risorse
    • Certificati
    • Overlay
    • Esporta in CyberChef per ulteriori elaborazioni
  • Esegui ricerche su VirusTotal di:
    • Hash di file
    • Percorso PDB
    • Timestamp
    • Hash/nome sezione
    • Hash/nome importazione
    • Nome esportazione
    • Hash risorsa
    • Numero seriale certificato
  • Scarica immagini PE caricate dalla memoria:
    • Correggi puntatori e dimensioni delle sezioni
    • Correggi intestazioni PE:
      • Rimuovi puntatori di directory dati non necessari
      • Ricalcola checksum PE
      • Aggiorna punto di ingresso
    • Ricostruisci tabelle di indirizzi e directory di importazione (IAT/IDT) usando diversi metodi:
      1. Usa IAT/IDT esistenti
      2. Ricostruisci IDT dall'IAT esistente
      3. Ricostruisci IAT e IDT dal disassemblaggio (usando IDA Pro, Ghidra o capstone)

Applicazione

L'app autonoma PE Tree trova eseguibili portatili in file, cartelle e archivi ZIP.

PE Tree standalone application

Requisiti

  • Python 3.5+

Caratteristiche

  • Scansiona file e cartelle per file PE
  • Estrai file PE da archivi ZIP (inclusi quelli protetti da password con infected)
  • Effettua carving di file PE da file binari
  • Doppio clic su VA/RVA per disassemblare con capstone
  • Dump esadecimale dei dati

Installazione

Utilizzando pip (consigliato)

Installa direttamente da GitHub usando un ambiente virtuale nuovo e 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

Per sviluppatori

Clona il repository e configura per lo sviluppo:

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 .

Utilizzo

Esegui PE Tree e scansiona file, cartelle e archivi ZIP per eseguibili portatili:

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

Esegui PE Tree e tenta di effettuare il carving di file eseguibili portatili da un file 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

Modalità scura

La modalità scura può essere abilitata installando QDarkStyle:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

Il plugin IDAPython di PE Tree trova eseguibili portatili nei database IDA.

PE Tree IDAPython plugin

Requisiti

  • IDA Pro 7.0+ con Python 2.7
  • IDA Pro 7.4+ con Python 2.7 o 3.5+

Caratteristiche

  • Navigazione semplice delle strutture dei file PE
  • Doppio clic su un indirizzo di memoria in PE Tree per visualizzarlo in IDA-view o hex-view
  • Cerca un IDB per immagini PE in memoria e;
    • Ricostruisci importazioni (IAT + IDT)
    • Scarica file PE ricostruiti
    • Commenta automaticamente le strutture PE nell'IDB
    • Etichetta automaticamente gli offset IAT nell'IDB

Installazione

Per installare ed eseguire come plugin IDAPython puoi usare setuptools o installare manualmente.

Utilizzando setuptools

  1. Scarica pe_tree e installa per l'interprete Python globale usato da IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. Copia pe_tree_ida.py nella tua cartella dei plugin IDA

Installazione manuale

  1. Scarica pe_tree e installa i requisiti per l'interprete Python globale usato da IDA:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. Copia pe_tree_ida.py e il contenuto di ./pe_tree/ nella tua cartella dei plugin IDA

Per sviluppatori

Per evitare di installare come plugin ed eseguire semplicemente come script sotto IDA, installa prima i requisiti del pacchetto pe_tree per l'installazione Python globale:

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

Poi esegui pe_tree_ida.py sotto IDA:

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

Cartella dei plugin IDA

Sistema operativoCartella dei plugin
Windows%ProgramFiles%\IDA Pro 7.X\plugins
Linux/opt/ida-7.X/plugins
Mac~/.idapro/plugins

Utilizzo

  1. Avvia IDA Pro e disassembla un file PE (seleziona sempre Manual Load e Load Resources per risultati ottimali!)

  2. Carica il plugin PE Tree:

    Edit -> Plugins -> PE Tree

Esempio

Scaricare file PE in memoria

Di seguito i passaggi base per scaricare un file PE impacchettato (ad esempio MPRESS o UPX) e ricostruire le importazioni (supponendo che la base dell'immagine/punto di ingresso sia abbastanza standard):

  1. Avvia IDA Pro e disassembla un file PE impacchettato con MPRESS o UPX (seleziona Manual Load e Load Resources)

  2. Seleziona un debugger (Windows o Bochs) ed esegui fino all'OEP (di solito 0x00401000, ma non sempre!)

  3. A questo punto puoi fare un'istantanea della memoria (salvando tutti i segmenti) e salvare l'IDB per dopo

  4. Assicurati che IDA abbia trovato tutto il codice:

    Options -> General -> Analysis -> Reanalyze program

  5. Apri il plugin IDAPython di PE Tree, fai clic destro nel riquadro destro e seleziona:

    Add PE -> Search IDB

    Questo scansionerà l'IDB alla ricerca di intestazioni MZ/PE e mostrerà eventuali moduli trovati.

  6. Fai clic destro su HEADER-0x00400000 (o sul nome del modulo appropriato) e seleziona Dump...

  7. Specifica AddressOfEntryPoint (in genere 0x1000, ma di nuovo non sempre!)

  8. Assicurati che Rebuild IDT/IAT sia selezionato

  9. Scarica!

Verrà creato un nuovo eseguibile utilizzando i dati delle sezioni decompresse ottenuti dalla memoria/IDB, mentre una nuova sezione denominata .pe_tree contenente l'IAT ricostruito, la tabella dei nomi degli hint e la IDT verrà aggiunta al file PE (molto simile a una sezione .idata). Se il segmento di memoria del punto di ingresso è stato contrassegnato come scrivibile durante l'esecuzione (ad esempio tramite VirtualProtect), anche le caratteristiche della sezione del punto di ingresso verranno contrassegnate come scrivibili. Infine, le directory dati BASERELOC, BOUND_IMPORT e SECURITY vengono contrassegnate come nulle, e il checksum OPTIONAL_HEADER viene ricalcolato (se specificato).

Utilizzando l'approccio sopra descritto è possibile scaricare molti file PE in memoria che sono stati decompressi, iniettati, caricati in modo riflessivo o svuotati, ecc.

Rekall

Il plugin Rekall di PE Tree trova eseguibili portatili nei dump di memoria Windows.

PE Tree Rekall plugin

Requisiti

  • Python 3+

Caratteristiche

  • Opera su un dump di memoria Windows o su un sistema live
  • Visualizza, scarica e ricostruisce moduli PE da;
    • Processi attivi e DLL
    • Driver modalità kernel caricati

Installazione

  1. Installa Rekall da GitHub.
  2. Installa l'applicazione standalone PE Tree (vedi Installazione) nello stesso ambiente virtuale.

Utilizzo

Esegui Rekall e visualizza processi attivi, DLL e driver su un sistema live:

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

In alternativa, esegui Rekall/PE Tree su un dump di memoria esistente:

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

Volatility

Il plugin Volatility di PE Tree trova eseguibili portatili nei dump di memoria Windows.

PE Tree Volatility plugin

Requisiti

  • Python 3.5+

Caratteristiche

  • Opera su un dump di memoria Windows
  • Visualizza, scarica e ricostruisce moduli PE da;
    • Processi attivi e DLL
    • Driver modalità kernel caricati

Installazione

  1. Installa Volatility3 da GitHub.
  2. Installa l'applicazione standalone PE Tree (vedi Installazione) nello stesso ambiente virtuale.

Utilizzo

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

Il plugin Ghidra di PE Tree trova eseguibili portatili nei database Ghidra.

PE Tree Ghidra plugin

Requisiti

  • Python 3.5+
  • Ghidra Bridge

Caratteristiche

  • Navigazione semplice delle strutture dei file PE
  • Doppio clic su un indirizzo di memoria in PE Tree per visualizzarlo nel disassemblatore/hex-view di Ghidra
  • Ricostruisci importazioni (IAT + IDT)
  • Scarica file PE ricostruiti

Installazione

  1. Installa PE Tree (vedi Installazione)
  2. Installa Ghidra Bridge

Utilizzo

  1. Avvia il server Ghidra Bridge
  2. Esegui il plugin Ghidra di 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

Il plugin Minidump di PE Tree trova eseguibili portatili nei Minidump Windows.

PE Tree Minidump plugin

Requisiti

  • Python 3.6+
  • minidump

Caratteristiche

  • Visualizza, scarica e ricostruisce moduli PE da un file Minidump Windows (.dmp)

Installazione

  1. Installa PE Tree (vedi Installazione)
  2. Installa minidump (pip install minidump)

Utilizzo

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

Configurazione

Panoramica

La configurazione è memorizzata in un file INI e predefinita ai seguenti valori:

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

Opzioni

Posizione

Condivisione dati con terze parti

Le seguenti informazioni verranno condivise con applicazioni web di terze parti (a seconda della configurazione) nelle seguenti condizioni:

VirusTotal

Se l'URL di VirusTotal è specificato nella configurazione, metadati come hash di file, timestamp, ecc. verranno inviati a VirusTotal per l'elaborazione quando l'utente fa clic sui collegamenti evidenziati o seleziona "VirusTotal search" dal menu contestuale del tasto destro.

CyberChef

Se l'URL di CyberChef è presente nella configurazione, tutti i dati del file verranno codificati in base64 e inviati a CyberChef per l'elaborazione quando l'utente seleziona "CyberChef" dal menu contestuale del tasto destro.

Risoluzione dei problemi

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

oppure

PyQt5 non si installa su Linux

Prova ad aggiornare pip alla versione 20.0+:

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

ModuleNotFoundError: No module named 'PyQt5.sip'

Prova a disinstallare e reinstallare PyQt5 come segue:

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

Importazioni mancanti dopo lo scaricamento

Assicurati che IDA abbia trovato e disassemblato tutto il codice:

Options -> General -> Analysis -> Reanalyze program

Dopo aver completato questa operazione, prova a scaricare/ricostruire nuovamente le importazioni.

Contribuire

Sentiti libero di contribuire! Issues e pull request sono benvenuti.

Documentazione per sviluppatori

Per creare la documentazione dal codice sorgente usando Sphinx:

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

Per visualizzare la documentazione, apri ./doc/build/index.html in un browser web.

Autori

Tom Bonner - tombonner - @thomas_bonner

Licenza

PE Tree è distribuito sotto licenza Apache. Vedi LICENSE per maggiori informazioni.

Scarica lo strumento
SezioneOpzioneTipoDescrizione
configdebugbooleanoStampa pefile.dump() sull'output
configfontsstringaElenco separato da virgole di nomi di font per l'interfaccia utente
configpasswordsstringaElenco separato da virgole di password per file ZIP
configvirustotal_urlstringaURL di ricerca VirusTotal
configcyberchef_urlstringaURL di CyberChef
TipoSistema operativoPercorso
ApplicazioneWindows%TEMP%\pe_tree.ini
ApplicazioneLinux/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
CarvingWindows%TEMP%\pe_tree_carve.ini
CarvingLinux/Mac/tmp/pe_tree_carve.ini