Ghidra Downloadguide indépendant de téléchargement et d’installation
Français
SCRIPTING GHIDRA

Ghidra Script Manager : Java, Python et automatisation sûre

Le Ghidra Script Manager est le moyen le plus rapide de trouver, modifier et exécuter de petites tâches d’automatisation dans un projet Ghidra. Ce guide présente le flux intégré, les limites actuelles de Python, les modèles d’API utiles et la différence entre le Script Manager et l’automatisation CPython native avec PyGhidra.

Ouvrir la documentation officielle du scripting Ghidra
Intention principaleScript Manager
Version actuelleGhidra 12.1.3
Idéal pourPetites tâches répétables
Limite PythonPyGhidra pour CPython
RÉPONSE RAPIDE

À quoi sert le Ghidra Script Manager ?

Le Script Manager est l’espace intégré de Ghidra pour rechercher et lancer des scripts. Il est utile lorsqu’une même inspection ou opération de nettoyage revient dans plusieurs projets : lister des fonctions, renommer des symboles, exporter des données sélectionnées, ajouter des commentaires ou réunir des éléments pour un rapport. Le résultat reste une action d’analyse Ghidra normale ; vérifiez-le donc dans CodeBrowser, Listing ou Decompiler.

Un script ne remplace pas la compréhension du binaire. Traitez-le comme une petite expérience vérifiable : définissez le projet cible, faites la modification minimale, conservez une copie si l’opération écrit dans le projet et notez les changements. Le tutoriel Ghidra pour débutants présente l’analyse statique ; cette page se concentre sur l’automatisation de ce flux.

Périmètre et autorisation

Analysez uniquement les fichiers et systèmes que vous êtes autorisé à examiner. Le Script Manager peut modifier rapidement un projet : commencez avec une copie.

  • Trouver les scripts fournis avec Ghidra ou stockés dans vos répertoires de scripts.
  • Ouvrir un script, vérifier son langage et ses imports, puis l’exécuter sur le programme actif.
  • Utiliser le modèle de programme et la console pour réaliser une petite modification répétable.
  • Séparer l’automatisation du Script Manager de l’automatisation CPython native avec PyGhidra.
ÉTAPE 1

Ouvrir le Script Manager et trouver un script

Ouvrez un projet et lancez le Script Manager depuis les menus d’outils de Ghidra. L’emplacement exact peut varier légèrement selon l’outil et la version, mais l’espace contient une liste de scripts, une recherche ou des filtres, un éditeur et des actions pour exécuter ou actualiser la liste. Si un script copié récemment n’apparaît pas, actualisez d’abord la liste.

Commencez par un script en lecture seule ou destiné à produire un rapport. Lisez les commentaires d’en-tête et les imports avant de choisir Run. L’en-tête doit indiquer si le script attend un programme ouvert, une sélection, une fonction courante ou un processeur précis.

  1. 1

    Ouvrir un projet d’exercice

    Créez un projet non partagé et importez un binaire que vous avez le droit d’analyser. Gardez le fichier original et une copie du projet inchangés.

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

    Lancer le Script Manager

    Ouvrez l’espace de scripting depuis les menus d’outils, puis utilisez le filtre ou la recherche.

    Window > Script Manager
  3. 3

    Vérifier avant d’exécuter

    Contrôlez le langage, le contexte requis, les imports, la sortie et les éventuelles écritures sur les symboles, commentaires, types ou mémoires.

    Lire l’en-tête et les imports
  4. 4

    Exécuter et vérifier

    Lancez le script une fois sur une petite cible, lisez la console et vérifiez le programme dans Listing ou Decompiler.

    Run > Run Script
Fenêtre officielle de projet Ghidra avant l’ouverture d’un flux Script Manager
Créez et sauvegardez le projet avant l’automatisation. Capture officielle de la fenêtre de projet Ghidra.
ÉTAPE 2

Écrire un premier script court avec une limite claire

Le premier script doit répondre à une seule question : compter des fonctions, afficher des noms portant un préfixe, lister des chaînes définies ou signaler la sélection courante. Ne combinez pas analyse, renommage, export et nettoyage dès le premier essai. Un script limité est plus facile à relire et à relancer.

Utilisez le modèle de programme exposé par Ghidra plutôt que de récupérer des données dans l’interface visible. Demandez au programme ses fonctions, symboles, références, instructions ou blocs mémoire et envoyez un résultat court à la console. Consultez la référence de l’API GhidraScript pour confirmer les méthodes actuelles ; un ancien exemple de forum peut être obsolète.

Si le script modifie le programme, rendez la modification visible dans la sortie. Affichez les compteurs avant et après, l’adresse ou le nom du symbole, et arrêtez-vous sur un état inattendu. Cela rend les exécutions répétées auditables.

Checklist du premier scriptlire le contexte -> inspecter un objet -> afficher le résultat -> ne rien modifier -> répéter
Note d’exécution utilecible : practice.bin | périmètre : programme actuel | écritures : aucune | résultat : 12 fonctions
CodeBrowser officiel de Ghidra pour vérifier le résultat d’un script dans Listing et Decompiler
Vérifiez la sortie dans l’espace d’analyse visible plutôt que dans le seul texte de la console. Capture officielle de CodeBrowser.
CHOIX DU LANGAGE

Java, Python et la limite de Ghidra 12.1.3

Les recherches mélangent scripting Ghidra, scripts Ghidra et Python pour Ghidra, mais ces expressions ne désignent pas toujours le même environnement. Le Script Manager est le point d’entrée dans l’application. Les scripts Java sont le choix le plus prévisible pour une automatisation réutilisable avec les API Java de Ghidra. Python dépend de la manière dont le processus Ghidra a été lancé et de l’intégration installée.

Pour l’automatisation CPython native hors de la fenêtre de scripts, consultez le guide d’installation de PyGhidra. PyGhidra relie un processus CPython externe à l’API Ghidra, alors qu’un script du Script Manager s’exécute dans le contexte de l’application.

Ne pas transformer un mauvais runtime en réécriture

Identifiez d’abord l’environnement : Script Manager intégré, processus Ghidra démarré avec PyGhidra ou processus CPython externe. Choisissez ensuite la documentation et le diagnostic adaptés.

BesoinÀ utiliser d’abordPourquoi
Une petite action dans un projet ouvertScript ManagerRetour rapide et contexte visible
Automatisation Java réutilisableScript JavaCorrespond au modèle d’API natif
Flux CPython natifPyGhidraConçu pour un processus Python externe
Lot important et répétableScript avec journalEntrées, sorties et erreurs restent vérifiables
FLUX DE TRAVAIL

Modèles Script Manager utiles dans un vrai projet

Un script utile comporte généralement quatre parties : établir le contexte, sélectionner un petit ensemble d’objets, effectuer une opération et expliquer le résultat. Le contexte peut être le programme, l’emplacement, la sélection ou la fonction courante. La sélection doit être explicite : filtre de noms, plage d’adresses, bloc mémoire, propriété de fonction ou références.

Structurez la sortie pour comparer deux exécutions. Un résumé sur une ligne aide, mais une ligne par objet avec une adresse ou un nom de symbole facilite le débogage. Pour un script lent, testez d’abord une fonction ou un bloc mémoire et affichez un marqueur de progression.

  • Lire le programme et l’emplacement courants avant de demander un état global.
  • Préférer une sélection ou un itérateur borné à un parcours sans limite.
  • Vérifier adresses, symboles et types dans Listing comme éléments de preuve.
  • Séparer la découverte en lecture seule des opérations d’écriture.
  • Sauvegarder une copie avant les renommages, changements de types ou commentaires en masse.
Modèle mental répétablecontexte -> sélection -> opération -> preuve -> plan de retour
DÉPANNAGE

Résoudre les problèmes courants de scripting Ghidra

Lorsqu’un script échoue, capturez d’abord le message exact et le contexte du runtime. Notez la version de Ghidra, le système, le langage, le programme ouvert, la sélection et la manière dont le processus a été lancé. Cette fiche évite d’appliquer une correction PyGhidra à un problème du Script Manager.

Vérifiez aussi le plus petit cas qui reproduit l’erreur. Un échec lié à un processeur, une fonction endommagée ou une sélection vide demande souvent un contrôle de limite plutôt qu’une réécriture générale.

Conserver les preuves d’erreur

Gardez le texte complet, le fichier ou projet minimal reproductible et la version du script. Ne publiez pas de binaire inconnu ni de données d’analyse sensibles dans une issue publique.

SymptômeÀ vérifier d’abordProchaine action sûre
Le script n’est pas listéActualisation, chemin, extension et répertoiresRecharger la liste et ouvrir le fichier directement si possible
Python est indisponibleDémarrage de Ghidra et configuration PyGhidraUtiliser Java ou suivre le flux PyGhidra
Aucun programme ou sélectionOutil actif, projet, programme et sélectionOuvrir le programme et tester une seule fonction
La sortie semble fausseArchitecture, adresses, Listing et typesVérifier l’hypothèse dans CodeBrowser avant de modifier le script
CHECKLIST

Une routine de scripting sûre et répétable

Pour une tâche ponctuelle, la routine peut rester courte. Pour une équipe ou une enquête répétée, notez l’entrée, le résultat attendu, la version du script, la version de Ghidra et les écritures effectuées. Le guide du Decompiler aide à vérifier le résultat ; le guide d’installation explique comment séparer application, JDK, projets et sauvegardes.

Commencez par une sortie en lecture seule, comparez-la à Listing, puis seulement activez les changements. Gardez les compteurs avant/après et un plan de retour ou une copie. Si le script devient un système avec entrées externes, tests et dépendance CPython, envisagez PyGhidra ou un harnais dédié.

  1. 1

    Préparer

    Fixez la version de Ghidra, ouvrez une copie du projet et notez le périmètre prévu.

    version + entrée + périmètre
  2. 2

    Observer

    Exécutez un script en lecture seule et conservez un petit échantillon avec adresses.

    lecture seule d’abord
  3. 3

    Modifier

    Faites une modification contrôlée, affichez le compteur et vérifiez le résultat dans les vues d’analyse.

    une opération + preuve
  4. 4

    Conserver

    Enregistrez script, notes, sortie et copie du projet pour comparer ou annuler l’exécution.

    script + journal + copie
QUESTIONS FRÉQUENTES

Questions sur le Ghidra Script Manager

Qu’est-ce que le Ghidra Script Manager ?

C’est l’espace intégré de Ghidra pour découvrir, modifier et exécuter des scripts sur le projet ou programme actif. Il convient aux petites automatisations vérifiables et n’est pas un processus CPython externe.

Puis-je utiliser Python dans le Script Manager ?

La disponibilité de Python dépend du runtime et du démarrage de Ghidra. Si Python est signalé comme indisponible, utilisez Java pour l’automatisation intégrée ou le guide PyGhidra pour CPython.

Le scripting Ghidra est-il identique à PyGhidra ?

Non. Le Script Manager s’exécute dans Ghidra, tandis que PyGhidra relie un processus CPython natif à l’API Ghidra. Les installations et diagnostics sont différents.

Pourquoi mon script n’apparaît-il pas dans la liste ?

Actualisez la liste, puis vérifiez extension, répertoire de scripts et filtres de langage. Vérifiez aussi que l’en-tête et les imports correspondent à la version actuelle.

Le premier script doit-il modifier un projet ?

Il vaut mieux commencer par un rapport en lecture seule. Une fois le résultat vérifié dans Listing ou Decompiler, testez une modification contrôlée sur une copie avec un compteur et un plan de retour.