ARTICLE · 1135434
REA:让 AI 自己去逆向 App
REA 是一个把逆向工程引擎接给 AI Agent 的中间层。它自己不做反编译,而是把 Hopper、Ghidra、IDA 统一成一套接口,让 Agent 能像翻自己的代码一样翻一个没有源码的 App。MIT 协议,TypeScript,11,207 star,今天 GitHub 日榜第一(+2,963)。截至 2026-10-07。

REA 全称 Reverse Engineer Anything,仓库是 morluto/rea,形态是一个 MCP 服务器加一套命令行工具。
它要解决的场景很具体:你看到一个 App 里有个功能不错,想知道它是怎么实现的。以前的做法是你自己挑一个反汇编器、学它的脚本 API、把证据在几个程序之间搬来搬去、再决定下一步该看哪儿。REA 把这一整套交给 Agent——它去检查,解释功能是怎么工作的,把证据摆出来,然后帮你在自己的项目里做一个类似的。
有一点必须先说清楚:REA 自己不做反编译。真正干活的还是 Hopper、Ghidra 或 IDA,REA 只是把它们管起来,用统一的命令、结构化的结果和可复用的调查流程暴露给 Agent。所以它的实际能力,取决于你机器上本来装了什么引擎。
README 里也划了明确的边界:不保证还原原始源码,不做自动克隆。
① 它管的是"调查",不是"问答"
大多数 Agent 工具是一次性问答,问完就散。REA 保留了版本化的领域图谱和 Evidence 记录——Agent 可以从 App 的一个地方追到另一个地方,并且能说清楚自己是怎么得出结论的。
这一步恰恰是手工逆向里最烦的部分。你自己开 Ghidra 当然也行,但每问一个问题写一个脚本,输出散在几个文件里,发现 A 和发现 B 之间的关系全靠你自己记。REA 把这层关系存下来了。
② 三阶段工作流:反编译 → 理解 → 重建
它不是丢给你一堆伪代码就完事。工具矩阵铺得很细:原生检查 41 个、调查流程 14 个、应用工作流 13 个、工作区与观察 21 个,另有 Android APK 5 个、Electron 分析 5 个、浏览器观察 9 个。
覆盖的目标类型也广:Mach-O、ELF、PE、.app、APK、IPA、ASAR、DMG、.NET 程序集、固件。JavaScript 和 Electron 那部分做的是静态分析,不执行目标代码;要看运行时行为得单独走 capture。

③ 分析全在本地跑
README 里说得最硬的一条:分析在你的本机完成,REA 不会把 App 上传到任何托管服务。
对一个内部 Electron 构建或者商业二进制来说,这一条直接砍掉了一整类合规摩擦。代价是你的机器和你的引擎授权就是天花板——Hopper 是 macOS 上的付费商业软件,Linux 原生路径要你自己准备 Ghidra。
要求 Node 22.19 以上。装:
npx rea-agents@latest setup但先别急着跑这个。先跑 dry-run,它会打印计划、会写哪些配置文件、当前环境缺什么,什么都不改:
npx -y rea-agents@latest setup --dry-run我这边(Windows + Node 22.22.2)跑出来是这样的:
status: plannedplannedActions: []appliedActions: []doctor: healthy: false environment_healthy: false它列出了 6 个可以注册的客户端,以及各自的配置文件路径:
claude_code → C:\Users\...\.claude.jsoncodex → C:\Users\...\.codex\config.tomlcopilot_cli → C:\Users\...\.copilot\mcp-config.jsoncursor → C:\Users\...\.cursor\mcp.jsonopencode → C:\Users\...\.config\opencode\opencode.jsoncvscode → C:\Users\...\AppData\Roaming\Code\User\mcp.jsonplannedActions 和 appliedActions 都是空数组,说明这一步确实什么都没写。看完再决定要不要正式 setup。
装完之后的日常用法,命令行和 Agent 两种都行:
npx -y rea-agents@latest analyze /Applications/Notes.appnpx -y rea-agents@latest search /Applications/Notes.app "offline"npx -y rea-agents@latest xrefs /Applications/Notes.app 0x1000在 Agent 里则是一句自然语言。官方给的例子是:搞清楚 Notes 里的搜索是怎么做的,把证据给我看,然后在我项目里做一个类似的。
Windows 用户先别急着装。 我在 Windows 上跑 capabilities,输出里列了 75 个操作,只有 44 个标为可用;顶层 16 个能力里有 9 个直接标了 unsupported_host。Hopper 写的是 Hopper integration is not supported on win32.;Ghidra 那二十多个操作全部不可用,理由大意是——无法证明 Windows 上的进程隔离是可靠的(Job Object 的进程归属、私有 DACL 强制、路径重解析防护都没实现),chmod(0700) 不足以作为 Windows 私有 DACL 的证明。这是个挺认真的安全判断,但对 Windows 用户来说结果就是主要能力用不了。README 里写的 Windows 支持是实验性的、只读的,且仅限特定 PE。

它不还原原始源码。 反编译器给你的是伪代码,REA 不承诺更多。你要的是"把源码扒出来",这个工具不是干这个的。
需要你自带引擎。 REA 管安装和路由,但供不了分析引擎。没有 Hopper 也没有 Ghidra 的话,setup 问你要 provider 的时候你没东西可指。
版本迭代很快。 8 月 2 日发 3.0.0,8 月 9 日发 3.1.0,一周一个大版本。它要往六个客户端的配置里写 MCP 注册,所以每次升级都可能改变写进去的内容。官方说注册是增量、先备份、写完回读,这也是"重跑 setup 是安全的"的依据。想冻结行为就锁死版本号。
一句话:如果你在 macOS 上本来就有 Hopper,或者 Linux 上备好了 Ghidra,REA 省掉的是工具之间来回搬证据的那一步——而这恰好是手工做起来最难的部分。
项目地址:github.com/morluto/rea