
KI-gestütztes Reverse-Engineering-Plugin für IDA Pro
KI-gestütztes Reverse-Engineering-Plugin für IDA Pro
Autor: Jason Tang
IDAssist ist ein IDA-Pro-Plugin, das LLM-gestützte Analyse direkt in die IDA-Oberfläche integriert und KI-unterstütztes Reverse-Engineering von Binärdateien durch konfigurierbare LLM-Anbieter, semantische Wissensgraphen, RAG-Dokumentensuche und eine breite Palette von LLM-Anbietern bietet.
IDAssist ist mit Python und PySide6 entwickelt, läuft als andockbares Panel innerhalb von IDA Pro 9.0+ und kommuniziert mit LLM-Anbietern (OpenAI, Anthropic, Ollama, LiteLLM und mehr), um Funktionen zu analysieren, Umbenennungen vorzuschlagen, Fragen zum Code zu beantworten und einen durchsuchbaren Wissensgraphen einer gesamten Binärdatei zu erstellen.

Funktionserklärung — Erzeugt detaillierte Erklärungen in natürlicher Sprache für dekompilierte Funktionen mit automatischer Sicherheitsanalyse, einschließlich Risikostufe, Aktivitätsprofil, Sicherheitskennzeichen und API-Erkennung.
Interaktiver Abfrage-Chat — Stellen Sie Fragen zur Binärdatei mit persistentem Chat-Verlauf. Verwenden Sie Kontextmakros (#func, #addr, #line, #range), um Funktionscode, Adressen oder Disassemblierungsbereiche in Abfragen einzufügen.
Automatisierte Aktionen — KI-gestützte Umbenennungsvorschläge für Funktionen, Variablen und Typen. Überprüfen Sie vorgeschlagene Änderungen in einer Tabelle mit Konfidenzwerten und wenden Sie ausgewählte Aktionen auf die IDB an.
Semantischer Wissensgraph — Erstellen und erkunden Sie einen Wissensgraphen der Funktionen, Aufrufbeziehungen, Datenflüsse und Sicherheitsmerkmale der Binärdatei. Enthält visuelle Graphdarstellung, semantische Suche und Community-Erkennung.
RAG-Dokumentensuche — Laden Sie Referenzdokumente (.txt, .md, .rst, .pdf) hoch und verwenden Sie sie als Kontext bei LLM-Abfragen. Unterstützt hybride Text+Vektor-Suche über Whoosh-Indexierung.
SymGraph-Integration — Übertragen und abrufen Sie Funktionsnamen, Variablennamen, Typen und Graphdaten von der kollaborativen Plattform SymGraph. Enthält einen mehrstufigen Assistenten mit Konfliktlösung für Abrufe.
Einstellungsverwaltung — Konfigurieren Sie mehrere LLM- und MCP-Anbieter, verwalten Sie SymGraph-API-Anmeldedaten, passen Sie den System-Prompt an und legen Sie Datenbankpfade fest.
Der Abfrage-Reiter unterstützt einen autonomen ReAct-Agentenmodus (Reasoning + Acting). Wenn aktiviert, plant das LLM eine Untersuchungsstrategie, führt Werkzeuge zur Informationssammlung aus, reflektiert über Ergebnisse und synthetisiert eine umfassende Antwort – alles automatisch über mehrere Denkrunden hinweg.
Konfigurieren Sie die Denkaufwandstufen, um zu steuern, wie viel das LLM vor der Antwort „denkt“:
IDAssist kann eine Verbindung zu externen MCP-Servern für werkzeugunterstützte LLM-Interaktionen herstellen, bei denen das Modell programmatisch Funktionen inspizieren, Disassemblierung lesen, Querverweise abfragen und die IDB während des Denkens modifizieren kann. Es werden sowohl URL-basierte MCP-Server (SSE oder Streamable HTTP) als auch stdio-basierte MCP-Server unterstützt, die über einen lokalen CLI-Befehl gestartet werden. IDAssist bietet auch integrierte interne Werkzeuge für Funktionsaufrufe, ohne dass ein externer MCP-Server erforderlich ist.
LLM-Anbieter mit Unterstützung für Werkzeugaufrufe können während des Gesprächs IDA-Analysefunktionen aufrufen, was iterative Untersuchungen ohne manuelles Eingreifen ermöglicht.
Geben Sie Daumen-hoch/Daumen-runter-Feedback zu Erklärungen und Abfrageantworten. Das Feedback wird lokal gespeichert und kann zur Verbesserung des Prompt-Engineerings und der Modellauswahl verwendet werden.
IDAssist folgt einem MVC-Muster (Model-View-Controller):
src/views/) — PySide6-Reiter-Widgets, die bei Benutzerinteraktion Signale aussenden.src/controllers/) — Verbinden Ansichtssignale mit Dienstaufrufen, verwalten den Zustand.src/services/) — Geschäftslogik, LLM-Anbieter, Datenbankzugriff, Graphanalyse.src/services/internal_tools.py) — IDA-spezifische Werkzeugdefinitionen für LLM-Funktionsaufrufe.src/services/graphrag/graphrag_tools.py) — Werkzeuge zum Lesen/Schreiben semantischer Graphen für die LLM-Interaktion.Wichtige Entwurfsprinzipien:
execute_on_main_thread() im Hauptthread ausgeführt.Plugin installieren (empfohlen — IDA Plugin Manager):
hcli plugin install idassist
Dadurch werden das Plugin und seine Python-Abhängigkeiten automatisch in der IDA-Umgebung installiert.
Oder manuell installieren (aus dem Release-Tarball):
Laden Sie das neueste Release-Zip von GitHub Releases herunter und extrahieren Sie es in Ihr IDA-Plugins-Verzeichnis:
Linux / macOS:
unzip IDAssist-*.zip -d ~/.idapro/plugins/
Windows:
Extract the zip into %APPDATA%\Hex-Rays\IDA Pro\plugins\.
Installieren Sie dann die Abhängigkeiten mit IDAs mitgeliefertem Python (nicht mit Ihrem systemeigenen Python):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssist\requirements.txt"
Ersetzen Sie
<IDA_INSTALL_DIR>durch Ihren IDA-Pro-Installationspfad (z. B./opt/idapro-9.0oder ).
Detaillierte Einrichtungsanweisungen finden Sie unter Erste Schritte.
IDAssist unterstützt die folgenden Anbieterarten:
| Anbieter | Modell | Stärken |
|---|---|---|
| Anthropic | claude-sonnet-4-6 |
Der Reiter Semantischer Graph bietet einen Wissensgraphen der Binärdatei:
Erkunden Sie den Graphen über die Listenansicht (Caller, Callees, Kanten, Flags), den Visuellen Graphen (interaktives Knotendiagramm mit N-Hop-Erweiterung) oder die Suche (7 Abfragetypen einschließlich semantischer Suche, ähnlicher Funktionen und Aufrufkontext).
Klicken Sie in einer beliebigen Disassemblierungs- oder Pseudocode-Ansicht mit der rechten Maustaste, um auf Folgendes zuzugreifen:
| Aktion |
|---|
requirements.txt aufgeführt sindDetails finden Sie in der LIZENZ-Datei.
| Stufe | Denkbudget | Am besten geeignet für |
|---|
| Keine | Deaktiviert | Schnelle, einfache Abfragen |
| Niedrig | ~2K Tokens | Einfache Analyse |
| Mittel | ~10K Tokens | Mittlere Komplexität |
| Hoch | ~25K Tokens | Tiefgehende Analyse, komplexer Code |
C:\Program Files\IDA Pro 9.0Tipp: Sie können auch die Umgebungsvariable IDAUSR auf ein benutzerdefiniertes Verzeichnis mit einem plugins/-Unterverzeichnis setzen.
IDAssist öffnen: Starten Sie IDA Pro, öffnen Sie eine Binärdatei und drücken Sie Ctrl+Shift+A (oder Bearbeiten > Plugins > IDAssist).
Einen Anbieter konfigurieren: Gehen Sie zum Einstellungs-Reiter, klicken Sie unter LLM-Anbieter auf Hinzufügen und konfigurieren Sie Ihren bevorzugten Anbieter.
Eine Funktion analysieren: Navigieren Sie zu einer beliebigen Funktion, klicken Sie auf den Erklären-Reiter und drücken Sie Funktion erklären.
| Typ | Authentifizierungsmethode | Hinweise |
|---|
anthropic_platform | API-Schlüssel | Anthropic-API direkt |
anthropic_oauth | OAuth (Browser) | Browserbasierte Authentifizierung |
anthropic_claude_cli | Lokale CLI | Verwendet die claude-CLI-Binärdatei |
bedrock | AWS-Anmeldedaten | Direkte AWS-Bedrock-Converse-API |
openai_platform | API-Schlüssel | OpenAI-API direkt |
openai_oauth | OAuth (Browser) | Browserbasierte Authentifizierung |
ollama | Keine (lokal) | Selbst gehostete Modelle |
litellm | Proxy-URL | Multi-Provider-Proxy |
| Starke Codeanalyse, erweitertes Denken |
| OpenAI | gpt-5.3-codex | Schnell, gute allgemeine Analyse |
| Ollama | qwen2.5-coder:32b | Lokal, kein API-Schlüssel erforderlich |
| Tastenkürzel |
|---|
| Wirkung |
|---|
| Funktion erklären | Ctrl+Shift+E | Öffnet den Erklären-Reiter und generiert eine Erklärung |
| Nach Auswahl fragen | Ctrl+Shift+Q | Öffnet den Abfrage-Reiter mit #func-Kontext |
| Umbenennungsvorschläge | — | Öffnet den Aktionen-Reiter und generiert Vorschläge |