夜雨聆风学习资料网

ARTICLE · 1183870

原来 AI 已经能逆向你手上的软件了,背后是个叫 REA 的 MCP 在干活

原来 AI 已经能逆向你手上的软件了,背后是个叫 REA 的 MCP 在干活

让 AI 用大白话拆开没有源码的软件,听起来像魔法——REA 把它变成了一个能被 Agent 直接调用的接口。

合规提醒:REA 官方声明其用于合法的研究、教育、互操作性、软件保存,以及分析你拥有或获准检查的软件。本文仅作技术介绍,不认可任何非法或未授权使用。文中涉及的 IDA Pro、Hopper、JEB 等商用工具需自行取得许可,不能使用破解副本。

你有没有过这种时刻——

看中某个 App 的一个功能,心想「这玩意儿我要是能照着做一个就好了」,但手头没有源码,反编译、看汇编、读伪代码又全是劝退项。

最近 GitHub 上走红的一个开源项目 REA(Reverse Engineer Anything),瞄准的就是这个痛点:它把一整套逆向工程工具,封装成一个 AI Agent 能直接调用的接口。你用大白话告诉 Agent「帮我搞清楚这个功能的实现原理」,它就能驱动底层工具去拆、去追、去拿出证据,最后还可能帮你把类似功能写出来。

它火到什么程度?这个项目 4 月 14 日才建仓,到 10 月初也才不到 1 万 Star,却在过去约一周里一口气冲到 20 万级——截至 10 月 14 日,多源统计显示已突破 20 万(今日头条 API 实测约 21.5 万、什么值得买直查 GitHub API 约 20.9 万,约 5.2 万 fork)。它到底怎么做到的,又该怎么上手?下面一次说清。


一、REA 到底是什么

一句话:REA 是一个 MCP 服务器,把 Hopper、Ghidra、IDA、Apktool 这些专业逆向工具,包装成标准化接口,供 Claude Code、Codex、Cursor 这类 AI 编程助手直接调用。

它不是又一个反汇编器,也不是新出的反编译器。它的位置在「工具」和「Agent」之间——

  • 传统逆向:你手动开 Ghidra,自己定位函数、读伪代码、顺调用链,全程靠经验;
  • 用 REA:你给 Agent 一句自然语言指令,Agent 通过 MCP 调 REA,REA 去驱动底层工具分析,再把带证据的结果返回给 Agent,Agent 接着追问、解释,甚至动手实现。

最关键的不是「能拆」,而是结果带证据链。REA 返回的发现里会附上文件偏移、交叉引用、置信度,以及明确标注的「未知项」——这直接对冲了大模型最容易犯的毛病:瞎编。

你拿到的是一句「有依据的猜测」,而不是一句「我觉得它是这么干的」。

项目用 TypeScript 编写,以 npm 包 rea-agents 形式发布,采用 MIT 开源协议。运行环境需要 Node.js 22.19+ / 24.11+ / 26+ 之一,外加 npm。

还有一点值得单独说:这项目迭代快得离谱。它 5.0.0 于 10 月 7 日发布,短短几天内又连发 6.0→6.4 一连串破坏性版本,最新稳定版 6.4.0 于 10 月 11 日放出,而且走的是「小版本即破坏性更新」的明规则——小版本不保证向后兼容。6.0 把 MCP 文件系统输入全改成绝对路径;6.2 / 6.3 重写了证据模型,没有来源记录或事务标识的抓取会被直接拒绝(官方明确让你重新生成观察结果,而不是伪造标识);6.4 又加进了 ADB / Apktool 的 Android 设备检查、分体 APK 获取、JEB 反编译等。对使用者来说,这意味着装完别放着,常更新——但也意味着文档常比 npm 包新,实际能力以你装到的版本为准。


二、它能拆什么

覆盖面比很多人想的要宽。下面列主要类型(来源:REA 官方 README,实际共约 16 种):

目标
REA 能带回什么
额外要求
原生二进制(ELF / PE / Mach-O)
伪代码、汇编、字符串、符号、调用与引用
需 Hopper、Ghidra 或 IDA
JavaScript / Electron 应用
模块、导入、source map、路由、IPC、原生扩展关系
只需 Node.js,无需原生引擎
.NET 程序集
元数据、CIL 指令、原生依赖、构建对比
静态检查,无需运行
网站
页面结构、脚本、网络观察、按请求截图
Chrome 系浏览器
Android APK / 设备
清单、类、反编译方法、日志、截屏、文件传输
无界面 JADX + JDK / adb
Go / Rust 二进制
内嵌编译器版本、依赖清单、构建设置
内置静态检查,无需装 Go
WASM / EVM 字节码
校验、导入导出、分派选择器、参数推断
需 WABT / 原生字节载体
固件 / 抓包 / 信号记录
区域提取、端点与协议分布、解码注释
需 Binwalk、tshark、sigrok 等

两个要点:

  • 静态 JS 和 .NET 检查不需要原生分析引擎——你不用装 Hopper 就能把 Electron 应用的结构摸个大概;
  • 真正深入原生二进制,才需要 Hopper / Ghidra / IDA 之一。设置流程可以在你批准后帮你装 Hopper,Ghidra 和 IDA 则用你已有的安装。

三、怎么用:三步上手

1. 注册到你的 Agent

装好 Node.js 和 npm 后,一行命令:

npx rea-agents setup

它会列出要改的配置、让你选 Agent(支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),你确认后它自动写入 MCP 配置并备份原有配置。完成后重启 Agent 即可。

2. 用大白话让它干活

注册好之后,直接给 Agent 下指令。官方给的范例是:

弄清 Notes 应用的搜索功能如何工作,展示证据,并为我的项目实现类似功能。

把 Notes 换成你的目标应用,把「搜索功能」换成你想搞懂的那一项就行。

3. 不想开 Agent?终端也行

检查一个已经解包的 JS / Electron 应用目录或 ASAR 文件:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

返回结果包含模块、导入、Electron 边界及对应证据。Windows 上路径写成 "D:/apps/example" 这种形式。

要是经常用,可以把 rea 命令装到全局:

npm install --global rea-agentsrea --help

原生分析得先配好 provider;更新也很简单——npm 装的 CLI 用 rea update,用 npx 的就重跑 npx rea-agents@latest setup。

小提示:REA 更新很频繁,新版本经常含着 bug 修复。遇到问题先更新,再重试,能解决一大半。


四、真实实践:官方给出的三个案例

光说能力太空,REA 官网放了几份完整案例,最能说明它「能干到什么程度」。

案例一:DX-Ball,重建声像计算

顺着声音相关的调用,一直追到一个「根据位置计算声像」的辅助函数,再逐条核对指令,把不完整的伪代码整理成 C 代码。最终重建结果通过了 3205 个原始 x86 测试用例,并精确复现了编译后函数全部的 63 个字节。这不是「看起来对」,是逐字节对得上。

案例二:Notion,追踪 Electron 剪贴板桥

找到渲染进程里的剪贴板 API,顺着 preload 和 IPC 一路追到主进程,把富格式剪贴板数据是怎么流转的,扒得清清楚楚。对想理解「Electron 应用前后端怎么通信」的人来说,这是一份现成的教科书。

案例三:TH04,恢复 DOS 环形子弹的计算

这是个老 PC-98 游戏。REA 检查原始的 16 位指令,把固定角度和瞄准角度的算法恢复出来,还把重建的 C++ 和当年的编译器输出做了对比。

官方 showcase 还给了更贴近日常的例子:用 REA 查清 Windows 计算器为什么算 200 + 10% 会得出 220,或者从某款验证器 APK 里还原出登录码的生成逻辑。可见它不只能拆老游戏,真实产品里那些「说不清怎么实现」的功能,它都能试着挖。

一个完整的端到端画面是这样的:你问「Notes 的搜索怎么实现的」→ Agent 先要一份总览 → 顺着字符串、交叉引用、调用图往下挖 → 拿到伪代码和汇编 → 判断哪些可信、哪些标着「未知」→ 最后在你的项目里照着写一个类似功能。

你始终能看到「证据从哪来」,而不是 Agent 拍脑袋给结论——这正是它和普通「让 AI 写代码」最不一样的地方。


五、几个必须说清的边界

工具越强,越要把话挑明:

  1. 只分析你有权检查的软件。REA 明确不认可非法或未授权使用;商用逆向工具(IDA/Hopper/JEB)要自己拿到合规许可,破解副本、盗用密钥一律不行。

  2. 运行时捕获会以你的用户权限运行目标。也就是说,分析一个会联网、会写文件、会起进程的程序时,它真的会动你的环境,要心里有数。

  3. 它不是「一键克隆」魔法。Agent 给的是带证据的发现,最终判断、取舍、落地,还是人的活。看不懂证据链,照样用不好它。

  4. 更新快、报错先更新。这是开发节奏很快的项目,踩到 bug 第一反应是 rea update。

  5. 平台有门槛。原生二进制、固件这类深度分析需要 Linux 或 macOS 环境;Windows 下原生分析目前仅实验性支持 Ghidra,想深挖原生程序最好备一台 Linux / macOS。纯前端 / Electron 应用的静态分析则各平台都能跑。


结语

REA 火得有道理:它把原本只有安全研究员、逆向老手才玩得转的工具链,用 MCP 这层接口,递到了普通开发者的 Agent 手里。门槛被削掉一大截,但「能拆」和「该拆、会拆」之间,仍然隔着法律边界和技术判断。

把它当放大镜用——看清别人怎么实现,是为了把自己的东西做得更好,而不是别的。

如果你觉得这篇帮你把 REA 看明白了,欢迎点赞、在看、转发三连,让更多人少走弯路。我们下篇见。

注:文中 Star 数与版本信息来自 GitHub Trending、Clauday、SegmentFault 等公开报道,实时数据以仓库页面为准;REA 官方仓库与文档见 morluto/rea(GitHub)及 rea.tools。

相关学习资料