Binary Analysis / AI-Assisted RE
what it is
A reverse-engineering workflow that connects IDA Pro to AI agents through MCP (Model Context Protocol), letting agents perform mechanical analysis tasks — function triage, decompilation review, renaming, annotation — while a human directs the investigation.
problem / objective
Static analysis of a binary is mostly repetitive work: hundreds of functions to skim, obvious library code to identify and set aside, names and comments to apply so the interesting logic becomes visible. The objective was to delegate that mechanical layer to agents and spend human time on interpretation — the part that actually requires judgment.
environment
- IDA Pro 9.4 for disassembly and decompilation
- ida-pro-mcp plugin — an MCP server (69 tools) running inside IDA on
127.0.0.1:13337, exposing analysis operations to agent clients - Analysis targets: Windows system binaries, crackmes, and lab samples
architecture / design
The MCP layer exposes IDA's analysis surface — decompile a function, list xrefs, rename symbols, apply comments — as tools an agent can call. The human operator sets the goal ("triage this binary, find the interesting logic"), the agent does passes over functions and proposes annotations, and every change is reviewable in the database.
technical implementation
- Function triage — agent-driven first pass classifying functions (library noise vs. user code vs. interesting logic)
- Decompilation review — pseudocode summarization with the decompiler output as ground truth
- Annotation pipeline — renaming and commenting applied through IDA, reviewed before accepting
- Human-in-the-loop — the agent proposes, the analyst verifies; nothing lands in the database unchecked
security considerations / methodology
- Analysis targets stay on the analysis host — no binaries or proprietary artifacts sent to third parties
- Agent output is treated as untrusted: annotations are verified against the actual disassembly before they're accepted, because confident-but-wrong function names are worse than no names
interesting problems encountered
- Agent hallucination on ambiguous functions — requires verification passes, not blind acceptance
- Context-window limits on large or obfuscated functions — chunking and prioritizing what the agent sees first
what i built
- A working agent↔IDA analysis loop used on real binaries
- A triage workflow that compresses the "where do I even start" phase of an unknown binary
results
Noticeably faster triage on unknown binaries — the mechanical passes that used to eat hours get delegated, and the analysis session starts at the interesting functions instead of function zero.
evidence
what i learned / next steps
Where AI assistance actually helps in RE (mechanical passes, naming, summarization) and where it doesn't (novel logic, attacker intent — still human work). Next: tightening the verification pass and extending coverage to more analysis tasks.