REA
更新于 2026-10-12 17:48:42
一句话总结
REA(Reverse Engineer Anything)把整条逆向工具链包装成一个 MCP 服务:装上它,Claude Code、Codex、Cursor 这类 Agent 就能直接分析原生二进制、Electron 应用、.NET 程序集、APK、固件甚至网站,并以「结论 + 证据」的方式回答——这个功能到底是怎么实现的。
它解决什么问题
过去想让 AI 帮你理解一个没有源码的程序,只能自己反编译、手动复制片段喂给模型,上下文碎且容易幻觉。REA 把这条路打通:Agent 通过 MCP 调用 REA 的工具,REA 在本地驱动 Hopper / Ghidra / IDA、JADX、pwntools、binwalk 等外部引擎做实际分析,再把伪代码、汇编、符号、调用关系等证据回传给模型,由模型组织成解释,或直接照着写一份可以编译运行的实现。
支持的分析目标(节选)
| 目标 | 返回内容 | 依赖 |
|---|---|---|
| 原生二进制 | 伪代码、汇编、字符串、符号、调用与引用 | Hopper / Ghidra / IDA 三选一 |
| JavaScript / Electron | 模块、导入、source map、路由、IPC、原生插件关系 | Node.js + npm,无需原生引擎 |
| .NET 程序集 | 元数据、CIL 指令、声明式原生依赖、构建差异 | 无(纯静态) |
| Android APK | Manifest 声明、类、反编译方法、引用关系 | 无头 JADX + 完整 JDK |
| Android 真机 | 设备、包、进程、日志、转储、抓屏、文件传输 | adb(模拟器或真机) |
| 网站 | 页面结构、脚本、网络观测、按需截图 | Chrome 系浏览器 |
| 固件 | 分区、提取结果、交给原生分析引擎 | Linux 上的 binwalk / unblob |
| 其他 | WASM 工件的校验与 WAT、EVM 字节码选择器、Go 二进制的编译版本与模块、Linux 崩溃现场、HAR 抓包、运行进程行为 | 按需 pwntools / WABT / mitmdump 等 |
上手
需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,然后一条命令:
npx rea-agents setup
向导会让你选择要接入的 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),审查并确认改动后,它会写入 MCP 服务端注册和配套的工作流说明(对已有配置做备份),重启 Agent 即可使用。也可以只装命令行版:
npm install --global rea-agents
rea --help
纯 JavaScript / Electron 应用不需要任何反编译引擎就能直接分析:
npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
原生二进制分析需要先配置 provider:Hopper 可以在你同意后由 setup 代为安装,Ghidra 与 IDA 使用你已有的安装。用 Ghidra 做后端时,遇到特别大的二进制可以调高 REA_GHIDRA_STARTUP_TIMEOUT_MS 再启动。项目迭代很快,装好后记得随手更新:rea update,或者重跑 npx rea-agents@latest setup 刷新注册信息。
实际体验
仓库的 Showcase 是最有说服力的部分:DX-Ball 的声像(sound-pan)计算还原——用 3205 组原始 x86 用例验证、并重建出与原始编译器完全一致的 63 字节函数;Notion 的 Electron 剪贴板桥追踪——从渲染进程 API 顺着 preload 和 IPC 摸到主进程与富文本剪贴板格式;PC-98 老游戏 TH04 的 16 位弹幕角度计算还原。这些都不是「模型猜代码」,而是 Agent 拿着真实反汇编证据逐步收敛出来的结果。
用下来最关键的差异是证据链被显式保留:REA 的结论里会带上依据与未解项(unknowns),比让模型凭空补全伪代码靠谱得多。
适合谁用
- 做互操作性、协议兼容、数据迁移,需要弄清闭源软件行为的人;
- 想给现有 IDA / Ghidra 工作流加一层 Agent 自动化的安全研究者;
- 分析 Electron 应用内部实现的前端 / 全栈开发者;
- 已经重度使用 Claude Code、Codex 等 Agent,想再给它加一双能看二进制的眼睛的人。
二开与集成
- 除 Agent 外也能当 CLI 用,方便塞进 CI 或脚本;支持快照与导入导出,适合做分析结果归档;
- 工具契约与提示词是文档化的(仓库内 MCP contracts / agent prompts 文档),可以据此写自己的客户端;
- 分析全程在本地进行,适合对上传敏感产物有顾虑的场景。
注意事项
- 定位是「辅助理解与重建」,不代替你对目标软件授权状态的判断:仓库 Disclaimer 要求只用于合法研究、教育、互操作与软件保护,只能分析你拥有或被授权分析的对象;
- Hopper、IDA Pro / Hex-Rays、JEB 都是商业软件,REA 只对接你的合法安装,不提供任何许可、密钥或激活;
- 需要 Node 22 以上的较新运行时,老环境要先升级;
- 遇到问题先更新再复现,并提供 REA 版本、目标类型、复现步骤与报错。
一句话总结
REA 把「逆向工程 + Agent」做成了标准接口:不用再手工搬运汇编片段,让模型直接在本地引擎产出的证据上推理,并顺带得到一份可用的实现。