0Pricing
Cyber Security Academy · Lezione

Ghidra: navigazione e annotazione dei binari

Importate un binario, navigate nel codice disassemblato e decompilato, rinominate le variabili e aggiungete commenti.

Ghidra: navigazione e annotazione dei binari è una lezione Cyber Security Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cyber Security Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cyber Security Academy include 4 lezioni in totale.

Che cos'è Ghidra?

Ghidra è uno strumento gratuito e open source di reverse engineering, sviluppato dalla NSA e reso pubblico nel 2019. Supporta il disassemblaggio, la decompilazione, lo scripting e l'analisi collaborativa su Linux, macOS e Windows.

Caricamento di un binario

Aprire un binario in Ghidra:

  1. Creare un nuovo progetto
  2. Importare il file (File → Import File)
  3. Attendere il completamento dell’analisi automatica (riconosce funzioni, stringhe e tipi di dati)
  4. Si apre CodeBrowser, che mostra le viste del disassemblaggio e del decompilatore

L’interfaccia di Ghidra

Finestre principali di Ghidra:

  • Program Trees — sezioni (.text, .data, .plt)
  • Symbol Tree — funzioni, etichette, importazioni ed esportazioni
  • Listing — vista del disassemblaggio
  • Decompiler — ricostruzione in pseudo-C
  • Functions — elenco di tutte le funzioni identificate

Raggiungere il punto di ingresso

Avviare l’analisi dal punto di ingresso del programma o da main():

  • Premere G per usare "Go To" su un indirizzo o un simbolo
  • Cercare "main" in Symbol Tree
  • Fare doppio clic su una funzione per raggiungerla

Leggere l’output del decompilatore

Il decompilatore di Ghidra produce pseudo-C, più facile da leggere rispetto all’assembly. Il risultato non sarà perfetto: i nomi delle variabili sono generici (param_1, local_10) e il flusso di controllo può apparire insolito, ma rivela la logica con sufficiente chiarezza per capire cosa fa il codice.

Rinominare variabili e funzioni

L’annotazione migliora la leggibilità:

  • Fare clic con il pulsante destro del mouse su una variabile → Rename (oppure premere L)
  • Fare clic con il pulsante destro del mouse su una funzione → Rename Function
  • Aggiungere commenti con ; (a fine riga) o nello stile /*...*/

Rinominare gli elementi permette di costruire il contesto man mano che si comprende meglio il binario.

Identificare le stringhe

Le stringhe sono preziose per comprendere lo scopo del programma:

  • Window → Defined Strings mostra tutte le costanti stringa
  • Fare clic su una stringa per raggiungere il punto in cui viene utilizzata nel codice
  • Messaggi di errore, percorsi di file, URL e chiavi del registro rivelano le funzionalità

Riferimenti incrociati (XREF)

XREFs mostrano dove viene chiamata o utilizzata una funzione o una variabile. Premere X su un simbolo per visualizzare tutti i riferimenti. È fondamentale per individuare il punto in cui l’input dell’utente entra in una funzione o in cui vengono eseguiti controlli di sicurezza.

Scripting con Ghidra

Ghidra dispone di un’API di scripting in Python/Java:

# Python script to find all calls to strcpy:
from ghidra.program.model.symbol import RefType
for ref in currentProgram.getReferenceManager().getReferencesTo(toAddr(0x401234)):
    print(ref.getFromAddress())

Analizzare il malware con Ghidra

Per analizzare un malware:

  • Identificare le tecniche anti-analisi (anti-debug e offuscamento del codice)
  • Individuare le funzioni di comunicazione di rete (socket, connect, WinInet)
  • Individuare le funzioni crittografiche (cercare le costanti della S-box AES: 0x63, 0x7c...)
  • Estrarre gli URL C2 dalle stringhe decrittografate

Ghidra e IDA Pro

Ghidra e IDA Pro:

  • Ghidra: gratuito, open source, programmabile tramite script, con un buon decompilatore
  • IDA Pro: standard del settore, analisi più rapida, ecosistema di plugin migliore, costoso ($$$)
  • Per la maggior parte delle attività, Ghidra è pienamente adeguato; IDA è indicato per i laboratori professionali di analisi malware

Verifica rapida: Ghidra

Quale funzionalità di Ghidra mostra tutte le posizioni nel binario che chiamano o fanno riferimento a una specifica funzione o variabile?

Riepilogo della lezione

Ghidra è uno strumento gratuito di reverse engineering sviluppato dalla NSA, con funzionalità di disassemblaggio, decompilazione e scripting. Flusso di lavoro principale: caricare il binario, eseguire l’analisi automatica, raggiungere main(), usare il decompilatore per comprendere la logica, rinominare le variabili, usare gli XREF per seguire il flusso dei dati e cercare le stringhe per ottenere il contesto. L’annotazione consolida progressivamente la comprensione. Lo scripting automatizza le attività di analisi ripetitive.

Domande Frequenti

La lezione «Ghidra: navigazione e annotazione dei binari» è gratuita?

Sì — il testo completo di «Ghidra: navigazione e annotazione dei binari» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cyber Security Academy, passa a CoddyKit PRO. Il corso Cyber Security Academy include 4 lezioni in totale.

Cosa imparerò in «Ghidra: navigazione e annotazione dei binari»?

Importate un binario, navigate nel codice disassemblato e decompilato, rinominate le variabili e aggiungete commenti. Eserciti Cyber Security Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cyber Security Academy?

Non è richiesta alcuna esperienza precedente. Cyber Security Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Ghidra: navigazione e annotazione dei binari»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cyber Security Academy?

Sì. Ogni lezione Cyber Security Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Ghidra: navigazione e annotazione dei binari
  2. Fondamenti di assembly x86/x64 per il reverse engineering
  3. Analisi dinamica con GDB e pwndbg
  4. Deoffuscamento e tecniche anti-analisi
← Torna a Cyber Security Academy