idapin-mcp
idapin-mcp
Windows-Pipeline, die IDAs idadbg-PIN-Tool kompiliert, es mit IDA Pro verbindet und dasselbe Pintool jedem MCP-fähigen KI-Tool (Grok, Claude Desktop, Cursor, VS Code, …) ohne die IDA-GUI zu öffnen bereitstellt.
Dieses Repository enthält den vollständigen Projektquellcode: das Windows-Pintool (pintool/), den MCP-Server (src/idapin_mcp/) und die Installations-/Build-Pipeline (scripts/).
PIN instrumentiert einen laufenden Prozess. idadbg spricht das IDA-Pintool-Protokoll (v9). Der MCP-Prozess ist ein TCP-Client für dieses Protokoll, sodass KI-Tools die IDA-GUI nicht benötigen.
Intel PIN (pin.exe) ist hier nicht enthalten (Intel-Lizenz). scripts/setup.ps1 lädt das PIN-3.31-MSVC-Kit herunter.
Was Sie bekommen
Pfad | Rolle |
|
|
| MCP-stdio-Server ( |
| PIN herunterladen → Pintools bauen → IDA |
| Beispiel-Snippets für IDA + MCP |
AI client --stdio MCP--> python -m idapin_mcp --TCP--> pin.exe + idadbg*.dll --instrument--> target.exe
IDA Pro --dbg_pin.cfg--> pin.exe + same DLLs (optional GUI tracer)Related MCP server: headless-re-mcp
Voraussetzungen (Windows)
Windows 10/11 x64
Python 3.10+
Visual Studio 2017 oder neuer mit MSVC x86/x64 (2019, 2022, 2026 funktionieren alle; das Build-Skript wählt das neueste Toolset)
Windows 10 SDK (eine beliebige mit VS installierte Version 10.0.*)
IDA Pro 7.x/8.x/9.x optional, nur wenn Sie auch den GUI-PIN-Tracer möchten
Einmal Netzwerkzugriff, um Intel PIN 3.31 herunterzuladen (
pin-external-3.31-98869-…-msvc-windows.zip)
Administratorrechte sind nicht erforderlich, wenn Sie nicht in C:\pin schreiben können — setzen Sie -PinRoot "$env:LOCALAPPDATA\idapin-mcp\pin" (Pfade ohne Leerzeichen sind für PIN sicherer).
Setup mit einem Befehl
In PowerShell aus dem Repository-Stammverzeichnis:
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\setup.ps1Das bewirkt Folgendes:
Erstellt
%LOCALAPPDATA%\idapin-mcp\venvund führtpip install -e .aus.Lädt PIN 3.31 nach
C:\pinherunter (oder in den übergebenen Pfad).Kopiert
pintool/inPIN\source\tools\idapin, richtet das VS-Projekt neu aus und baut Win32 + x64 Release.Patcht
dbg_pin.cfgin jeder gefundenen IDA-Installation.Registriert den MCP-Server in den Benutzerkonfigurationen von Grok, Claude Desktop, Cursor und VS Code.
Starten Sie dann den KI-Client neu.
Benutzerdefinierter PIN-Speicherort:
.\scripts\setup.ps1 -PinRoot "$env:LOCALAPPDATA\idapin-mcp\pin"Schritt-für-Schritt-Anleitung statt des Sammelskripts: docs/windows-build.md.
MCP-Tools (für jedes KI-Tool)
Nach dem Start ist der Prozess bei PROCESS_STARTED angehalten. Setzen Sie Haltepunkte und setzen Sie dann fort.
Tool | Zweck |
| PIN + Pintool mit einer Windows-EXE starten |
| Sitzung und Debug-Ereignisse |
| Software-Haltepunkte |
| Register / Speicher |
| Steuerung |
| Zugeordnete Speicherabschnitte |
| Befehls-Tracing |
| PIN-Prozessbaum beenden |
Verwenden Sie idapin MCP:
pin_launchaufC:\Windows\System32\cmd.exemit den Argumenten/c echo hi, lesen Sie die Register, dannpin_resumeundpin_stop.
Manuelles MCP-Snippet: configs/mcp.example.json. Clientspezifische Hinweise: docs/ai-clients.md.
IDA Pro (GUI-Tracer)
setup.ps1 schreibt:
PIN_PATH = "C:\\pin\\pin.exe";
PIN_TOOL_PATH = "C:\\pin\\source\\tools\\idapin";
PIN_TOOL_OPTIONS = 1In IDA: Debugger → Select debugger → PIN tracer, dann F9. Details: docs/ai-clients.md.
Das Headless-idalib kann pin_user.dll nicht starten; deshalb spricht dieser MCP direkt mit dem Pintool.
Lizenz
Geteilte Lizenzierung. Der MCP-Server ist MIT-lizenziert; das Pintool nicht.
Baumstruktur | Lizenz / Urheberrecht |
| MIT — LICENSE |
| Hex-Rays Urheberrecht 2014–2019 — pintool/COPYRIGHT. Nicht MIT. In Quellform belassen, weil Intel die Weiterverbreitung kompilierter PIN-Tools verbietet. |
Intel-PIN-Kit ( | Intel. Nicht in diesem Repository. Separat herunterladen und Intels Lizenz akzeptieren. |
Siehe NOTICE. Lizenzieren Sie pintool/ nicht als MIT neu.
Committen Sie pin.exe, das PIN-Zip oder kompilierte *.dll-Dateien nicht.
Von einem Browser aus auf GitHub veröffentlichen (ohne Git-Installation): docs/publish-github.md.
Available Tools
15 toolspin_add_bptB
Add a software breakpoint at ea (hex or int).
Inputs: ea (required).
pin_del_bptB
Remove a software breakpoint.
Inputs: ea (required).
pin_eventsB
Return (and optionally clear) queued debug events from the pintool.
Inputs: clear.
pin_launchA
Start Intel PIN + idadbg on a Windows EXE (no IDA GUI). Leaves the process suspended at PROCESS_STARTED so you can set breakpoints, then call pin_resume.
Inputs: target (required), args, port, trace_insns, +1 more.
pin_meminfoB
List mapped image/section ranges from the pintool.
Inputs: no named parameters.
pin_pauseB
Pause the instrumented process.
Inputs: no named parameters.
pin_read_memA
Read up to 1024 bytes of target memory. Returns hex.
Inputs: ea (required), size.
pin_read_regsC
Read general-purpose registers for a thread.
Inputs: tid.
pin_resumeA
Resume after an event. eid defaults to the last received event (PROCESS_STARTED=1, BREAKPOINT=5, STEP=6).
Inputs: eid.
pin_set_traceB
Set tracing flags (TF_TRACE_INSN=2, TF_REGISTERS=0x10, TF_TRACE_EVERYTHING=0x40). Combine with bitwise OR.
Inputs: flags (required).
pin_statusB
PIN session status: connected, last event, paths.
Inputs: no named parameters.
pin_stepB
Single-step the given OS thread (tid 0 = last event thread).
Inputs: tid.
pin_stopA
Send EXIT to the pintool and kill the PIN process tree.
Inputs: no named parameters.
pin_trace_countB
Number of recorded trace events currently buffered.
Inputs: no named parameters.
pin_write_memC
Write hex bytes to target memory.
Inputs: ea (required), hex (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct debugger operation: session control (launch/status/resume/pause/step/stop), event retrieval, breakpoint add/del, register/memory read/write, and tracing. The only slight adjacency is pin_events vs pin_trace_count, but the descriptions clearly separate debug events from buffered trace events.
All tools use a uniform pin_ prefix in snake_case with predictable verb_noun or noun forms (pin_add_bpt, pin_read_mem, pin_set_trace, pin_status). No mixed conventions or casing inconsistencies.
15 tools is well-scoped for a debugger/instrumentation control surface, with each tool covering a necessary operation rather than redundant variants. The count supports full session lifecycle without bloat.
Core debugger coverage is strong: launch/attach, breakpoints add/remove, stepping, memory read/write, register read, memory map, tracing, and teardown. Notable gaps remain: no pin_write_regs (only read), no breakpoint enumeration/list, and no module/symbol lookup, which slightly limits register and breakpoint management workflows.
Maintenance
Related MCP Connectors
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Reasoning, code, anti-deception, memory harness MCP tools. Stdio or HTTPS api.ejentum.com/mcp
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Generate AI video, images and audio, and browse your history, from any MCP client.
Related MCP Servers
- FlicenseBqualityDmaintenanceA simple MCP server exposing persistent, scriptable Frida dynamic instrumentation to an AI agent for Windows reversing, malware/security analysis, and dynamic debugging.19-
- AlicenseNot gradedqualityBmaintenanceHeadless reverse engineering MCP server integrating IDA Pro for static analysis and x64dbg for dynamic debugging via controlled MCP tools.5GPL 3.0
- AlicenseNot gradedqualityFmaintenanceEnables AI-driven reverse engineering with x64dbg via 71+ MCP tools for breakpoints, memory, disassembly, tracing, debug control, PE analysis, and anti-anti-debugging, supporting HTTP, SSE, and stdio transports.2MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to autonomously inspect and control IDA Pro via MCP, providing tools for decompilation, disassembly, cross-references, renaming, typing, patching, searching, debugging, and arbitrary IDAPython execution.MIT