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 绑定。
典型工作流程
- 在 IDA Pro 或 Binary Ninja 中打开二进制文件。
- 按下 Ctrl+Shift+I – 出现聊天窗口。
- 询问自然语言问题(例如:“这个函数做什么?”)或发出指令 (
/deobfuscation,/modify …)。 - Rikugan 流式传输 LLM 的回答,调用请求的工具,并直接在界面中返回结果。
- 审阅生成的
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 展示了大型语言模型可以直接嵌入到底层分析工具中,将传统上人工、逐行的逆向工程过程转变为交互式、对话式的体验。通过自然语言公开丰富的工具箱,它降低了去混淆和二进制补丁等复杂任务的门槛,同时让分析师保持控制权。
链接
相关
- 项目
- 项目
- 项目
- 项目