Why Maintain Separate Skill Modules for IDA and radare2? Architecture of the reverse-skill Repository

Separate skill modules for IDA and radare2 exist because the tools serve fundamentally different purposes, licensing models, and integration workflows that cannot be cleanly merged into a unified binary analysis skill.

The zhaoxuya520/reverse-skill repository organizes binary-analysis capabilities into distinct modules to preserve deterministic routing, respect tool-specific constraints, and maintain clean separation of concerns. This architecture ensures that the master-route.ps1 router can select the correct toolchain based on user intent and environment availability.

Core Architectural Reason: Different Tool Purposes and Workflows

The routing definitions in skills/routing.md explicitly separate the two tools because they address different use cases within reverse engineering workflows.

IDA Skill (ida-reverse/)

The IDA skill targets full-featured GUI decompilation with commercial-grade analysis capabilities:

  • Primary function: Hex-Rays decompilation, cross-reference analysis, and type recovery through IDA Pro's MCP HTTP server
  • Workflow: Launch IDA → MCP listens on 127.0.0.1:13337 → execute decompilation via GUI or API
  • Integration point: Documented in skills/ida-reverse/references/ida-mcp-cheatsheet.md

# Router selects IDA skill based on hint matching

powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/master-route.ps1 -Hint "IDA decompile PE"

# Matches routing_benchmark.json entry targeting ida-reverse/

radare2 Skill (radare2/)

The radare2 skill provides lightweight CLI analysis for rapid reconnaissance and automation:

  • Primary function: Command-line static analysis via r2, rabin2, rasm2, and companion tools
  • Workflow: Execute skills/radare2/scripts/recon.ps1 or direct CLI commands → collect metadata → optional MCP integration via r2mcp
  • Integration point: Tool discovery entries in skills/scripts/lib/ToolDiscovery.ps1

# Router selects radare2 skill based on distinct hint

powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/master-route.ps1 -Hint "radare2 analyze binary"

# Matches routing_benchmark.json entry targeting radare2/

Licensing and Distribution Constraints

The separation is partially enforced by incompatible licensing models:

Aspect IDA Pro radare2
License Commercial (requires Hex-Rays license file) Open-source (GPL/LGPL)
Availability Windows/macOS primary; restricted distribution Universal package manager installation (Homebrew, APT, GitHub releases)
Cost Prohibitive for individual/casual use Zero-cost, immediate deployment
CI/CD suitability Limited (requires licensed environment) Native support for headless pipelines

Because IDA Pro requires a commercial license and controlled distribution, the ida-reverse skill must handle authentication, license validation, and platform-specific paths. The radare2 skill assumes ubiquitous availability and focuses on rapid tool discovery and script execution. Merging these would introduce unnecessary complexity for the open-source workflow.

Router Implementation: Deterministic Skill Selection

The master-route.ps1 router relies on explicit skill boundaries to function correctly. The routing matrix in skills/routing.md defines non-overlapping capabilities:

This design follows the principle of single responsibility: each skill contains only the scripts, references, and MCP glue code required for its specific tool. Key implementation files include:

Maintenance and Contributor Isolation

Separate modules reduce regression risk and enable parallel development:

  • Contributors can extend radare2 scripts (recon.ps1, r2mcp integration) without affecting IDA's MCP server configuration
  • IDA-specific documentation (ida-mcp-cheatsheet.md) remains focused on commercial workflow nuances
  • Version pinning and dependency management stay independent per toolchain

Summary

  • The reverse-skill repository maintains separate IDA and radare2 modules to accommodate fundamentally different tool purposes: GUI decompilation versus CLI analysis
  • Licensing constraints prohibit unified distribution—IDA Pro is commercial, radare2 is open-source
  • The skills/routing.md matrix and master-route.ps1 router require deterministic hint-to-skill mapping that separate modules provide
  • Single-responsibility design isolates maintenance, reduces regressions, and supports divergent contributor workflows
  • Key files: skills/routing.md, skills/ida-reverse/references/ida-mcp-cheatsheet.md, skills/scripts/lib/ToolDiscovery.ps1, skills/radare2/scripts/recon.ps1

Frequently Asked Questions

Can the IDA and radare2 skills be used interchangeably for the same binary?

No. While both perform static analysis, the IDA skill requires a commercial license and excels at deep decompilation with type recovery. The radare2 skill is license-free and optimized for rapid reconnaissance and automation. The routing_benchmark.json hints explicitly distinguish these use cases.

How does the router decide between IDA and radare2?

The master-route.ps1 script parses hints through skills/routing.md mappings. Hints containing "IDA decompile" route to ida-reverse/; hints with "radare2 analyze" route to radare2/. The ToolDiscovery.ps1 library then locates the appropriate executables.

Why not create a unified "binary-analysis" skill with tool selection logic inside?

Internal tool selection would violate the repository's explicit routing architecture. The MASTER-ROUTING.md design requires skills to be self-contained and directly addressable. A unified skill would also force all users to handle IDA's licensing constraints even when only radare2 is needed.

Is radare2 support complete compared to IDA in this repository?

The radare2 skill structure exists with skills/radare2/scripts/recon.ps1 and tool discovery entries, though the full SKILL.md documentation appears to be under development. The IDA skill has more mature documentation in skills/ida-reverse/references/ida-mcp-cheatsheet.md.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →