Skip to content

Back to the catalog

rikugan: LLM reverse-engineering agent for IDA Pro and Binary Ninja
github.comrepo

rikugan: LLM reverse-engineering agent for IDA Pro and Binary Ninja

Rikugan is a reverse-engineering agent that runs inside IDA Pro and Binary Ninja. It has its own generator-based agent loop, context management, plan mode and 60+ tools, and does not depend on an external MCP server. An orchestrator spawns parallel subagents to analyze a binary. It supports Anthropic, Gemini, MiniMax, Kimi, OpenAI-compatible endpoints and Ollama, with per-model notes.

TL;DR Embeds a multi-provider LLM agent with subagents, plan mode and 60+ tools in IDA Pro and Binary Ninja for reverse engineering.
Also seen from another angle🛡️ Security →
Document

What it claims

Rikugan is a chat agent that opens inside IDA Pro 9.0+ (with Hex-Rays) or Binary Ninja (UI mode) with Ctrl+Shift+I. It analyses, annotates and, experimentally, patches binaries. The author says it was "vibecoded" with Claude Code: the first version took one night, it supported both hosts within two days, and it reached its current form in about three days. The author calls it a work in progress.

How it works

Each user message starts a generator-based cycle. The LLM response streams token by token, tool calls are intercepted and dispatched in-process, and the loop repeats. The loop supports error recovery, mid-run questions to the user, message queuing and a plan mode for multi-step work.

The 60+ tools cover navigation, decompiler output, disassembly, cross-references, strings, annotations, types, scripting, and host-specific IL and microcode manipulation. The agent asks permission before running scripts and never executes the target binary.

flowchart LR
  O[Orchestrator maps imports, exports, strings, key functions] --> A[Subagent 1]
  O --> B[Subagent 2]
  O --> C[Subagent N]
  A --> S[Orchestrator synthesis]
  B --> S
  C --> S

Other features:

  • /modify (experimental) takes a plain-English change request and applies patches. The demo makes a maze game let the player pass through walls.
  • /deobfuscation (experimental, Binary Ninja only) uses plan mode and IL read/write to remove control flow flattening, opaque predicates, MBA expressions and junk code.
  • Findings persist across sessions in RIKUGAN.md, which sits next to the database.
  • It ships 12 built-in skills, accepts custom skills, and can also use MCP servers. It can reuse skills and MCP servers from Claude Code and Codex.
  • Profiles limit which data the LLM can read and which tools it may call, and they can add custom filtering rules.

Evidence

The only measured claim is for deobfuscation: about 3x faster than the original manual workflow, which took about 4:30 minutes. No sample or setup is given. Model comparisons are the author's informal notes from local tests.

ModelAuthor's note
Claude Opus 4.6Best overall
Claude Sonnet 4.6Strong at lower cost
MiniMax M2.5 / HighspeedOn par with Opus, generous limits, low cost
Gemini 2.5 / 3 / 3.1 ProSolid, but hallucinates more than Anthropic or MiniMax
Kimi 2.5Lacks rigor for complex reverse engineering
LLAMA 70B / GPT 120B OSSNot production-ready for reverse engineering

Both Anthropic models use prompt caching. For them, the author recommends a Claude Pro/Max plan with OAuth over API billing.

How to use it

The installer detects IDA Pro, Binary Ninja or both.

curl -fsSL https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.sh | bash
irm https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.ps1 | iex

Requirements are Python 3.10+, at least one LLM provider, and Windows, macOS or Linux. Windows users need the latest Microsoft Visual C++ Redistributable 2015-2022 x64. Rikugan uses IDA's bundled PySide6/Shiboken, and an outdated runtime can crash it at startup. Manual setup and configuration are in the project docs.

Limits

  • With IDA Pro on Python 3.14 or later, Shiboken has a known use-after-free bug. Rikugan includes a workaround, but the author says Python 3.10 is the safest choice.
  • Patching and deobfuscation are marked experimental, and deobfuscation works only in Binary Ninja.
  • Binary Ninja headless mode is not supported, since the requirement is UI mode.
  • The README states no licence.
  • The install method pipes a remote script straight into a shell, so the script should be reviewed first.

Organisations named here

  • Anthropic
  • MiniMax
  • Google
  • Moonshot AI
  • Meta
  • OpenAI
  • Microsoft
  • Claude Code
  • Kimi
  • Ollama
  • Rikugan

Technologies named here

  • Claude Opus 4.6
  • Claude Sonnet 4.6
  • IDA Pro
  • Ollama
  • MCP
  • Claude Code
  • Codex
  • Model Context Protocol
  • Gemini
  • Llama
  • gpt-oss-120b
  • Binary Ninja
  • Gemini 2.5 / 3 / 3.1 Pro
  • GPT 120B OSS
  • Hex-Rays
  • Kimi 2.5
  • LLAMA 70B
  • MiniMax M2.5 / Highspeed
  • PySide6
  • PySide6/Shiboken
  • Python
  • Rikugan

Techniques named here

  • Plan Mode
  • Persistent memory
  • Prompt caching
  • Generator-based agent loop
  • Natural language patching
  • Orchestrator with parallel subagents