buzzer-re/Rikugan

A reverse-engineering agent for IDA Pro and Binary Ninja

Rikugan (六眼) – AI 驱动的逆向工程助手

简介 – Rikugan 是一个运行于 IDA Pro 或 Binary Ninja 内部的插件/代理。它将大型语言模型 (LLM) 直接嵌入反汇编器界面,让您能与模型对话以执行分析任务。LLM 作为推理引擎;Rikugan 协调 60 多种内置“工具”(例如:导航至函数、查询交叉引用、反编译、编辑类型、执行脚本),并代表用户调用它们。

运作方式 –

  • 该代理运行基于生成器的轮询循环:用户消息触发流式 LLM 回应;当模型发出 tool-call 标记时,Rikugan 会拦截它,执行对应的内部工具,并将结果反馈给模型。
  • 协调器首先映射二进制文件(导入、导出、字符串、关键函数),并能产生并行工作的隔离子代理,随后合并它们的发现。
  • 上下文(函数列表、反编译器输出、IL 等)会提供给模型,以便它能对二进制文件进行推理,且代理能将笔记持久化存储于数据库旁的 RIKUGAN.md 文件中。

主要功能

功能 您将获得
60+ 分析工具 导航、反编译器查询、字符串提取、类型注释、IL/微码编辑、脚本执行等。所有工具在执行前均需明确的用户批准。
自然语言补丁 (实验性) 用简单的英文描述变更 (/modify …),Rikugan 将定位相关代码、生成补丁并应用它。
去混淆 (实验性,仅限 Binary Ninja) 一项专门技能,可检测控制流平坦化、不透明谓词、MBA、垃圾代码,并透过 IL 写入将其移除,将典型的人工去混淆时间缩短约 3 倍。
并行子代理 协调器可启动多个隔离代理,同时探索二进制文件的不同部分,然后合成一份统一报告。
配置文件 细粒度配置 LLM 可读取的数据及可调用的工具,外加自定义规则定义。
LLM 提供者无关 适用于 Anthropic Claude、MiniMax、Gemini、Kimi、开源模型 (LLAMA-70B, GPT-120B)、任何 OpenAI 兼容端点以及本地 Ollama 服务器。
MCP 集成 可重复使用 Claude Code 的 MCP 生态系统中的技能与服务器,但不依赖外部 MCP 客户端。
持久化记忆 发现结果会存储至 RIKUGAN.md 并在后续会话中重新加载。

安装 – 一行脚本即可检测 IDA、Binary Ninja 或两者:

# Linux/macOS
curl -fsSL https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/buzzer-re/Rikugan/main/install.ps1 | iex

Windows 用户还必须安装最新的 Visual C++ Redistributable 2015-2022 (x64),因为 Rikugan 依赖 IDA 捆绑的 PySide6/Shiboken Qt 绑定。

典型工作流程

  1. 在 IDA Pro 或 Binary Ninja 中打开二进制文件。
  2. 按下 Ctrl+Shift+I – 出现聊天窗口。
  3. 询问自然语言问题(例如:“这个函数做什么?”)或发出指令 (/deobfuscation, /modify …)。
  4. Rikugan 流式传输 LLM 的回答,调用请求的工具,并直接在界面中返回结果。
  5. 审阅生成的 RIKUGAN.md 以获取洞察的永久记录。

适用对象 – 逆向工程师、恶意软件分析师、漏洞研究人员,或任何已经使用 IDA Pro/Binary Ninja 并希望通过 AI 协助加速导航、注释和去混淆,且无需离开反汇编器的人。

限制 / 注意事项

  • 补丁和去混淆功能标记为实验性;结果应手动验证。
  • 该代理从不执行目标二进制文件,但它确实会在主机内执行用户批准的脚本,因此受损的脚本可能会影响主机环境。
  • 需要兼容的 LLM 提供者和互联网连接(或本地 Ollama 服务器)– 性能和回答质量很大程度上取决于您选择的模型。
  • 在 macOS/ARM64 IDA Pro 搭配 Python 3.14 上存在已知的 Shiboken use-after-free 错误;README 建议为了安全起见保留在 Python 3.10。

重要意义 – Rikugan 展示了大型语言模型可以直接嵌入到底层分析工具中,将传统上人工、逐行的逆向工程过程转变为交互式、对话式的体验。通过自然语言公开丰富的工具箱,它降低了去混淆和二进制补丁等复杂任务的门槛,同时让分析师保持控制权。


链接

相关

  • 项目
  • 项目
  • 项目
  • 项目