Gepetto ist ein Python -Plugin, das verschiedene große Sprachmodelle verwendet, um Funktionen zu bieten, die von IDA Pro (≥ 7,4) dekompiliert werden. Es kann sie nutzen, um zu erklären, was eine Funktion tut, und ihre Variablen automatisch umzubenennen. Hier ist ein einfaches Beispiel dafür, welche Ergebnisse es in nur Sekunden liefern kann:
Lassen Sie dieses Skript ( gepetto.py
sowie den gepetto/
Ordner) einfach in Ihren IDA -Plugins -Ordner ( $IDAUSR/plugins
) fallen. Standardmäßig sollte dies unter Windows %AppData%Hex-RaysIDA Proplugins
sein (Sie müssen es möglicherweise erstellen).
Sie müssen die erforderlichen Pakete zur Python -Installation von IDA hinzufügen, damit das Skript funktioniert. Finden Sie, welche Interpreter IDA verwendet, indem Sie den folgenden Registrierungsschlüssel überprüfen: ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA
(Standard zu Windows: %LOCALAPPDATA%ProgramsPythonPython39
). Schließlich mit dem entsprechenden Dolmetscher rennen Sie einfach:
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini
) bearbeiten und Ihre eigenen API -Schlüssel hinzufügen. Für OpenAI finden Sie es auf dieser Seite. Bitte beachten Sie, dass API -Abfragen normalerweise nicht kostenlos sind (obwohl nicht sehr teuer) und Sie eine Zahlungsmethode mit dem entsprechenden Anbieter einrichten müssen.
Das Hinzufügen von Unterstützung für zusätzliche Modelle sollte nicht zu schwierig sein, vorausgesetzt, der von Ihnen in Betracht gezogene Anbieter enthält eine ähnliche API wie die von OpenAI. Schauen Sie sich den gepetto/models
-Ordner zur Inspiration an oder öffnen Sie ein Problem, wenn Sie es nicht herausfinden können.
Sobald das Plugin ordnungsgemäß installiert ist, sollten Sie es aus dem Kontextmenü des Pseudocode -Fensters von IDA aufrufen können, wie im folgenden Screenshot gezeigt:
Wechseln Sie zwischen Modellen, die von Gepetto aus dem Menü EDIT> GEPETTO unterstützt werden:
Gepetto bietet auch eine CLI -Schnittstelle, mit der Sie die LLM direkt von IDA Fragen stellen können. Stellen Sie sicher, dass Sie Gepetto
in der Eingabebalke auswählen:
Die folgenden Hotkeys sind verfügbar:
Ctrl
+ Alt
+ G
Ctrl
+ Alt
+ R
Erste Tests zeigen, dass die Befragung nach besseren Namen besser funktioniert, wenn Sie zuerst nach einer Erläuterung der Funktion fragen - ich nehme an, weil das Modell dann einen eigenen Kommentar verwendet, um genauere Vorschläge zu machen. Die Antworten der KI haben ein Element der Zufälligkeit. Wenn die anfängliche Antwort, die Sie erhalten, nicht zu Ihnen passt, können Sie den Befehl immer wieder ausführen.
Sie können die Sprache von Gepetto ändern, indem Sie das Gebietsschema in der Konfiguration bearbeiten. Um das Plugin in Französisch zu verwenden, fügen Sie beispielsweise einfach hinzu:
[Gepetto]
LANGUAGE = " fr_FR "
Das ausgewählte Gebietsschema muss mit den Ordnernamen in gepetto/locales
übereinstimmen. Wenn die gewünschte Sprache nicht verfügbar ist, können Sie zum Projekt beitragen, indem Sie es selbst hinzufügen! Erstellen Sie einen neuen Ordner für das gewünschte Gebietsschema (z. B. gepetto/locales/de_DE/LC_MESSAGES/
) und öffnen Sie eine neue Pull -Anforderung mit der aktualisierten .po
-Datei, die Sie durch das Kopieren und Bearbeiten gepetto/locales/gepetto.pot
erstellen können (ersetzen Sie alle Zeilen, die mit der msgstr
Version beginnen, durch die örtliche Version).