Large language models are powerful analysis assistants, but they hallucinate and struggle with low-level details — especially integer conversions, obfuscated code, and numerical reasoning. A well-structured prompt steers the model toward tool-assisted analysis instead of guessing, dramatically improving the quality of results for reverse engineering tasks.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mrexodia/ida-pro-mcp/llms.txt
Use this file to discover all available pages before exploring further.
Starter prompt
The following minimal prompt covers the most important constraints for crackme-style analysis. It enforces tool use for number conversions, discourages brute-force shortcuts, and produces a written report.Comprehensive analysis prompt
This prompt by @can1357 is better suited for thorough, multi-file reverse engineering work. It structures the workflow into phases, delegates deep dives to sub-agents, and ties documentation to project goals.Tips for LLM accuracy
Use int_convert, always
Never ask the LLM to convert between hex, decimal, or bytes manually. Always instruct it to call the
int_convert MCP tool. Conversion errors silently corrupt analysis.Use Lumina / FLIRT
Apply Lumina or FLIRT signatures before starting an LLM session. Resolving standard library and open-source code removes noise and significantly improves decompiler output quality.
math-mcp for arithmetic
For complex calculations (cryptographic constants, hash checks), add math-mcp alongside IDA Pro MCP so the model can offload arithmetic to a dedicated tool.
Fix obfuscation first
LLMs perform poorly on obfuscated code. Remove obfuscation before starting analysis — see the section below.
Handling obfuscated binaries
LLMs will not perform well on obfuscated code. Before using an LLM to solve the problem, spend time removing the following obfuscation layers — preferably with automated tooling:String encryption
String encryption
Encrypted strings produce unreadable decompiler output. Emulate or script the decryption routine and apply the results as comments or renamed globals before starting LLM analysis.
Import hashing
Import hashing
Import-by-hash loaders hide the Windows API surface. Resolve hashes to symbol names using known hash databases or a short script, then apply the names to the IDB.
Control flow flattening
Control flow flattening
Flattened control flow (e.g., from OLLVM) turns readable logic into an unrecognizable dispatcher loop. Use a deobfuscator such as D-810 or miasm to restore structured control flow first.
Code encryption / self-modifying code
Code encryption / self-modifying code
Encrypted code regions will decompile as garbage. Identify decryption stubs, emulate them, and reanalyze the decrypted bytes before asking the LLM anything about that region.
Anti-decompilation tricks
Anti-decompilation tricks
Opaque predicates, fake calls, and bogus instructions confuse Hex-Rays. Patch them out at the IDB level before decompiling.