Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Gepetto — Plugin IDA che interroga modelli linguistici per accelerare il reverse-engineering | Kitploit
Strumenti/GitHubGitHub/justicerage/gepetto
Analisi del CodiceReverse EngineeringAnalisi di BinariMachine LearningReverse Engineering Assistito dall'IA
GitHubjusticerage/gepetto

Gepetto

Plugin IDA che interroga modelli linguistici per accelerare il reverse-engineering

Vedi Repository
3.5k332542 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Gepetto

Gepetto è un plugin Python che utilizza vari modelli linguistici di grandi dimensioni per dare un senso alle funzioni decompilate da IDA Pro (≥ 7.6). Può sfruttarli per spiegare cosa fa una funzione e per rinominarne automaticamente le variabili. Ecco un semplice esempio dei risultati che può fornire in pochi secondi:

Configurazione

Utilizzo di hcli (consigliato)

Il modo più semplice per installare Gepetto è utilizzare lo strumento CLI di Hex-Rays (hcli):

pip install ida-hcli
hcli plugin install gepetto

Questo installerà automaticamente il plugin nella tua directory utente di IDA.

Installazione manuale

In alternativa, puoi installare manualmente il plugin:

  1. Copia questo script (gepetto.py, insieme alla cartella gepetto/) nella tua cartella dei plugin di IDA ($IDAUSR/plugins).
  2. La posizione della directory dei plugin dipende dal tuo sistema:
    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS: ~/.idapro/plugins/
    • Linux: ~/.idapro/plugins/
  3. Installa i pacchetti richiesti nell'installazione Python di IDA. Individua quale interprete sta usando IDA controllando la seguente chiave di registro: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (predefinito su Windows: %LOCALAPPDATA%\Programs\Python\Python39).
  4. Con l'interprete corrispondente, esegui semplicemente:
    [/path/to/python] -m pip install -r requirements.txt
    

Configurazione

Gepetto conserva la propria configurazione nella directory utente di IDA, così sopravvive agli aggiornamenti del plugin:

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

La prima volta che il plugin viene eseguito, copia gepetto/config.ini in quella posizione e ti comunica il percorso sulla console. Dopodiché, la copia fornita con il plugin è solo un modello — modifica quella nella tua directory utente. Imposta GEPETTO_CONFIG_DIR per sovrascrivere completamente la posizione.

Aggiungi le tue chiavi API a quel file, oppure forniscile tramite le variabili d'ambiente indicate al suo interno. Per OpenAI, è possibile creare una chiave su questa pagina. Tieni presente che le query API di solito non sono gratuite (anche se non molto costose) e dovrai configurare un metodo di pagamento con il provider corrispondente.

Modelli supportati

  • 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
    • Qualsiasi modello locale esposto tramite Ollama (non apparirà se Ollama non è in esecuzione)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1 (non supporta la ridenominazione delle variabili)
  • 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
    • Qualsiasi modello locale esposto tramite LM Studio (non apparirà se il server LM Studio Developer non è in esecuzione)

Aggiungere il proprio provider

Gepetto carica i provider da tre posizioni, ciascuna delle quali sovrascrive la precedente in caso di collisione di nomi nel menu: i moduli forniti in gepetto/models/, poi qualsiasi file .py in $IDAUSR/cfg/gepetto/providers/, infine qualsiasi distribuzione installata che dichiari un entry point gepetto.providers. Le sovrascritture vengono annunciate sulla console, così puoi sostituire un provider integrato senza fare un fork del plugin.

Un provider drop-in utilizza esattamente lo stesso contratto di uno integrato. Per un endpoint compatibile con OpenAI, l'intero file è:

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)

Aggiungi una sezione [MyProvider] corrispondente al tuo config.ini e riavvia IDA: i provider vengono registrati al momento del caricamento, quindi una nuova chiave o un nuovo file richiede un riavvio prima di apparire nel menu.

Per distribuirne uno come pacchetto, esponi la classe o una callable register(register_model):

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

I file in providers/ eseguono Python arbitrario all'avvio di IDA. Si tratta dello stesso livello di fiducia di qualsiasi plugin di IDA, ma installa solo i provider di cui ti fidi.

Utilizzo

Una volta installato correttamente il plugin, dovresti essere in grado di richiamarlo dal menu contestuale della finestra dello pseudocodice di IDA, come mostrato nello screenshot sottostante:

Passa da un modello all'altro supportato da Gepetto dal menu Edit > Gepetto:

Gepetto fornisce anche un'interfaccia CLI che puoi usare per porre domande all'LLM direttamente da IDA. Assicurati di selezionare Gepetto nella barra di input:

Scorciatoie da tastiera

Sono disponibili le seguenti scorciatoie da tastiera:

  • Chiedi al modello di spiegare la funzione: Ctrl + Alt + G
  • Chiedi al modello di aggiungere commenti al codice: Ctrl + Alt + K
  • Richiedi nomi migliori per le variabili della funzione: Ctrl + Alt + R

I test iniziali mostrano che chiedere nomi migliori funziona meglio se prima si chiede una spiegazione della funzione – presumo perché il modello usa poi il proprio commento per formulare suggerimenti più accurati. C'è un elemento di casualità nelle risposte dell'IA. Se per qualche motivo la risposta iniziale che ottieni non ti soddisfa, puoi sempre eseguire di nuovo il comando.

Limitazioni

Scarica lo strumento