先说个真事。上个月我在一个竞品 App 里看到一个滚动触发的懒加载,做得又快又准,我想把它摸清楚再复刻到自己项目里。可对方闭源,打包好的二进制里只剩一个 .so 文件。搁以前,这种活得开 Ghidra、一层层点反汇编、追调用栈,一晚上都不一定摸到门道。现在不一样了:我把一个叫 REA 的开源工具接进 AI 编程工具,先让它去拆,再把带证据的结论拿回来给我核对,半小时就有了头绪。
REA 全称 Reverse Engineer Anything,直译过来就是"逆向一切"。它的本质,是把专业逆向分析工具打包成一个 MCP 服务,喂给 AI 编程 Agent 用。卖点一句话能说清:没有源码,也能让 Agent 讲明白某个功能是怎么实现的,而且每条结论都贴着证据。
这项目最近在 GitHub 上势头很猛:81.3K Star、17.6K Fork,MIT 协议纯开源。npm 包去年 7 月首发,最新的 6.3.0 就是这几天刚发的。配套的官网 rea.tools 上连分步教程都备齐了。
注意看这个时间线------去年 7 月包就发了,为什么这半个月突然就火了?因为"Software is done"(软件做完了)这波讨论起来了:既然 Agent 能读文档、写代码、跑测试,那"看懂一个没源码的软件是怎么工作的"这件事,是不是也能交给 Agent?REA 正好卡在这个叙事上,把"逆向"这个原本需要多年功底的手艺,降维成了一条 npx 命令。再加上它挂了 MCP 这个通用协议,Claude Code、Codex、Cursor 都能直接接,扩散速度自然就快。
今天这篇,我从安装到跑通头一个带证据的分析任务,完整走一遍,前后 5 步。
环境准备
先看 Node 版本。REA 要求 Node.js 22.19+、24.11+ 或 26+。查一下:
bash
node -v
# v24.11.0
低于这几个版本就先去升级,不然 npx 会直接报引擎不支持。别的依赖几乎没有,浏览器、反汇编后端这些 REA 会按需自行处理,不用你手动配。平台方面 Linux、macOS、Windows 都能跑,原生二进制分析那条链路在 Windows 下走的是它自己的 native 模块,装的时候留意一下终端的输出就行。
第 1 步:安装
安装一条命令,走 npx:
bash
npx rea-agents setup
这条命令做两件事:往你的 Agent 里注册一个 MCP 服务器,再写入一套工作流提示词。跑完它会问想接哪个 Agent(交给下一步说)。不想用 npx 的话,也可以 npm 全局装:
bash
npm i -g rea-agents
rea --version
装完 rea 就进 PATH 了,CLI 用法和 Agent 模式共用同一套工作流。
想了解其他几款的实测数据吗?第二部分有完整的对比表格------【关注后查看完整对比】
第 2 步:接到 Agent
REA 是个 MCP server,你不直接跟它对话,而是把它接进 AI 编程工具,让 Agent 在对话里直接调它的分析能力。官方主要支持这几个宿主:
- Claude Code
- Codex
- Cursor
- DSH(DeepSeek Harness,走插件)
以 Claude Code 为例,rea-agents setup 会在本地配置里写入类似这样一段:
json
{
"mcpServers": {
"rea": {
"command": "rea-agents",
"args": ["mcp"]
}
}
}
改完重启 Agent,它就能识别 rea 这个工具了。Codex、Cursor 的写法跟上面 JSON 结构基本一致,只是落到各自不同的本地配置文件而已。DSH 那条路线更省事,直接在插件市场搜 ds-bot 或 rea 装就行,走的是 dsh-plugin 生态。
接完之后还有个隐藏前提:Agent 背后得有一个会用工具、能读长上下文的模型。REA 返回的是大段证据链,模型上下文短了会读不完整,选模型时最好挑 100K 上下文起步的。
第 3 步:验证
接好之后先别急着拆东西,跑一下自检,确认 Agent 真能调到:
bash
rea readiness
这条命令会逐个检查 Agent 注册、分析引擎(浏览器 / 反汇编后端)是否就绪,有问题直接提示缺哪一块。或者你直接在 Agent 里问一句"rea 现在能拆哪些目标",它应该回你一串支持的类型。这一步能提前暴露两类问题:一是 Node 版本不对,二是 Agent 压根没识别到 MCP server,都比分析到一半才发现要强。
第 4 步:跑头一个分析任务
验证过了,来点真的。挑一个你手上有权限分析的目标------我建议先用普通网页练手,别一上来就拆别人闭源商业软件。假设你想搞清楚某个网页的某个交互是怎么触发的,直接在 Agent 里说:
用 rea 看一下 example.com 首页滚动触发的懒加载是怎么实现的,把脚本证据给出来。
Agent 收到之后,会先调 REA 打开目标页面,抓页面结构、跑脚本、记网络请求、截屏,再把这几类原始材料拼成一份分析:哪段脚本负责监听滚动事件、触发条件是什么、懒加载的资源从哪个接口拉。关键点是,这份分析的每一句结论,都能回溯到具体的文件、具体的网络请求。你拿到的不是"大概是这样",而是一条能自己点开验证的证据链。
这里有个实操细节:REA 跑网页分析需要浏览器渲染,遇到带登录墙或验证码的页面会卡住。正确姿势是先在你的浏览器里手动登录、保持会话,再让 REA 复用这个会话来分析,它比自己硬闯验证码靠谱得多。
跑完你会拿到类似这样的结构:先是"结论"------这个懒加载由 scroll 事件监听器驱动,阈值是距底部 200px;接着是"证据"------news.js 第 42 行到 57 行的 addEventListener、两条 network 记录里拉到 /api/feed 的 XHR、以及触发瞬间的一张截图。结论可以商榷,证据不能嘴硬,这一段就是你能复核的底。
第 5 步:读证据链
REA 结果里最值钱的是那串"证据",具体分三类:
- snapshot:关键位置的截图与状态快照,告诉你"那一刻长这样"
- 文件引用:具体脚本 / 方法的行号引用,能直接点过去看
- 网络记录:请求和响应的对应关系,接口怎么调的看得一清二楚
别急着全盘信它。REA 的定位是"让 Agent 先追,人再来核对它给出的证据"。所以我自己的习惯是:结论只当线索,证据链才当事实;拿不准的地方,就让 Agent 顺着证据再深挖一层,别让它自由发挥。这跟用 AI 写代码是一个道理------产出越具体、越可验证,才越敢用。
CLI 模式也能跑
除开接进 Agent,REA 也提供独立的命令行入口。装好后直接敲:
bash
rea analyze --target https://example.com
CLI 和 Agent 走的是同一套工作流,只是把交互从"对话"换成了"命令 + 参数"。好处是能写进脚本、做批量分析,也不用牵挂 Agent 的上下文够不够长。对我这种偶尔才拆一次的人来说,平时留着 MCP 静默待命,需要时 CLI 出一条命令,是最省事的组合。
支持哪些目标
REA 支持的目标比"拆 App"宽得多,我把官方列的类型整理成一张表:
| 目标类型 | 分析方式 | 能拿到什么 |
|---|---|---|
| 网站 | 页面结构 + 脚本 + 网络 + 截图 | 交互实现、请求链路 |
| JS / Electron 应用 | 解包 + 静态分析 | 源码结构、调用关系 |
| Android APK / 设备 | 反编译 + 运行分析 | 组件、权限、行为 |
| .NET 程序集 | 静态查看 | IL 结构、方法列表 |
| HAR / mitmproxy 记录 | 回放网络流 | 请求 / 响应时序 |
| 原生二进制 | 接 Hopper / Ghidra / IDA | 伪代码、汇编、字符串、符号 |
这张表里藏着 REA 的真实边界:越靠近"网页 / 脚本"这类高层目标,它分析得越顺;越靠近原生二进制,它就越依赖你本地装好了 Ghidra、Hopper 或 IDA。原生二进制那行要单独说------REA 自己不做反汇编,它把这三款工具当后端来调。所以拆真正的二进制时,你本地得先有其中之一,否则会提示找不到后端。
跟手动开 IDA 差在哪
说到这,肯定有人问:那它跟直接开 IDA 手动拆,有什么不一样?我列个对比表:
| 维度 | REA(Agent 驱动) | 手动 IDA / Ghidra / Hopper |
|---|---|---|
| 上手门槛 | 一条 npx 命令 | 要懂反汇编、调用约定 |
| 产出形式 | 带证据的自然语言报告 | 伪代码 + 你自己读 |
| 追踪深度 | 按 Agent 上下文自动追 | 手动一层层点 |
| 结果可信度 | 证据链可回溯,仍需人工核对 | 依赖操作者水平 |
| 用在哪 | 快速摸清"怎么实现的" | 精确到指令级的深挖 |
一句话:REA 帮你把"从 0 摸到 1"的时间压下来,但"从 1 精确到 10"那段,还是得靠你对 IDA 那套的底子。它不是替代品,是个前置加速器。真要拆壳、脱混淆、逐条对指令,还是得乖乖回到 IDA 前面去。
合规边界
这块必须写清楚,因为逆向这行的水不浅。REA 官方声明:只用于合法的逆向研究、分析与重建,授权和合规由使用者自己负责,项目不认可非法或未授权使用。它还专门强调:从没发行过任何加密货币,打着 REA 名义的代币都跟它无关------这轮热度起来后,蹭名字的币已经在冒头了。
实务上记三条。一是只拆你被授权分析的目标:自己的软件、拿到许可的、明确开源的,这三类之外先停下来想想。二是拆之前先看对方的服务条款和版权声明,很多商业软件的授权里直接写死了"禁止反汇编",那就不碰。三是企业场景先问法务,因为反向工程在不同地区、不同授权下的边界差别很大,同一个动作在 A 国合规、在 B 国可能就踩线,这不是"免责声明"四个字能盖过去的。
常见问题
最后补几个我实际撞到的坑:
- npx 报 Node 版本不支持------就是版本问题,升到 22.19+ 即可。
- Agent 里 rea 工具不出现------八成是 setup 没跑完或 Agent 没重启,重跑一次 setup。
- 拆二进制提示找不到后端------本地没装 Ghidra / Hopper / IDA,装一个再重试。
- 抓不到的网站------带登录墙或验证码的页面,先手动登录会话再让 REA 分析。
到这里,从安装到跑通头一个带证据的分析任务,5 步就齐了。REA 这一波的火,本质是"逆向工程"这个高门槛技能头一次被 MCP 打包成了 Agent 能直接调的工具------门槛从"你得会反汇编"降到了"你有一条 npx 命令"。至于它能不能把你项目里那个"想抄又抄不了"的功能拆明白,装一个试试就知道了。
延伸阅读:Codex Harness 从零上手:3 层接口 + 5 步搭出自己的 Agent 应用
📌 系列文章
- MCP 协议实战:从零搭建一个 MCP Server
- AWS MCP Server 正式可用:从配置到实战
- MCP 迎来最大升级:从状态化到无状态,5 步迁移
- MCP vs MHS:5 个维度看懂 Claude 控制机械臂的新协议
看完有收获?点个关注 👆 我会持续分享更多AI编程实战教程。