Ghidra Downloadguida indipendente al download e all’installazione
Italiano
SCRIPTING CON GHIDRA

Ghidra Script Manager: Java, Python e automazione sicura

Ghidra Script Manager è il modo più rapido per trovare, modificare ed eseguire piccole attività di automazione dentro un progetto Ghidra. Questa guida spiega il flusso integrato, il limite attuale di Python, i modelli API più utili e la differenza tra Script Manager e automazione CPython nativa con PyGhidra.

Apri la documentazione ufficiale dello scripting Ghidra
Intento principaleScript Manager
Versione attualeGhidra 12.1.3
Ideale perAttività piccole e ripetibili
Limite PythonPyGhidra per CPython
RISPOSTA RAPIDA

Che cosa fa Ghidra Script Manager

Script Manager è l’area integrata di Ghidra per cercare e avviare gli script. È utile quando la stessa ispezione o pulizia ricorre in più progetti: elencare funzioni, rinominare simboli in modo coerente, esportare dati selezionati, aggiungere commenti o raccogliere prove per un report. Il risultato resta una normale azione di analisi Ghidra e va verificato in CodeBrowser, Listing o Decompiler.

Uno script non sostituisce la comprensione del binario. Trattalo come un piccolo esperimento verificabile: definisci il progetto, fai la modifica minima, conserva una copia se l’operazione scrive e annota che cosa è cambiato. Il tutorial Ghidra per principianti copre l’analisi statica; questa pagina si concentra sull’automazione dentro quel flusso.

Ambito e autorizzazione

Analizza solo file e sistemi che sei autorizzato a esaminare. Script Manager può modificare rapidamente un progetto: prova prima su una copia.

  • Trovare gli script inclusi in Ghidra o salvati nelle directory degli script.
  • Aprire uno script, controllare linguaggio e import ed eseguirlo sul programma attivo.
  • Usare modello del programma e console per una modifica piccola e ripetibile.
  • Separare l’automazione di Script Manager dall’automazione CPython nativa con PyGhidra.
PASSO 1

Aprire Script Manager e trovare uno script

Apri un progetto e avvia Script Manager dai menu degli strumenti di Ghidra. La posizione esatta può cambiare leggermente in base allo strumento e alla release, ma l’area offre un elenco di script, filtri o ricerca, un editor e comandi per eseguire o aggiornare l’elenco. Se uno script appena copiato non compare, aggiorna prima la lista.

Inizia con uno script di sola lettura o di report. Leggi commenti iniziali e import prima di premere Run. L’intestazione dovrebbe indicare se servono un programma aperto, una selezione, la funzione corrente o un processore specifico.

  1. 1

    Aprire un progetto di pratica

    Crea un progetto non condiviso e importa un binario che puoi analizzare. Conserva invariati file originale e copia del progetto.

    File > New Project > Non-Shared Project
  2. 2

    Avviare Script Manager

    Apri l’area di scripting dai menu degli strumenti e restringi l’elenco con filtro o ricerca.

    Window > Script Manager
  3. 3

    Controllare prima dell’esecuzione

    Verifica linguaggio, contesto richiesto, import, destinazione dell’output ed eventuali modifiche a simboli, commenti, tipi o memoria.

    Leggere intestazione e import
  4. 4

    Eseguire e verificare

    Esegui una volta su un obiettivo piccolo, leggi la console e controlla lo stato in Listing o Decompiler.

    Run > Run Script
Finestra ufficiale dei progetti Ghidra prima di aprire un flusso Script Manager
Crea e salva una copia del progetto prima dell’automazione. Schermata ufficiale della finestra progetti Ghidra.
PASSO 2

Scrivere un primo script piccolo e con un limite chiaro

Il primo script dovrebbe rispondere a una sola domanda: contare funzioni, stampare nomi con un prefisso, elencare stringhe definite o riportare la selezione corrente. Non combinare analisi, rinomina, esportazione e pulizia al primo tentativo. Uno script ristretto è più facile da controllare e rilanciare.

Usa il modello di programma esposto da Ghidra agli script invece di leggere la UI visibile. Chiedi al programma funzioni, simboli, riferimenti, istruzioni o blocchi di memoria e invia un risultato breve alla console. Consulta la referenza dell’API GhidraScript per i metodi attuali; un esempio vecchio di un forum potrebbe non essere compatibile.

Quando lo script modifica il programma, rendi il cambiamento evidente nell’output. Stampa i conteggi prima e dopo, l’indirizzo o il nome del simbolo e fermati davanti a uno stato imprevisto. In questo modo anche un’esecuzione ripetuta resta verificabile.

Checklist per il primo scriptleggere contesto -> ispezionare un oggetto -> stampare risultato -> non modificare -> ripetere
Nota di esecuzione utiletarget: practice.bin | ambito: programma corrente | scritture: nessuna | risultato: 12 funzioni
CodeBrowser ufficiale di Ghidra per verificare il risultato di uno script in Listing e Decompiler
Controlla l’output nello spazio di analisi visibile, non solo nel testo della console. Schermata ufficiale CodeBrowser.
SCELTA DEL LINGUAGGIO

Java, Python e il confine di Ghidra 12.1.3

Le ricerche mescolano scripting Ghidra, script Ghidra e Python per Ghidra, ma non descrivono sempre lo stesso runtime. Script Manager è il punto di ingresso nell’applicazione. Gli script Java sono la scelta più chiara per automazioni riutilizzabili con le API Java di Ghidra. Python dipende da come è stato avviato il processo Ghidra e dall’integrazione installata.

Per l’automazione CPython nativa fuori dalla finestra integrata, usa la guida all’installazione di PyGhidra. PyGhidra collega un processo CPython esterno all’API di Ghidra, mentre uno script di Script Manager gira nel contesto dell’applicazione.

Non confondere un runtime diverso con un errore di codice

Identifica prima dove gira lo script: Script Manager integrato, processo Ghidra avviato con PyGhidra oppure processo CPython esterno. Poi scegli documentazione e diagnosi adatte.

EsigenzaUsa primaPerché
Una piccola azione in un progetto apertoScript ManagerFeedback rapido e contesto visibile
Automazione Java riutilizzabileScript JavaSegue il modello API nativo
Flusso CPython nativoPyGhidraPensato per un processo Python esterno
Batch grande e ripetibileScript con logIngressi, uscite ed errori restano verificabili
FLUSSO DI LAVORO

Modelli utili di Script Manager nei progetti reali

Uno script utile ha spesso quattro parti: stabilire il contesto, selezionare pochi oggetti, eseguire un’operazione e spiegare il risultato. Il contesto può essere programma, posizione, selezione o funzione corrente. La selezione deve essere esplicita: filtro per nome, intervallo di indirizzi, blocco di memoria, proprietà della funzione o riferimenti.

Struttura l’output in modo da confrontare due esecuzioni. Un riepilogo di una riga aiuta, ma una riga per elemento con indirizzo o nome simbolo facilita il debug. Per script lenti, prova prima una funzione o un blocco e stampa un indicatore di avanzamento.

  • Leggere programma e posizione correnti prima di chiedere lo stato globale.
  • Preferire iterazioni o selezioni limitate a scansioni senza limite.
  • Verificare indirizzi, simboli e tipi nel Listing come prove.
  • Separare la scoperta in sola lettura dalle operazioni di scrittura.
  • Salvare una copia prima di rinominare, cambiare tipi o aggiungere commenti in massa.
Modello mentale ripetibilecontesto -> selezione -> operazione -> prova -> piano di ripristino
RISOLUZIONE DEI PROBLEMI

Risolvere i problemi comuni dello scripting Ghidra

Quando uno script fallisce, cattura prima il messaggio esatto e il contesto del runtime. Annota versione di Ghidra, sistema operativo, linguaggio, programma aperto, selezione e modalità di avvio del processo. Questa nota evita di applicare una correzione PyGhidra a un problema di Script Manager.

Controlla anche il caso minimo che riproduce l’errore. Un problema legato a un processore, a una funzione danneggiata o a una selezione vuota richiede spesso un controllo dei limiti, non una riscrittura completa.

Conservare le prove dell’errore

Salva testo completo, file o copia minima riproducibile e versione dello script. Non pubblicare binari sconosciuti o dati sensibili dell’analisi in un issue pubblico.

SintomoControllare primaAzione successiva sicura
Lo script non appareAggiornamento, percorso, estensione e directoryRicaricare l’elenco e aprire direttamente il file se possibile
Python non disponibileAvvio di Ghidra e configurazione PyGhidraUsare Java o seguire il flusso PyGhidra
Manca programma o selezioneStrumento, progetto, programma e selezione attiviAprire il programma e provare una sola funzione
L’output sembra erratoArchitettura, indirizzi, Listing e tipiVerificare l’ipotesi in CodeBrowser prima di cambiare script
CHECKLIST

Una routine di scripting sicura e ripetibile

Per un’attività una tantum basta una routine breve. Per un team o un’indagine ripetuta, registra input, risultato atteso, revisione dello script, versione di Ghidra e modifiche al progetto. La guida al Decompiler aiuta a verificare il risultato; la guida all’installazione separa applicazione, JDK, progetti e copie.

Inizia con output in sola lettura, confrontalo con Listing e abilita le modifiche solo dopo. Conserva conteggi prima/dopo e un piano di ripristino o una copia. Se lo script diventa un sistema con input esterni e dipendenza CPython, valuta PyGhidra o un harness dedicato.

  1. 1

    Preparare

    Blocca la versione di Ghidra, apri una copia del progetto e definisci l’ambito.

    versione + input + ambito
  2. 2

    Osservare

    Esegui uno script di sola lettura e conserva un piccolo campione con indirizzi.

    prima solo lettura
  3. 3

    Cambiare

    Fai una modifica controllata, stampa il conteggio e verifica il risultato nelle viste di analisi.

    una operazione + prova
  4. 4

    Conservare

    Salva script, note, output e copia del progetto per confrontare o annullare l’esecuzione.

    script + log + copia
DOMANDE FREQUENTI

Domande su Ghidra Script Manager

Che cos’è Ghidra Script Manager?

È l’area integrata di Ghidra per scoprire, modificare ed eseguire script sul progetto o programma attivo. È adatta a piccole automazioni verificabili e non è un processo CPython esterno.

Posso usare Python in Script Manager?

La disponibilità di Python dipende dal runtime e dall’avvio di Ghidra. Se Python non è disponibile, usa Java per l’automazione interna o la guida PyGhidra per un flusso CPython.

Lo scripting Ghidra è uguale a PyGhidra?

No. Script Manager gira dentro Ghidra, mentre PyGhidra collega un processo CPython nativo all’API Ghidra. Installazione e diagnosi sono diverse.

Perché il mio script non compare nell’elenco?

Aggiorna l’elenco e controlla estensione, directory degli script e filtri. Verifica anche che intestazione e import siano compatibili con la versione attuale.

Il primo script dovrebbe modificare un progetto?

È meglio iniziare con un report di sola lettura. Dopo aver verificato l’output in Listing o Decompiler, prova una modifica controllata su una copia con conteggio e piano di ripristino.