Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Gepetto — Plugin IDA qui interroge des modèles de langage pour accélérer la rétro-ingénierie. | Kitploit
Outils/GitHubGitHub/justicerage/gepetto
Analyse de CodeRétro-ingénierieAnalyse de BinairesApprentissage AutomatiqueRétro-Ingénierie Assistée par IA
GitHubjusticerage/gepetto

Gepetto

Plugin IDA qui interroge des modèles de langage pour accélérer la rétro-ingénierie.

Voir le dépôt
3.5k33254il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Gepetto

Gepetto est un plugin Python qui utilise divers grands modèles de langage pour donner du sens aux fonctions décompilées par IDA Pro (≥ 7.6). Il peut les exploiter pour expliquer ce que fait une fonction, et pour renommer automatiquement ses variables. Voici un exemple simple des résultats qu'il peut fournir en quelques secondes :

Installation

Utilisation de hcli (recommandé)

La façon la plus simple d'installer Gepetto est d'utiliser l'outil CLI Hex-Rays (hcli) :

pip install ida-hcli
hcli plugin install gepetto

Cela installera automatiquement le plugin dans votre répertoire utilisateur IDA.

Installation manuelle

Vous pouvez également installer le plugin manuellement :

  1. Déposez ce script (gepetto.py, ainsi que le dossier gepetto/) dans votre dossier de plugins IDA ($IDAUSR/plugins).
  2. L'emplacement du répertoire des plugins dépend de votre système :
    • Windows : %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS : ~/.idapro/plugins/
    • Linux : ~/.idapro/plugins/
  3. Installez les paquets requis dans l'installation Python d'IDA. Déterminez quel interpréteur IDA utilise en vérifiant la clé de registre suivante : Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (par défaut sous Windows : %LOCALAPPDATA%\Programs\Python\Python39).
  4. Avec l'interpréteur correspondant, exécutez simplement :
    [/path/to/python] -m pip install -r requirements.txt
    

Configuration

Gepetto conserve sa configuration dans votre répertoire utilisateur IDA, afin qu'elle survive aux mises à jour du plugin :

  • Windows : %APPDATA%\Hex-Rays\IDA Pro\cfg\gepetto\config.ini
  • macOS / Linux : ~/.idapro/cfg/gepetto/config.ini

La première fois que le plugin s'exécute, il y copie gepetto/config.ini et vous indique le chemin dans la console. Ensuite, la copie fournie avec le plugin n'est qu'un modèle — modifiez celle de votre répertoire utilisateur. Définissez GEPETTO_CONFIG_DIR pour remplacer entièrement l'emplacement.

Ajoutez vos clés API à ce fichier, ou fournissez-les via les variables d'environnement qui y sont nommées. Pour OpenAI, une clé peut être créée sur cette page. Veuillez noter que les requêtes API ne sont généralement pas gratuites (bien que peu coûteuses) et que vous devrez configurer un moyen de paiement auprès du fournisseur correspondant.

Modèles pris en charge

  • Anthropic
    • claude-opus-4-7
    • claude-sonnet-4-6
    • claude-haiku-4-5
  • OpenAI
    • gpt-5
    • gpt-5-mini
    • gpt-5-nano
    • gpt-4-turbo
    • gpt-4o
    • o4-mini
    • gpt-4.1
    • o3
    • o3-pro
  • Google Gemini
    • gemini-2.0-flash
    • gemini-2.5-pro
    • gemini-2.5-flash
    • gemini-2.5-flash-lite-preview-06-17
  • Azure OpenAI
    • gpt-35-turbo
    • gpt-35-turbo-1106
    • gpt-35-turbo-16k
    • gpt-4-turbo
    • gpt-4-turbo-2024-0409-gs
  • Ollama
    • Tout modèle local exposé via Ollama (n'apparaîtra pas si Ollama n'est pas en cours d'exécution)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1 (ne prend pas en charge le renommage des variables)
  • Novita AI
    • deepseek/deepseek-r1
    • deepseek/deepseek-v3
    • meta-llama/llama-3.3-70b-instruct
    • meta-llama/llama-3.1-70b-instruct
    • meta-llama/llama-3.1-405b-instruct
  • Kluster.ai
    • deepseek-ai/DeepSeek-R1
    • deepseek-ai/DeepSeek-V3-0324
    • google/gemma-3-27b-it
    • klusterai/Meta-Llama-3.1-8B-Instruct-Turbo
    • klusterai/Meta-Llama-3.1-405B-Instruct-Turbo
    • klusterai/Meta-Llama-3.3-70B-Instruct-Turbo
    • meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
    • meta-llama/Llama-4-Scout-17B-16E-Instruct
    • Qwen/Qwen2.5-VL-7B-Instruct
  • LM Studio
    • Tout modèle local exposé via LM Studio (n'apparaîtra pas si le serveur LM Studio Developer n'est pas en cours d'exécution)

Ajouter votre propre fournisseur

Gepetto charge les fournisseurs depuis trois emplacements, chacun écrasant le précédent en cas de collision de nom de menu : les modules fournis dans gepetto/models/, puis tout fichier .py dans $IDAUSR/cfg/gepetto/providers/, puis toute distribution installée annonçant un point d'entrée gepetto.providers. Les remplacements sont annoncés dans la console, afin que vous puissiez remplacer un fournisseur intégré sans forker le plugin.

Un fournisseur ajouté à la volée utilise exactement le même contrat qu'un fournisseur intégré. Pour un point de terminaison compatible OpenAI, le fichier entier est :

import openai
import gepetto.config
import gepetto.models.model_manager
from gepetto.models.openai import GPT


class MyProvider(GPT):
    @staticmethod
    def get_menu_name() -> str:
        return "MyProvider"

    @staticmethod
    def supported_models():
        return ["my-model-v1"]

    @staticmethod
    def is_configured_properly() -> bool:
        return bool(gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"))

    def __init__(self, model):
        try:
            super().__init__(model)
        except ValueError:
            pass  # No OpenAI key needed for this provider.
        self.model = model
        self.client = openai.OpenAI(
            api_key=gepetto.config.get_config("MyProvider", "API_KEY", "MYPROVIDER_API_KEY"),
            base_url="https://api.example.com/v1",
        )


gepetto.models.model_manager.register_model(MyProvider)

Ajoutez une section [MyProvider] correspondante à votre config.ini et redémarrez IDA : les fournisseurs sont enregistrés au chargement, donc une nouvelle clé ou un nouveau fichier nécessite un redémarrage avant d'apparaître dans le menu.

Pour le distribuer plutôt sous forme de package, exposez la classe ou un callable register(register_model) :

[project.entry-points."gepetto.providers"]
myprovider = "myprovider:MyProvider"

Les fichiers dans providers/ exécutent du Python arbitraire au démarrage d'IDA. C'est le même niveau de confiance que n'importe quel plugin IDA, mais n'installez que les providers auxquels vous faites confiance.

Utilisation

Une fois le plugin correctement installé, vous devriez pouvoir l'invoquer depuis le menu contextuel de la fenêtre de pseudocode d'IDA, comme le montre la capture d'écran ci-dessous :

Changez de modèle pris en charge par Gepetto depuis le menu Edit > Gepetto :

Gepetto fournit également une interface CLI que vous pouvez utiliser pour poser des questions au LLM directement depuis IDA. Assurez-vous de sélectionner Gepetto dans la barre de saisie :

Raccourcis clavier

Les raccourcis clavier suivants sont disponibles :

  • Demander au modèle d'expliquer la fonction : Ctrl + Alt + G
  • Demander au modèle d'ajouter des commentaires au code : Ctrl + Alt + K
  • Demander de meilleurs noms pour les variables de la fonction : Ctrl + Alt + R
Télécharger l’outil