Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Gepetto — IDA-Plugin, das Sprachmodelle abfragt, um Reverse-Engineering zu beschleunigen | Kitploit
Tools/GitHubGitHub/justicerage/gepetto
Code-AnalyseReverse EngineeringBinäranalyseMaschinelles LernenKI-gestütztes Reverse Engineering
GitHubjusticerage/gepetto

Gepetto

IDA-Plugin, das Sprachmodelle abfragt, um Reverse-Engineering zu beschleunigen

Repository anzeigen
3.5k33254vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Gepetto

Gepetto ist ein Python-Plugin, das verschiedene große Sprachmodelle verwendet, um Funktionen, die von IDA Pro (≥ 7.6) dekompiliert wurden, mit Bedeutung zu versehen. Es kann sie nutzen, um zu erklären, was eine Funktion tut, und um ihre Variablen automatisch umzubenennen. Hier ist ein einfaches Beispiel dafür, welche Ergebnisse es in nur wenigen Sekunden liefern kann:

Einrichtung

Verwendung von hcli (empfohlen)

Der einfachste Weg, Gepetto zu installieren, ist die Verwendung des Hex-Rays CLI-Tools (hcli):

pip install ida-hcli
hcli plugin install gepetto

Dadurch wird das Plugin automatisch in deinem IDA-Benutzerverzeichnis installiert.

Manuelle Installation

Alternativ kannst du das Plugin manuell installieren:

  1. Lege dieses Skript (gepetto.py sowie den Ordner gepetto/) in deinem IDA-Plugins-Ordner ($IDAUSR/plugins) ab.
  2. Der Speicherort des Plugins-Verzeichnisses hängt von deinem System ab:
    • Windows: %APPDATA%\Hex-Rays\IDA Pro\plugins\
    • macOS: ~/.idapro/plugins/
    • Linux: ~/.idapro/plugins/
  3. Installiere die erforderlichen Pakete in IDAs Python-Installation. Finde heraus, welchen Interpreter IDA verwendet, indem du den folgenden Registrierungsschlüssel prüfst: Computer\HKEY_CURRENT_USER\Software\Hex-Rays\IDA (Standard unter Windows: %LOCALAPPDATA%\Programs\Python\Python39).
  4. Führe mit dem entsprechenden Interpreter einfach Folgendes aus:
    [/path/to/python] -m pip install -r requirements.txt
    

Konfiguration

Gepetto speichert seine Konfiguration in deinem IDA-Benutzerverzeichnis, sodass sie Plugin-Upgrades übersteht:

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

Beim ersten Ausführen des Plugins kopiert es gepetto/config.ini dorthin und teilt dir den Pfad auf der Konsole mit. Danach ist die mit dem Plugin ausgelieferte Kopie nur noch eine Vorlage — bearbeite die Datei in deinem Benutzerverzeichnis. Setze GEPETTO_CONFIG_DIR, um den Speicherort vollständig zu überschreiben.

Füge deine API-Schlüssel zu dieser Datei hinzu oder stelle sie über die darin genannten Umgebungsvariablen bereit. Für OpenAI kann ein Schlüssel auf dieser Seite erstellt werden. Bitte beachte, dass API-Abfragen in der Regel nicht kostenlos sind (wenn auch nicht sehr teuer) und du eine Zahlungsmethode beim entsprechenden Anbieter einrichten musst.

Unterstützte Modelle

  • 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
    • Jedes lokale Modell, das über Ollama bereitgestellt wird (erscheint nicht, wenn Ollama nicht läuft)
  • Groq
    • llama-3.1-70b-versatile
    • llama-3.2-90b-text-preview
    • mixtral-8x7b-32768
  • Together
    • mistralai/Mixtral-8x22B-Instruct-v0.1 (unterstützt kein Umbenennen von Variablen)
  • 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
    • Jedes lokale Modell, das über LM Studio bereitgestellt wird (erscheint nicht, wenn der LM Studio Developer-Server nicht läuft)

Einen eigenen Anbieter hinzufügen

Gepetto lädt Anbieter von drei Orten, wobei jeder den vorherigen bei einer Namenskollision im Menü überschreibt: die in gepetto/models/ ausgelieferten Module, dann jede .py-Datei in $IDAUSR/cfg/gepetto/providers/, dann jede installierte Distribution, die einen gepetto.providers-Entry-Point bewirbt. Überschreibungen werden auf der Konsole angekündigt, sodass du einen eingebauten Anbieter ersetzen kannst, ohne das Plugin zu forken.

Ein Drop-in-Anbieter verwendet exakt denselben Vertrag wie ein eingebauter. Für einen OpenAI-kompatiblen Endpoint besteht die gesamte Datei aus:

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)

Fügen Sie einen passenden Abschnitt [MyProvider] zu Ihrer config.ini hinzu und starten Sie IDA neu: Anbieter werden beim Laden registriert, daher benötigt ein neuer Schlüssel oder eine neue Datei einen Neustart, bevor er im Menü erscheint.

Um einen stattdessen als Paket auszuliefern, stellen Sie die Klasse oder ein aufrufbares register(register_model) bereit:

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

Dateien in providers/ führen beliebigen Python-Code aus, wenn IDA startet. Das ist dieselbe Vertrauensstufe wie bei jedem IDA-Plugin, aber installiere nur Provider, denen du vertraust.

Verwendung

Sobald das Plugin ordnungsgemäß installiert ist, solltest du es über das Kontextmenü des Pseudocode-Fensters von IDA aufrufen können, wie im folgenden Screenshot gezeigt:

Wechsle zwischen den von Gepetto unterstützten Modellen über das Menü Edit > Gepetto:

Gepetto bietet außerdem eine CLI-Schnittstelle, mit der du dem LLM direkt aus IDA heraus Fragen stellen kannst. Stelle sicher, dass du Gepetto in der Eingabeleiste auswählst:

Tastenkombinationen

Die folgenden Tastenkombinationen sind verfügbar:

  • Das Modell bitten, die Funktion zu erklären: Ctrl + Alt + G
  • Das Modell bitten, dem Code Kommentare hinzuzufügen: Ctrl + Alt + K
  • Bessere Namen für die Variablen der Funktion anfordern: Ctrl + Alt + R
Tool herunterladen