REA:给 AI 的
「逆向工程工具箱」
Reverse Engineer Anything —— 一个 MCP,把 Hopper、Ghidra、IDA 这些逆向神器,变成 AI 智能体能直接调用的「手」。看到 App 里喜欢的功能?让 AI 拆开它,一直看到二进制级别,讲清原理、拿出证据,再帮你做一个。
npx rea-agents setup一句话:REA 是什么
What is REA
REA = Reverse Engineer Anything(逆向拆解一切)。它是一个 MCP 服务器,一头连着你的 AI 智能体(Claude Code、Cursor、Codex……),另一头连着逆向工程工具(Hopper、Ghidra、IDA……)。
打两个比方你就懂了:
1. X 光机。软件是个黑盒子,源代码是钥匙——但大多数软件不给你钥匙。逆向工程就是不用钥匙,靠「X 光」看清里面齿轮怎么转。以前这是人类专家的手艺活;REA 把 X 光机交到了 AI 手里。
2. USB 标准。MCP 就像 AI 世界的 USB 接口标准:以前每个工具都要单独接线,现在按一个标准,「插上就能用」。REA 就是按这个标准做出来的逆向工程接口。
官方原话:「See a feature you like. Understand how it works, down to the binary level.」(看到喜欢的功能?搞懂它怎么工作,一直到二进制级别。)
动画:四步工作流
How it works
REA 的工作方式是一个四步循环。看动画走一遍,点击每一步看详解:
提问 Ask
你 + 智能体 + 本地目标
App / 二进制 / 网页
检查与追踪
REA 出场
CLI / MCP 调用分析工具
读证据
代码 / 引用 / 未知项
每个结论都带出处
用起来
你的智能体
解释 / 实现 / 测试
点击上面的步骤,看每一步在干什么。动画会自动循环播放。
终端用户也可以不用智能体,直接敲命令——CLI 和 MCP 走的是同一套工作流:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
这行命令的意思:分析一个解包后的 JS/Electron 应用目录,输出 JSON 报告,包含模块、导入关系、Electron 主进程/渲染进程边界,以及每条结论的证据。把路径换成你的目标就行。
它能拆什么:万能拆解台
Targets — 点击卡片翻面
REA 不是只能拆一种东西——它像个「万能拆解台」,点击每张卡片看:能拆出什么、需要你装什么:
需要:Hopper / Ghidra / IDA(三选一)
最硬核的拆解:没有源代码的 exe、so、dylib,丢进去就能读出伪代码。setup 经你批准还可以顺手装 Hopper。
需要:只要 Node.js,不需要原生分析引擎
VS Code、Notion、Discord 这类桌面 App 都是 Electron 做的——本质是打包的网页,REA 直接读代码,连跑都不用跑。
需要:Chrome 系浏览器
想知道某个网站的酷炫动效怎么实现的?REA 用浏览器打开它,看结构、看脚本、看发了哪些网络请求。
需要:无(纯静态分析)
C# 写的程序编译成中间语言 CIL,REA 直接读,不用装任何 .NET 工具。
需要:JADX + 完整 JDK
手机 App 的安装包也能拆:看它申请了哪些权限、调用了哪些 API。
需要:你自己的 adb(模拟器或真机)
连上真机或模拟器,直接看 App 在手机里实时干了什么。
需要:Binwalk / Unblob(Linux)
路由器、摄像头固件也能解剖:先解包,再对里面的二进制做原生分析。
需要:Linux x64
智能合约的字节码:没有源码也能看出它有哪些函数、参数是什么。
需要:HAR 文件;mitmdump(Linux)
把浏览器的网络抓包(HAR)喂给 REA:每个请求发了什么、回了什么,一目了然。
需要:Linux / macOS
把可疑程序跑起来,REA 在旁边记录:它输出了什么、改了哪些文件、怎么退出的。
需要:pwntools(Linux x64)
Linux 可执行文件的骨架:节和段怎么排布的,适不适合动手脚。
需要:pwntools;可选 GDB
程序崩溃时的「黑匣子」:每个线程死在哪一行、寄存器里是什么。
注意这个设计的聪明之处:静态分析(读文件,不运行:JS、.NET)和运行时观测(跑起来看:进程行为、浏览器)是两套手法,REA 全包了。就像医生既有 X 光(静态),也有听诊器(动态)。
证据与局限:诚实的 AI
Evidence-first
REA 最不一样的地方,是它的「证据观」。很多 AI 工具给你一个结论就完了;REA 给结论时,必须同时给出证据和局限:
看一个「追问」的现场模拟——注意 AI 是怎么拿着证据步步深入的:
三个真实案例:从游戏到 Notion
Showcases — 点击展开
DX-Ball 是 90 年代的经典打砖块游戏。任务:搞清它的「声音平移」(声音随砖块位置左右偏移)是怎么算的。
REA 跟着声音调用,一路追进 position-to-pan helper 函数,看它的每条指令,发现规律:栈输入 ×1.5625,再 +500 偏移、缩放、转整数。
然后把不完整的伪代码手写成 C 语言——验证结果:3,205 个原始 x86 测试用例全过,63 个编译函数字节逐字节复现。等于把 30 年前的算法完美「复活」了。
Notion 是 Electron 应用(网页技术打包的桌面软件)。任务:它的剪贴板同步走了哪条路?
REA 找到渲染进程的剪贴板 API,穿过 preload 桥,沿着 IPC(进程间通信)进入主进程,最后看到富文本剪贴板格式的真面目。
一句话:一次「复制」,在三个进程之间旅行了一圈,REA 把全程的「海关记录」都调出来了。
TH04 是 PC-98 时代的东方 Project 游戏(16 位 DOS 程序)。任务:它的环形弹幕是怎么算角度的?
REA 直接读 16 位指令,恢复出两套计算:固定圆环(16 颗子弹从角度 0、16、32……排到 240)和瞄准圆环(第一颗子弹指向玩家方向)。
复现的 C++ 和当年编译器的输出逐字节对比——90 年代的弹幕数学,被完整破译。
三个案例覆盖了 REA 的三板斧:DX-Ball 是「二进制级复活」(连编译器输出都能复现),Notion 是「跨进程追踪」(跟着数据流旅行),TH04 是「考古破译」(30 年前的 16 位代码)。共同点:每一步都有证据,不是猜的。
三分钟上手
Quick start — 点击展开
三步上车:
装好 Node.js(22 / 24 / 26 版),跑:
npx rea-agents setup选你的智能体,检查它提议的改动,批准。setup 会注册 REA 的 MCP 服务器,并装上配套的工作流说明(还会备份你原来的配置)。装完重启智能体。像这样跟智能体说话:
Understand how search works in the Notes app,
show me the evidence,
and build a similar feature for my project.把 Notes 换成你的目标 App、search 换成你想了解的功能。不想经过智能体,也可以直接在终端用:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
npm install --global rea-agents
rea --help支持的智能体:Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等。原生二进制分析需要你本机装了 Hopper、Ghidra 或 IDA(setup 经你批准可代装 Hopper);纯 JS 静态分析什么都不用装。
更新提示:REA 迭代很快,官方建议保持最新——npm 装的跑 rea update,MCP 注册跑 setup 时打印的刷新命令。
术语翻卡:十个关键词
Key terms — 点击卡片翻面
点击卡片翻面看解释。
自测五题
Quiz — 点题目展开答案
一个 MCP 服务器;一头连 AI 智能体(Claude Code、Cursor 等),另一头连逆向工程工具(Hopper、Ghidra、IDA 等)。
提问 → 检查与追踪 → 读证据 → 用起来(解释/实现/测试),支持追问循环。第 3 步特别在:返回的不只是结论,还有证据和「未知项」。
声音平移规律:栈输入 ×1.5625,再 +500 偏移、缩放、转整数。复现的 C 通过 3,205 个原始 x86 测试用例,63 个编译函数字节逐字节复现。
渲染进程 → preload 桥 → IPC → 主进程,REA 把全程的「海关记录」都调了出来。
在你的本地机器上运行,目标文件不上传。运行时观测用的是你自己的用户权限。