
IDAssist v2.3.0
KI-gestütztes Reverse-Engineering-Plugin für IDA Pro
IDAssist
KI-gestütztes Reverse-Engineering-Plugin für IDA Pro
Autor: Jason Tang
Beschreibung
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.

Hauptfunktionen
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.
Erweiterte Funktionen
ReAct Agent
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.
Extended Thinking
Konfigurieren Sie die Denkaufwandstufen, um zu steuern, wie viel das LLM vor der Antwort „denkt“:
| 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 |
MCP Integration
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.
Function Calling
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.
RLHF Feedback
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.
Architektur
IDAssist folgt einem MVC-Muster (Model-View-Controller):
- Ansichten (
src/views/) — PySide6-Reiter-Widgets, die bei Benutzerinteraktion Signale aussenden. - Controller (
src/controllers/) — Verbinden Ansichtssignale mit Dienstaufrufen, verwalten den Zustand. - Dienste (
src/services/) — Geschäftslogik, LLM-Anbieter, Datenbankzugriff, Graphanalyse. - Interne Werkzeuge (
src/services/internal_tools.py) — IDA-spezifische Werkzeugdefinitionen für LLM-Funktionsaufrufe. - Graph-Werkzeuge (
src/services/graphrag/graphrag_tools.py) — Werkzeuge zum Lesen/Schreiben semantischer Graphen für die LLM-Interaktion.
Wichtige Entwurfsprinzipien:
- Alle IDA-API-Aufrufe werden über
execute_on_main_thread()im Hauptthread ausgeführt. - LLM-Antworten werden inkrementell an die Benutzeroberfläche gestreamt.
- Lokale SQLite-Datenbanken für die Persistenz (keine externe Datenbank erforderlich).
- Singleton-Dienstregistrierung mit threadsicherer Initialisierung.
Schnellstart
-
Plugin installieren (empfohlen — IDA Plugin Manager):
hcli plugin install idassistDadurch 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.txtWindows:
"<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.0oderC:\Program Files\IDA Pro 9.0).Tipp: Sie können auch die Umgebungsvariable
IDAUSRauf ein benutzerdefiniertes Verzeichnis mit einemplugins/-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.
Detaillierte Einrichtungsanweisungen finden Sie unter Erste Schritte.
LLM-Anbieter einrichten
IDAssist unterstützt die folgenden Anbieterarten:
| 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 |
Empfohlene Modelle
| Anbieter | Modell | Stärken |
|---|---|---|
| Anthropic | claude-sonnet-4-6 | Starke Codeanalyse, erweitertes Denken |
| OpenAI | gpt-5.3-codex | Schnell, gute allgemeine Analyse |
| Ollama | qwen2.5-coder:32b | Lokal, kein API-Schlüssel erforderlich |
Den semantischen Graphen verwenden
Der Reiter Semantischer Graph bietet einen Wissensgraphen der Binärdatei:
- Binärdatei neu indizieren — Extrahiert Funktionsstruktur, Aufrufgraph und Querverweise
- Semantische Analyse — Generiert LLM-Zusammenfassungen für jede Funktion
- Sicherheitsanalyse — Erkennt Schwachstellenmuster und sicherheitsrelevante APIs
- Netzwerkfluss — Verfolgt Netzwerkoperationen über den Aufrufgraph
- Community-Erkennung — Gruppiert verwandte Funktionen in Module
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).
Kontextmenü-Aktionen
Klicken Sie in einer beliebigen Disassemblierungs- oder Pseudocode-Ansicht mit der rechten Maustaste, um auf Folgendes zuzugreifen:
| Aktion | 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 |
Anforderungen
- IDA Pro 9.0+ mit Python 3 und PySide6
- Hex-Rays Decompiler (empfohlen für Pseudocode-Funktionen)
- Python-Pakete, die in
requirements.txtaufgeführt sind
Dokumentation
- Dokumentationsindex
- Erste Schritte
- Reiter-Referenzen: Erklären | Abfrage | Aktionen | Semantischer Graph | RAG | Einstellungen
- Arbeitsabläufe: Erklären | Abfrage | Semantischer Graph
Homepage
Lizenz
Details finden Sie in der LIZENZ-Datei.