Cosa imparerai in questo tutorial Ghidra
Il flusso base è creare un progetto, importare un file, verificare l'architettura, avviare l'analisi, trovare una funzione e confrontare assembly e pseudocodice.
Questa guida privilegia l'analisi statica: usa binari tuoi, esempi open source, crackme didattici o programmi di esercitazione che hai il permesso di esaminare. Non è necessario eseguire il bersaglio.
- Il flusso base è creare un progetto, importare un file, verificare l'architettura, avviare l'analisi, trovare una funzione e confrontare assembly e pseudocodice.
- Mantieni l'analisi statica con file autorizzati e non eseguire il bersaglio durante l'esercizio.
- CodeBrowser + Listing + Decompiler
- XRefs + Function Graph
Prepara un laboratorio sicuro
Usa programmi tuoi, esempi open source o esercizi autorizzati. I file sconosciuti devono restare in una macchina virtuale isolata e non vanno eseguiti.
Per il primo esercizio, compila un piccolo programma C che controlla una stringa di password oppure scegli un crackme legale creato per imparare. Calcola l'hash prima dell'analisi e conserva l'originale.
Usa programmi tuoi, esempi open source o esercizi autorizzati. I file sconosciuti devono restare in una macchina virtuale isolata e non vanno eseguiti.
Crea il progetto, importa e analizza
Crea un progetto non condiviso, importa il file e controlla formato, processore, endianness e compilatore prima di Auto Analysis.
Controlla formato rilevato, processore, linguaggio, endianness e specifica del compilatore. I comuni file PE ed ELF spesso funzionano con i valori predefiniti, mentre firmware grezzo e architetture insolite richiedono una conferma manuale.
- 1
Progetto
Crea un progetto non condiviso, importa il file e controlla formato, processore, endianness e compilatore prima di Auto Analysis.
- 2
Importa
Controlla formato, processore, linguaggio, endianness e compilatore; conferma manualmente firmware grezzo e architetture insolite.
- 3
Analizza
Crea un progetto non condiviso, importa il file e controlla formato, processore, endianness e compilatore prima di Auto Analysis.

Comprendi CodeBrowser, Listing e simboli
Listing mostra indirizzi, byte e istruzioni; Decompiler offre un'interpretazione. Symbol Tree, stringhe e ricerca aiutano a trovare punti di partenza.
Inizia da una stringa riconoscibile, controlla i suoi riferimenti e passa alla funzione chiamante. Di solito è più rapido che scorrere ogni istruzione dal punto di ingresso.
| Finestra | Uso | Azione |
|---|---|---|
| Listing | Istruzioni | Verifica |
| Decompiler | Pseudocodice | Interpreta |
| Symbol Tree | Simboli | Naviga |
| Defined Strings | Testo | Trova punto |
Usa bene il decompilatore Ghidra
Il pseudocodice accelera la lettura, ma la logica importante va confermata nel Listing. Rinomina e applica tipi solo sulla base delle prove.
Migliora il risultato quando compaiono nuove prove: rinomina funzioni e variabili, applica tipi, definisci strutture e aggiungi commenti. Ogni correzione offre più contesto all'analisi successiva.
- 1
Trova un punto
Il pseudocodice accelera la lettura, ma la logica importante va confermata nel Listing. Rinomina e applica tipi solo sulla base delle prove.
- 2
Segui riferimenti
Rinomina e assegna tipi in base alle prove, poi aggiungi strutture e commenti per migliorare il contesto.
- 3
Conferma prove
Il pseudocodice accelera la lettura, ma la logica importante va confermata nel Listing. Rinomina e applica tipi solo sulla base delle prove.

Segui riferimenti e grafico delle funzioni
Le XRefs mostrano utilizzi, chiamanti e destinazioni. Function Graph rende visibili rami, cicli e percorsi alternativi.
Function Graph trasforma blocchi e diramazioni in una mappa visiva del flusso di controllo. Usalo per condizioni annidate e cicli, poi torna al Decompiler per spiegare ogni percorso.

Primo esercizio di 30 minuti
Trova messaggi di successo e errore, segui i riferimenti, identifica la funzione decisionale e descrivi la condizione con prove.
Aggiungi un segnalibro al ramo importante e salva il progetto. L'obiettivo non è ricostruire perfettamente il sorgente, ma creare una traccia riproducibile dalla stringa al riferimento, alla funzione, alla condizione e alla conclusione.
- 0-5
- 5-12
- 12-22
- 22-30
Errori comuni dei principianti
Non scambiare il pseudocodice per sorgente originale, conferma l'architettura, attendi la fine dell'analisi e non eseguire file sconosciuti.
Evita di attivare tutti gli analyzer, eseguire binari sconosciuti o trattare tipi ipotizzati come fatti. Reimporta il file con l'architettura corretta quando istruzioni e riferimenti sembrano incoerenti.
| Problema | Rischio | Scelta migliore |
|---|---|---|
| Pseudocodice | Deduzione errata | Verifica |
| Architettura | Decodifica errata | Reimporta |
| File sconosciuto | Rischio di sicurezza | Laboratorio isolato |
Passi successivi e fonti ufficiali
Ripeti il flusso su piccoli esempi legali, poi consulta la documentazione ufficiale e la guida PyGhidra per automatizzare il lavoro. GhidraDocs.
Le immagini provengono dal repository Ghidra ufficiale della NSA. Versione verificata il 22 agosto 2026: Ghidra 12.1.3, pubblicata il 18 agosto 2026. Continua con la guida al decompilatore Ghidra o automatizza le attività con PyGhidra.
Domande sul tutorial Ghidra
Ghidra è sicuro?
Scaricalo dalla release GitHub ufficiale e analizza file sconosciuti in un ambiente isolato senza eseguirli.
Conviene iniziare dal debugger?
Prima impara analisi statica, funzioni, riferimenti e flusso di controllo.
Ghidra recupera il sorgente originale?
No. Il decompilatore produce un'interpretazione utile, non il codice esatto.
Come si aggiorna Ghidra?
Estrai la nuova versione ufficiale in una cartella separata e controlla le estensioni.
Quali file posso analizzare?
Solo file propri, autorizzati, open source o creati per la formazione.