Was macht IDA Pro 逆向分析技能?
ACTION REQUIRED (nach dem Lesen sofort ausführen)
NOW: Lies../field-journal/precedent-reverse.md– bestätige, dass die Nutzung dieser Skill autorisiert und Routine istNOW: Prüfe, ob die aktuelle Aufgabe in den Anwendungsbereich dieser Skill fälltNEXT: Lies../tool-index.md, validiere die Verfügbarkeit und tatsächlichen Pfade der ToolsNEXT: Falls Tools fehlen, rufe Bootstrap auf, rate keine PfadeACT: Beginne mit Schritt 1 des Arbeitsablaufs und führe ihn aus, bleibe nicht im Bestätigungsstatus hängen
Bekannte Probleme und Reflexionen (Pflichtlektüre)
Gemachte Fehler
-
idb_open(früheridalib_open) nicht direkt über MCP-Aufrufe einiger KI-Clients verwenden- Der MCP-Client einiger Code-KI-Clients hat einen Bug bei der Output-Schema-Validierung von Open-Tools
- Fehler:
Structured content does not match the tool's output schema - Lösung: Verwende das Skript
scripts/open.ps1, das direkt über die HTTP-API aufruft und die MCP-Validierungsebene umgeht - Aktuelle ida-pro-mcp 2.x Toolnamen sind
idb_open/idb_list/idb_save(nicht mehridalib_*) - Nach dem Öffnen wird eine
session_id(Datenbank) zurückgegeben, nachfolgende Toolaufrufe benötigen diese Session
-
Keine Berechtigung zum Öffnen von Dateien in
C:\Windows\System32\- idalib kann Dateien im System32-Verzeichnis nicht direkt lesen
- Lösung:
open.ps1erkennt dies automatisch und kopiert die Datei in eintemporäres Verzeichnis, bevor sie geöffnet wird
-
Startserver-Befehl blockiert den Dialog
- Nach dem Start von
idalib-mcpwerden kontinuierlich INFO-Logs in die Konsole geschrieben - Lösung: Verwende
scripts/start.ps1(im Hintergrund mit-WindowStyle Hiddenstarten) - Das Skript wartet, bis der Dienst bereit ist, und beendet sich dann automatisch, ohne den Dialog zu blockieren
- Nach dem Start von
-
MCP-Servername darf keinen Bindestrich enthalten
- Früher wurde
ida-pro-mcpals Servername verwendet, was zu Problemen bei der Tool-Registrierung führen konnte - Aktuelle Konfiguration: Servername
idapro, Tool-Präfixidapro_*
- Früher wurde
-
Remote HTTP vs. Local Stdio
type:"local"(stdio) Modus:idalib_openhat ebenfalls Schema-Validierungsproblemetype:"remote"(HTTP) Modus: Datei kann zuerst mit Skript direkt geöffnet werden, dann MCP-Tools verwenden- Aktuelle Lösung: Remote HTTP Modus
-
PR #389 hat einige Schema-Probleme behoben
- Autor mrexodia hat nach Issue #388 mit PR #389 einen Fix eingebracht
- Behoben wurde das structuredContent-Schema im HTTP-Modus, aber die clientseitige Validierung einiger KI-Clients hat weiterhin Probleme
- Die neueste Version des
main-Branches ist installiert
-
Timeout von idalib hinterlässt verwaiste Worker-Prozesse mit gesperrten Dateien
- Nach einem Timeout des ersten
open.ps1-Aufrufs können Python-Worker-Subprozesse von idalib zu Waisen werden und.id0/.id1/.nam-Dateien blockiert halten - Nachfolgende Tool-Aufrufe oder manuelles Ziehen in die IDA GUI führen zu "Zugriff verweigert"-Fehlern
- Verboten:
taskkill /F /Tzum Töten der Prozessbaum –/Twürde auch den GUI-ida.exe-Subprozess beenden - Lösung:
start.ps1ersetzt den managed Supervisor nur, wenn der Port nicht belegt ist odertools/listschnell zurückkehrt, aberpy_eval(alter Supervisor) fehlt; bei RPC-Timeout und weiterhin aktiven 13337 wird als "beschäftigt" betrachtet, nicht getötet. Beim Öffnen schreibtopen.ps1eineopening.lock, Watchdog verwendet kein-Force - Deadlock-Ausnahme: Nur wenn
tools/listlänger als 3 Minuten kontinuierlich fehlschlägt (basierend auf last-healthy Zeitstempel, nicht Prozesserstellungszeit), kein in-flightopening.lockvorliegt und nicht die GUI den Port belegt, wirdstart.ps1 -Forceausgeführt;ida.exewird weiterhin nicht getötet - Notfalllösung:
open.ps1erkennt gesperrte alte Datenbanken, kopiert sie automatisch nach Temp und fügt ein GUID-Präfix hinzu
- Nach einem Timeout des ersten
-
Öffnen mit Auto-Analyse sieht aus wie eingefroren
idalib_open(run_auto_analysis=true)kann längere Zeit keine Antwort senden, während das Backend noch mit dem Öffnen und Analysieren beschäftigt ist- Der Benutzer sieht nur "PowerShell gibt keine Ausgabe" und schätzt das Skript fälschlicherweise als eingefroren ein
- Aktuelle Lösung:
open.ps1hat einen neuen-TimeoutSeconds-Parameter und verwendet Hintergrundanfrage + Vordergrund-Polling + regelmäßige Fortschrittsausgabe - Wenn die Session bereit ist, wird vorzeitig
OK:Dateiname:session_idzurückgegeben; bei Timeout wirdERR:open_timeout_xxszurückgegeben
-
HTTP MCP kann sich nach dem Login leise beenden
- Cursor/Claude mit
type: httpstartet den Prozess nicht automatisch neu; alte geplante Aufgaben laufen nur einmal beim Login pythonwhat keine Konsole, Application-Logs sind leer bei Abstürzen- Lösung:
start.ps1verwendet bei Gesundheit den bestehenden Supervisor;watchdog.ps1prüft minütlich; Logs in%LOCALAPPDATA%\reverse-skill\ida-mcp\ - Installation:
scripts/install-autostart.ps1. Wenn der HTTP-Client beim Start den Port noch nicht vorfindet, muss im MCP-Panel einmal manuell aktualisiert werden
- Cursor/Claude mit
-
Streamable HTTP GET
/mcpblockiert den Single-Thread-Supervisor- Einige HTTP MCP-Clients senden eine langlebige GET-Verbindung (SSE) an
/mcp. Der stockidalib_supervisorverwendetHTTPServermitbackground=False, das nur eine Anfrage gleichzeitig verarbeitet - Folge:
tools/listtimeout, Client markiertidaproals Fehler - Lösung:
run-supervisor.pyersetzt HTTP durchThreadingHTTPServerund akzeptiert GET/mcp; falls Patch fehlschlägt, wird er übersprungen und Supervisor trotzdem gestartet. Bei Blockade mitscripts/recover.ps1(sofort-Force) beheben
- Einige HTTP MCP-Clients senden eine langlebige GET-Verbindung (SSE) an
Arbeitsablauf-Prinzipien
| Schritt | Was tun | Womit |
|---|---|---|
| 1 | Sicherstellen, dass der HTTP-Server läuft | scripts/start.ps1 (ohne Parameter) |
| 2 | Ziel-Binärdatei öffnen | scripts/open.ps1 -Path "xxx.exe" |
| 3 | MCP-Analysewerkzeuge verwenden | Direkt idapro_* / HTTP-Tools aufrufen (ca. 65, je nach Version) |
| 4 | Analyse abgeschlossen | Tools automatisch verfügbar |
Skript-Ressourcen
start.ps1 – MCP-HTTP-Server starten
Pfad: scripts/start.ps1
- Analysiert
IDADIRautomatisch (Umgebungsvariable / portabler Desktop-Pfad / übliche Installationspfade) - Bevorzugt Verwendung von IDA-eigenem
Python314\python.exe -m ida_pro_mcp.idalib_supervisor - Standardmäßig wird zuerst
http://127.0.0.1:13337/mcpgeprüft, bei Gesundheit wirdOK:<n>:reuseausgegeben und beendet - 13337 hört, aber
tools/listtimeout →WARN:busy/OK:busy:reuse, nicht töten (keine Antwort beim Öffnen oder GUI-Belegung) tools/listlänger als 3 Minuten kontinuierlich fehlgeschlagen (last-healthy Zeitstempel) und keinopening.lock→ Deadlock erkannt, AusgabeINFO:deadlockund-ForceSupervisor-Ersatz. Laufendeidb_openund GUI gehen diesen Weg nicht- Nur wenn Port nicht belegt,
py_evalfehlt oder obiger Deadlock vorliegt, wird managed Supervisor ersetzt; niemalsida.exetöten, keintaskkill /T - Wenn GUI den Port 13337 belegt, Ausgabe
WARN:gui_busyund Beenden, kein separater Supervisor - Erfolgsausgabe
OK:<AnzahlTools>(aktuell ca. 66), FehlerausgabeERR:timeout - Supervisor-Logs:
%LOCALAPPDATA%\reverse-skill\ida-mcp\supervisor.log - Server läuft im Hintergrund, blockiert den Dialog nicht
Aufrufweise:
powershell -File "<skill-root>\ida-reverse\scripts\start.ps1"
watchdog.ps1 / recover.ps1 / install-autostart.ps1 – Lebenserhaltung
watchdog.ps1: Prüft 13337; bei Gesundheit reuse (und aktualisiert last-healthy); GUI /open.ps1Öffnungssperre / last-healthy weniger als 3 Minuten busy → reuse; nur beitools/listkontinuierlich fehlgeschlagen über 3 Minutenstart.ps1 -Forcerecover.ps1: Sofortstart.ps1 -Force(tötetida.exenicht). Wird verwendet, wenn HTTP-Clientidaproals Fehler markiertinstall-autostart.ps1: Registriert geplante Aufgabereverse-skill-ida-mcp(Login + jede Minute)- Logs:
%LOCALAPPDATA%\reverse-skill\ida-mcp\watchdog.log
open.ps1 – Binärdatei öffnen
Pfad: scripts/open.ps1
- Ruft
idb_opendirekt über die HTTP-API auf, umgeht die MCP-Schema-Validierung - Erkennt automatisch System32-Pfade und kopiert ins temporäre Verzeichnis
- Bereinigt automatisch gleichnamige alte Datenbankdateien (
.id0/.id1/.nam/.til/.i64) - Falls alte Datenbank gesperrt ist, automatische Herabstufung: Kopie nach Temp mit GUID-Präfix, kein Fehler
- Verschiebt die Öffnungsanfrage in den Hintergrund, vermeidet lange synchrone Wartezeiten, die das Skript blockieren
- Unterstützt
-TimeoutSeconds, gibt bei ÜberschreitungERR:open_timeout_xxszurück, keine Endlosschleife - Gibt alle 10 Sekunden
INFO:opening:verstrichenZeit/Sekundenaus, damit der Benutzer erkennt, dass die Analyse noch läuft - Erfolgsausgabe
OK:Dateiname:session_id, bei Herabstufung mit(temp copy)-Markierung - Bei Fehler automatischer Wiederholungsversuch über Temp-Kopie
Aufrufweise:
powershell -File "<skill-root>\ida-reverse\scripts\open.ps1" -Path "C:\path\to\file.exe"
Optionale Parameter:
# SessionId angeben
powershell -File "scripts\open.ps1" -Path "file.exe" -SessionId "my_session"
# Auto-Analyse überspringen (empfohlen für große Dateien)
powershell -File "scripts\open.ps1" -Path "large.exe" -NoAutoAnalysis
# Timeout setzen, um lange Wartezeiten bei Auto-Analyse zu vermeiden
powershell -File "scripts\open.ps1" -Path "file.exe" -TimeoutSeconds 600
Ausgabekonventionen:
# Analyse läuft (alle 10 Sekunden)
INFO:opening:11/600s
# Erfolgreich geöffnet
OK:sample.exe:abcd1234
# Erfolgreich geöffnet, aber aufgrund von Sperrdateien auf Temp-Kopie herabgestuft
OK:1234abcd-sample.exe:abcd1234 (temp copy)
# Timeout erreicht
ERR:open_timeout_600s
Praktischer Hinweis:
Snipaste.exemit Auto-Analyse dauert ca. 324s bis zur Rückmeldung – das ist "lange Analyse" und kein "Skript-Deadlock"- Daher bei GUI-Programmen oder komplexeren Samples explizit
-TimeoutSeconds 600setzen
Kernwerkzeugliste
Übersichtsanalyse (Schritt 1)
idapro_survey_binary(detail_level="minimal")– Schnelle Übersicht: Anzahl Funktionen, Strings, Segmente, Einstiegspunkt, Import-Klassifizierung (Verschlüsselung/Netzwerk/Datei-E/A)idapro_list_funcs(queries)– Funktionen auflisten (seitengestützt, nach Name filtern)idapro_list_globals(queries)– Globale Variablen auflistenidapro_entity_query(kind, filter)– Einheitliche Abfrage: functions/globals/imports/strings/names
Dekompilierung und Disassemblierung
idapro_decompile(addr)– In Pseudo-Code dekompilierenidapro_disasm(addr, max_instructions=N)– Disassemblierenidapro_analyze_function(addr, include_asm=false)– Umfassende Analyse (Pseudo-Code+Strings+Konstanten+Caller+Callees+Blöcke)idapro_func_profile(queries)– Funktionsübersichtskennzahlen
Cross-Referenzen und Datenfluss
idapro_xrefs_to(addrs)– Wer referenziert die Zieladresseidapro_xref_query(addr, direction)– Erweiterte Xref-Abfrage (Richtung/Typ-Filter)idapro_callees(addrs)– Unterfunktionen auflistenidapro_callgraph(roots, max_depth)– Aufrufgraphidapro_trace_data_flow(addr, direction, max_depth)– Datenflussspuren (forward/backward)
Suche
idapro_find_regex(pattern, limit)– Regex-Suche in Stringsidapro_search_text(pattern)– Text in der Disassemblierungsansicht suchenidapro_find_bytes(patterns, limit)– Byte-Muster-Suche (unterstützt ??-Wildcards)idapro_find(type, targets)– Erweiterte Suche (Immediate-Werte/Strings/Referenzen)
Speicher und Daten
idapro_get_bytes(addrs)– Rohe Bytes lesenidapro_get_string(addrs)– Strings lesenidapro_get_int(queries)– Integer-Werte lesenidapro_get_global_value(queries)– Globale Variablenwerte lesenidapro_read_struct(queries)– Strukturfeldwerte lesenidapro_search_structs(filter)– Strukturen suchen
Änderungsoperationen
idapro_set_comments(items)– Kommentare hinzufügen (bidirektionale Synchronisation zwischen Disassemblierung und Dekompilierung)idapro_append_comments(items)– Kommentare anhängenidapro_rename(batch)– Batch-Umbenennung (Funktionen/Globals/Lokale/Stack-Variablen)idapro_patch_asm(items)– Assembler-Anweisungen patchenidapro_patch(patches)– Bytes patchenidapro_define_func(items)– Funktionen definierenidapro_undefine(items)– Definition aufhebenidapro_define_code(items)– Bytes in Code umwandeln
Typsystem
idapro_declare_type(decls)– C-Strukturen/Enums/Unions deklarierenidapro_set_type(edits)– Typen auf Funktionen/Globals/Lokale anwendenidapro_infer_types(addrs)– Typen ableitenidapro_type_query(queries)– Deklarierte Typen abfragenidapro_type_inspect(queries)– Typdetails einsehen
Stack-Frames
idapro_stack_frame(addrs)– Stack-Frame-Variablen anzeigenidapro_declare_stack(items)– Stack-Variablen deklarierenidapro_delete_stack(items)– Stack-Variablen löschen
Signaturen
idapro_make_signature(addrs)– Eindeutige Byte-Signatur für Adresse generierenidapro_make_signature_for_function(addrs)– Signatur für Funktion generierenidapro_find_xref_signatures(addrs)– Signaturen für Code, der die Adresse referenziert, generieren
Debugger (benötigt ?ext=dbg)
idapro_open_file(file_path)– Datei in GUI-IDA-Instanz öffnen- Debugger-Werkzeuge sind standardmäßig ausgeblendet, können über URL-Parameter
?ext=dbgaktiviert werden
Sitzungsverwaltung (ida-pro-mcp 2.x)
idapro_idb_open/ HTTPidb_open– ⚠️ Empfohlen:open.ps1zum Öffnen verwendenidapro_idb_list/ HTTPidb_list– Alle Sessions auflistenidapro_idb_save/ HTTPidb_save– Datenbank speichern- Die meisten Analyse-Tools benötigen den Parameter
database=<session_id>(von open.ps1 ausgegebene Session)
Sonstige
idapro_int_convert(inputs)– Basisumrechnung (Muss verwendet werden, nicht selbst rechnen!)idapro_export_funcs(addrs, format)– Funktionen exportieren (json/c_header/prototypes)idapro_py_eval(code)– Python im IDA-Kontext ausführenidapro_server_health()– Server-Gesundheitsprüfungidapro_server_warmup()– Subsysteme aufwärmen (String-Cache, Hex-Rays usw.)
Vollständiger Reverse-Engineering-Workflow
Schritt 1: Server starten
Pfad A – Headless idalib (benötigt gültige Lizenz)
powershell -File "scripts/start.ps1"
Ausgabe OK:<AnzahlTools> (aktuell ca. 65) bedeutet bereit.
Pfad B – GUI + Plugin (falls idalib-Lizenz fehlschlägt oder interaktive Analyse nötig)
powershell -File "scripts/start-gui.ps1" -Path "C:\Ziel.exe"
Oder Doppelklick auf portable Launch-IDA-Pro.cmd und Sample in IDA öffnen.
Nachdem im Output-Fenster [MCP] ... port=13337 erscheint, sind die MCP-Tools verfügbar.
Allgemeine Anschlussschritte siehe LOCAL-SETUP.md.
Schritt 2: Datei öffnen
Headless:
powershell -File "scripts/open.ps1" -Path "C:\Ziel.exe" -TimeoutSeconds 600
Ausgabe OK:Dateiname:session_id bedeutet Erfolg (nachfolgend (temp copy) bedeutet automatische Herabstufung auf temporäre Kopie).
Bei ERR:idalib_license:... zu Pfad B (GUI-Modus) wechseln, nicht wiederholt open.ps1 versuchen.
GUI-Modus: Sample direkt in IDA öffnen, kein open.ps1 nötig.
Schritt 3: Globaler Überblick (inklusive Importtabellen-Zwangstor)
idapro_survey_binary(detail_level="minimal")
Beachte:
- Architektur (x86/x64/ARM)
- Einstiegspunkt (main/WinMain/DllMain)
- Interessante Strings (URLs, Pfade, Fehlermeldungen)
- Import-Klassifizierung (MUSS): Kryptofunktionen / Netzwerk-API / Dateioperationen / Prozessinjektion / Registry – muss als Evidence dokumentiert werden (empfohlen id:
E-imports), nutzeidapro_entity_query(kind="imports")oder den imports-Abschnitt der survey-Ausgabe - DLL/SYS: Exporttabelle und Importtabelle nebeneinander (Evidence
E-exports) - .NET: Bei fehlender traditioneller IAT Modul-/Metadaten-/Managed-Referenz-Zusammenfassung als gleichwertigen Anker in das E-imports Semantic Slot schreiben
- Saubere Importtabelle: Hinweis auf dynamisches Laden, treibe dynamische API-Breakpoint-Validierung voran
- Beliebte Funktionen (Funktionen mit hohen Xref-Zählern sind oft kritische Logik)
Hartes Tor: Bevor die Imports-Ansicht/Klassifizierungszusammenfassung (oder ein gleichwertiger Anker) nicht in Evidence geschrieben wurde, DARF NICHT zu Schritt 4 übergegangen werden, um Schlussfolgerungen zu vertiefen, DARF NICHT behauptet werden, dass der Überblick abgeschlossen ist. Wenn die Importtabelle leer ist oder die Abfrage fehlschlägt, MUSS dennoch die Fehlersituation aufgezeichnet werden. Wenn die IAT-Reparatur bei gepackten Dateien fehlschlägt, MUSS E-iat-repair-fail notiert und zur dynamischen Debugging-API-Erfassung übergegangen werden; statisches Verbeißen ist verboten. Wenn der Benutzer eine Wiederholung der Importtabelle/IAT-Prüfung anfordert, MUSS der genannte Schritt wiederholt werden (bei Blockade: Erklärung + Bestätigung; bei Zwang: Qualität = unreadable markieren), keine Abweichung zu irrelevanten Schritten.
Schritt 4: Tief in Schlüsselfunktionen
idapro_analyze_function(addr="Schlüsselfunktionsname")
Oder:
idapro_decompile(addr="Funktionsname")
idapro_disasm(addr="Funktionsname", max_instructions=50)
Schritt 5: Datenfluss und Cross-Referenzen
idapro_xrefs_to(addrs="Schlüsseladresse/String")
idapro_callgraph(roots=["Schlüsselfunktion"], max_depth=3)
idapro_trace_data_flow(addr="Schlüsseladresse", direction="backward", max_depth=5)
Schritt 6: Dokumentieren und Optimieren
idapro_set_comments(items=[{"addr": "0x140001000", "comment": "Dein Verständnis"}])
idapro_rename(batch={"func": [{"addr": "Funktionsadresse", "name": "Sinnvoller Name"}]})
Schritt 7: Bericht ausgeben
Nach Abschluss der Analyse report.md mit Erkenntnissen und Schritten erstellen.
Prompt-Engineering-Richtlinien
- Basisumrechnung nicht manuell durchführen – Bei Bedarf zur Zahlenumrechnung immer
idapro_int_convertverwenden - Erst Überblick, dann Tiefe – Zuerst Übersicht, dann gezielte Analyse
- Kontinuierlich Kommentare und Umbenennungen hinzufügen – Während der Analyse ständig Funktions- und Variablennamen aktualisieren, um die Genauigkeit der Folgeanalyse zu verbessern
- Cross-Referenzen verfolgen – Bei interessanten Daten/Strings mit
xrefs_toprüfen, wer sie referenziert - Bei obfuskiertem Code – Zuerst String-Entschlüsselung, Import-Hash-Entfernung, Control-Flow-Flattening-Entfernung usw. vorverarbeiten
- C++ STL-Code – Mit FLIRT/Lumina Bibliotheksfunktionen identifizieren, dann Geschäftslogik analysieren
- Nicht brute-forcen – Die Analyse sollte Lösungen aus der Disassemblierung ableiten, einfaches Python zur Berechnungsunterstützung verwenden
- Bei "No database bound" – Noch keine Binärdatei geöffnet, zuerst
open.ps1ausführen - Bei "Failed to open database" – Möglicherweise alte Datenbankdatei gesperrt,
open.ps1stuft automatisch auf Temp-Kopie herab (Ausgabe enthält(temp copy)-Markierung) - Beim Öffnen von GUI-/komplexen Samples mit Auto-Analyse – Standardmäßig
-TimeoutSeconds 600setzen, langesINFO:opening:...nicht fälschlich als Skript-Deadlock interpretieren
Routing-Kontext
Eingänge: skills/SKILL.md (Hauptsteuerung), routing.md
Alternativen: radare2/ (falls IDA nicht geöffnet werden soll, kann r2 zur schnellen Erkundung verwendet werden)
Ausgänge:
- Frida-Dynamische Validierung nötig →
reverse-engineering/tools-dynamic.md - Symbolische Ausführung/angr nötig →
reverse-engineering/tools-dynamic.md - Allgemeine Reverse-Engineering-Methodik nötig →
reverse-engineering/SKILL.md
Verwandte Module auf gleicher Ebene: radare2/ (Alternative, wenn IDA nicht verfügbar)
On-Demand-Bootstrap
Die Einstiegsskripte dieser Skill sind an das einheitliche Bootstrap-System angebunden.
Automatisierungsgrenzen
| Werkzeug | Automatisch installierbar | Installationsmethode | Beschreibung |
|---|---|---|---|
| idalib-mcp | ✓ | pip install (von GitHub) | Wird bei fehlendem start.ps1 automatisch installiert |
| IDA Pro | ✗ | Kommerzielle Software, manuelle Installation | IDADIR-Umgebungsvariable auf Installationsverzeichnis setzen |
Installationsschritte (verifiziert)
# 1. IDA-Pfad setzen (durch dein tatsächliches IDA-Installationsverzeichnis ersetzen)
setx IDADIR "<DeinIDAInstallationsverzeichnis>"
# 2. ida-pro-mcp von GitHub installieren (ida-mcp auf PyPI ist ein anderes Projekt, nicht verwechseln!)
pip install git+https://github.com/mrexodia/ida-pro-mcp.git
# 3. IDA-Plugin installieren (Streamable HTTP + Global + Alle Clients auswählen)
ida-pro-mcp --install
# 4. IDA Pro neu starten, Zielfile öffnen
# Plugin lauscht automatisch auf 127.0.0.1:13337
# 5. Überprüfen
ida-pro-mcp --config
⚠️ Hinweis: Das Paket
ida-mcpauf PyPI (Autor jtsylve) ist ein anderes Projekt, nicht das, das wir brauchen. Es mussmrexodia/ida-pro-mcpvon GitHub installiert werden.
Bootstrap-Auslöser
scripts/start.ps1: Fallsidalib-mcpfehlt, wird automatischbootstrap-reverse.ps1aufgerufen- MCP-Registrierung: Bootstrap schreibt
idaproautomatisch in die Claude-MCP-Konfiguration
Voraussetzungen
- IDA Pro installiert und
IDADIR-Umgebungsvariable gesetzt (oder Standardpfade im Skript korrekt) - Empfohlen: Verwendung von
ida-pro-mcpin IDA-eigenem Python314 (in portabler Version bereits enthalten) - Typische lokale Konfiguration:
- User env
IDADIR→ IDA-Installationsverzeichnis (mitida.exe) - Optional:
~\Tools\bin\idalib-mcp.cmd/ida-pro-mcp.cmdWrapper - Client-MCP-Servername: nur
idapro→http://127.0.0.1:13337/mcp
- User env
Aufgabenabschluss-Selbstkontrolle (MUSS vor Behauptung des Abschlusses bestanden sein)
- Habe ich jeden Schritt des Workflows ausgeführt (und nicht nur gelesen)?
- Wurde survey/imports in Evidence aufgenommen (E-imports oder gleichwertig)? Enthalten DLL/SYS E-exports? Wurde IAT-Fehler als E-iat-repair-fail notiert?
- Wenn der Benutzer eine Wiederholung der Importtabelle/IAT angefordert hat, habe ich denselben Schritt wiederholt?
- Habe ich basierend auf
tool-indexdie tatsächlichen Werkzeugpfade verwendet? - Habe ich reproduzierbare Beweise (Befehle/Skripte/Screenshots/Berichte) erzeugt?
- Habe ich die von RULES geforderten Checklistenpunkte abgeschlossen und zurückgeschrieben?