ARTICLE · 1310265
手搓指南|REA:让 AI 拆懂没源码的软件
想搞懂一个没源码的软件是怎么做的,以前要啃反汇编、装 Ghidra、对着字符串表猜函数用途。
「逆向工程师」成为一个高门槛的专门职业。
后来有了 AI 辅助,多是手动把反编译结果复制粘贴给 ChatGPT,一来一回,AI 看到的是切片不是整体。
REA 就是专门解决这个问题的。
它是一个开源的 MCP 服务器(MCP,Model Context Protocol,给 AI agent 接工具的标准协议),把反编译器、抓包分析、APK 拆解这些逆向工具统一打包,交给 Claude Code、Codex 这类 Coding Agent 调用。
Agent 自己决定用哪把工具、自己追代码、自己验证,你只负责问问题。
我在 macOS(Apple Silicon,Node v26.13.0,rea-agents 6.8.0,Claude Code 2.1.311)上把完整链路实跑了一遍,从安装注册到 agent 给出带证据的分析结论,全部跑通。
分析对象选的是开源 Electron 项目 electron-quick-start。Ghidra 和原生二进制路线本机没装,未验证,文中如实标注。
今天就来详细介绍一下这个项目。
一、REA 是什么?
REA(Reverse Engineer Anything)是一个免费开源的逆向工程工具集,MIT 协议,通过 MCP 协议接入各类 Coding Agent。
它不提供新的 AI 模型,也不是 Ghidra 或 IDA 的替代品。
它更像一个给 Agent 装的工具箱:Agent 是那个很聪明的实习生,REA 负责递工具。
能分析的目标类型很多:原生二进制、Electron 和 JS 应用、.NET 程序、Android APK、网站行为、抓包文件、固件,甚至 EVM 字节码。
不同目标的门槛差得很远:
项目 2026 年 4 月建仓,10 月 9 日才刚过 1 万星,到 10 月底已经 40 万上下,光第 44 周一周就涨了 22.9 万星,官方 README 的庆祝图数字一直在往上改。
一个关键卖点:结论带证据。
REA 返回的每个结论都附来源,哪个文件哪个位置,没弄明白的地方会明确标 unknown,不编。这一点比「AI 帮你逆向」本身更重要,因为逆向最怕的就是 AI 一本正经地胡说。
二、值得关注的功能
1. 一句话让 Agent 拆一个 Electron 应用
假设你接手了一个没源码的 Electron 客户端,老板问「它这个自动更新是怎么实现的」。
传统方式是自己解包 asar、逐个读压缩后的 JS,或者把文件喂给 ChatGPT 一段一段问。
使用 REA,在 Claude Code 里说一句话:「用 REA 分析当前目录的 Electron 应用,说明窗口怎么创建、渲染进程和主进程怎么通信,每条结论附证据,不确定的标 unknown。」
Agent 会自己调用 REA 的分析工具,拿到带精确定位的发现,再整理成回答。
我实测拿到的回答,每条结论后面跟着节点 ID 和 `location: main.js:7:21-13:4` 这样的定位,外加一个总 Evidence ID。
「渲染进程与主进程无 IPC 通信」这个否定结论也附了证据,并明确标注了边界:静态未发现不等于运行时不存在。
不过需要注意的是,REA 的分析结果会经过你的 AI 助手发回模型厂商(Anthropic、OpenAI、Google 等),受它们的数据政策管。REA 本身在本机分析不上传文件,但敏感目标动手前要把这层想清楚。
2. 安装只要一条命令,自动适配你已有的 Agent
REA 支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等 20 多种 Agent,只要支持本地 MCP server 就行。
安装时跑一条 `npx rea-agents setup`,它会自动检测你本机装了哪些 Agent,列出要改的配置文件(有备份),你确认后才动手。
也支持无人值守装法,我实测注册到 Claude Code 用的命令是:
不过需要注意的是,setup 之后必须重启 Agent 才生效。我实测确认 MCP 不热加载,当前会话里注册完是看不到的。
另外官方反复强调,只从三个官方渠道安装:morluto/rea 仓库、rea.tools 官网、npm 的 rea-agents 包。名字长得像的仓库不代表是官方下载。
3. 命令行可以直接空跑,先确认工具链是好的
让 Agent 上之前,可以先不经过 AI,直接用 CLI 分析一个目录:
我实测 electron-quick-start:命令正常退出,stdout 输出约 260KB 的 JSON,stderr 打进度日志。
这一步的价值在于,跑通后再让 Agent 上,出问题时你能分清是 REA 的锅还是 Agent 的锅。
不过需要注意的是,验证结果时别看 `statistics.modules` 字段,我实测小项目里它就是 0。这个字段只统计 webpack 这类打包器模块,普通 Electron 源码项目本来就是 0。要看 `statistics.findings > 0` 和 `parse_failures: 0`,再对照 `summary` 里的 browser_windows 等计数和源码对不对得上。
4. 分析结果自带证据链和体检工具
REA 的设计是强制 Agent「每说一个结论都指出证据在哪」。
配套还有 `rea doctor` 命令做环境体检,检查缺什么、配错什么。
遇到诡异问题先 `rea update`,这个项目迭代很快,旧教程里的版本号基本不可信。我写稿时 README 要求 Node 22.23.4 以上或 24.22.1 以上或 26.12.1 以上,早期中文报道写的数字已经过时,以 README 当前要求为准。
不过需要注意的是,如果你用 `claude -p` 无头模式跑,默认不授权 MCP 工具,REA 的调用会被权限拦截,Agent 只能退回自己直接读文件,回答里就没有 Evidence ID 了。要加 `--allowedTools "mcp__rea__*"`,我实测有效。
三、和 Ghidra、IDA 直接上手有什么区别?
先说老路线。
单用 Ghidra,你需要自己装软件(NSA 出品,免费开源,界面劝退)、自己加载二进制、自己看反编译结果、自己判断哪段代码是关键逻辑。
这条路今天依然成立,职业逆向工程师依然这么干活,IDA 也依然是行业标杆。
REA 不替代它们中的任何一个。
拆原生二进制时,Ghidra、Hopper、IDA 仍然是干活的引擎,REA 是把这些引擎和静态解析、抓包分析等手段统一封装,让 Agent 能自己调用。
区别在于谁来做判断和搬运:老路线是你对着 Ghidra 的界面做,REA 路线是 Agent 调工具、追线索、汇总证据,你负责问对问题和验收证据。
还有一个实际的差别是门槛。拆 Electron 和 JS 应用时,REA 不需要任何反编译引擎,装了 Node 就能玩,这是我推荐新手的起步路径。官方 showcase 里「追踪 Notion 剪贴板桥接」就是这个路数。
反编译器怎么选(只拆原生二进制才需要):
• Ghidra:免费开源,新手推荐,macOS 上 brew 主仓没有收录,要从 ghidra-sre.org 或 GitHub Releases 手动下载
• Hopper:macOS 体验最好,有免费 demo,REA 安装时可以经你批准帮你装
• IDA:行业标杆,商业授权很贵,必须合法取得,REA 不会也不会给你 license
这部分 Ghidra 路线我没实测,本机没装,信息来自官方文档。
四、适合哪些人?
我觉得主要有三类:
1. 想学习成熟软件实现方式的开发者:比如想知道某个 Electron 应用的窗口管理、自动更新、IPC 通信是怎么写的,拿来参考自己的项目。
2. 接手了没源码客户端的维护者:需要快速搞清楚它的行为逻辑,回答「这个功能到底怎么实现的」。
3. 安全研究和互操作方向的人:在自己的授权范围内分析软件行为。
不推荐两类人入:
只想快速看一个网页应用怎么写的,直接开浏览器 DevTools 看源码更快,不需要这套。
要分析敏感商业软件的,先看下一节的合规边界。REA 官方 DISCLAIMER 的立场很明确:用于合法研究、教育、互操作、软件保存,以及分析你拥有或被授权检查的软件。逆向工程本身在很多法域合法,但拆懂客户端之后去逆向某网站的 API、绕过限制、爬数据,就是另一回事了,服务端接口有单独的服务条款管着。
给自己划三条线:拆自己买的、自己开发的、开源的软件最安全;碰服务端接口是灰色地带;不信任的二进制要在虚拟机里跑。
五、目前还有哪些不足?
虽然链路跑通了,但有几个地方要注意。
• Ghidra 和原生二进制路线依赖额外安装反编译引擎,macOS 上 brew 装不了 Ghidra,手动配置 `GHIDRA_INSTALL_DIR` 这一步我没验证。
• setup 是幂等的,第二次跑 appliedActions 会是空的,状态 ready 就是成功,别误判成没装上。
• 分析大型二进制时引擎启动慢,可能超时,要设 `REA_GHIDRA_STARTUP_TIMEOUT_MS` 或 `REA_HOPPER_STARTUP_TIMEOUT_MS` 加大时限。
• Linux 上 JS 和 Electron 分析依赖 procps 兼容的 ps,缺了会报错,恢复步骤在官方 docs/installation.md。
• Hopper 首次无人值守跑会卡在激活弹窗,要先手动打开一次完成选择。
• REA 只是工具箱,不含任何 Agent 订阅和模型额度,该花的钱一分不少。
• 迭代快是双刃剑:bug 修得快,但教程(包括这篇)里的版本号和参数随时可能变,动手前以 README 为准。
六、最后说说我的看法
以前觉得「看懂别人的软件」是一个专业岗位才能做的事。
REA 把这件事的门槛降到了「会问问题、会要证据」。我的完整实测链路是:环境检查、setup 注册、CLI 空跑、Agent 提问后拿到带 Evidence ID 的结论,一条下午就能走完。
Karpathy 上周末刚给了一个拆懂之后能干嘛的演示。周五晚他刷 YouTube 被注水内容劝退,周六早上跟 Opus 说了一句话:「基于 Hacker News 上被推荐过的视频,写一个我们自己的 YouTube。」两个小时后 hackertube.org 上线。他自己只做了三件事:开 API key、开 VPS、买域名。
把这条线和 REA 串起来看:REA 负责「拆懂」,没有源码也能理解别人的软件为什么好用;Agent 负责「搓出」,理解之后从数据到界面到部署一晚上出活;人负责问对问题,和握住 API key、服务器、域名这几个不能外包的动作。
不过要说 REA 能取代 Ghidra 或让人人都是逆向工程师,还太早。原生二进制路线的门槛依然在,合规边界也依然在。
如果你手边正好有一个想搞懂的 Electron 应用,REA 值得花一个下午试试。
附:实测跑通的完整步骤
以下实测(macOS,Apple Silicon)。想跟练先 `git clone --depth 1 https://github.com/electron/electron-quick-start.git`。
质检方法:好的回答应该每条结论带文件和定位,没有证据支撑的断言要追问。如果回答开头坦白「REA 工具没权限,我改用直接读源码了」,说明工具没通,先修权限再重跑。
附:坑速查表
一个常被误会的点:setup 的配置备份、默认拒绝再确认,这些是设计好的安全行为,不是坑,照提示走就行。
参考
• REA 官方仓库:https://github.com/morluto/rea
• REA 官网与上手指南:https://rea.tools/ (showcase 有 Notion、DX-Ball 完整案例)
• Karpathy《HackerTube》:https://karpathy.bearblog.dev/hacker-tube/ (原文存档:[[2026.11.01 Karpathy-HackerTube]])
• 中文报道:oschina.net/news/502941 · cnblogs.com/tzhuwb/p/23291713 · inside.com.tw/article/42615
• 安全风险分析:36kr.com/p/4019721614169733
项目地址
• 官网:https://rea.tools/
• GitHub:https://github.com/morluto/rea
• npm:https://www.npmjs.com/package/rea-agents
#AI #ReverseEngineering #OpenSource #MCP
*一句话总结:拆懂别人的软件,你不再需要成为逆向工程师,只需要学会一件事,向 AI 要证据。*
如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下期见 👋🏻
一起理性看 AI
本期关键词














































































