ARTICLE · 1172185
REA:让 AI 无源码逆向软件的 MCP
字数 1517,阅读大约需 8 分钟
👇关注我,后续继续分享更多 AI Agent、技术开发相关的实战经验。
先说一个场景。你在某款 App 里看到一个功能,心里痒痒的——这交互要是搬到我自己的产品里得多好。但人家不开源,源码在服务器上锁着。以前碰到这种事只有两条路:
自己啃 IDA,门槛高到劝退;或者,算了,不做。
现在多了第三条路。有个叫 REA 的开源项目github.com/morluto/rea,干的事就一句话:把逆向工程从"人对着反编译器"变成"Agent 对着反编译器"。你自己坐在屏幕前,看着你的编程 Agent 一步步把一个软件的某个功能查清楚,最后在你自己的技术栈里重建出来。
它自己不反编译
REA 的作者 morluto(化名,主攻 AI 数学方向,与合作者 N0zoM1z0 声称解决了悬置 33 年的 Erdős Problem)在架构上做了个很克制的选择:原生代码分析能力 100% 来自用户自备的 Hopper、Ghidra 或 IDA,REA 一行反编译器都没重写。商业引擎的 license 也完全由你自己解决,README 里专门写了一段:破解、盗 key、共享授权一律不受支持。
那它到底新在哪?新在中间那一层——证据契约。
传统逆向的输出是什么?是反编译器窗口里一大坨伪代码,翻页翻到你眼瞎,结论全在人脑里,换个人接手得从头再来。REA 把每次工具调用都变成结构化记录:result(结果)+ evidence_id(证据编号,可导出、可引用、可比较)+ limitations 和 unknowns(这次分析没覆盖什么、哪些地方是推测)。Agent 追问、翻案、对比版本,全都有据可查。再加上跨层追踪——Electron 的渲染进程剪贴板调用,能顺着 preload、IPC 一路追进主进程和原生插件,一条链走完不换工具。
说直白点:Hopper 负责"看得见",REA 负责"记得住、追得深、说得清"。
覆盖范围比想象的大
不光是 Windows 可执行文件。React Native 应用、Electron 桌面端、.NET 程序集、Android APK、安卓真机(adb)、固件镜像、SQLite 数据库、浏览器里的网站、保存下来的网络抓包(HAR/SAZ)、甚至录下来的崩溃日志和进程行为,都能查。JavaScript 侧的静态分析甚至不需要任何原生引擎,开箱即用。
典型场景是那个 Notion 案例:找出 Electron 渲染进程的剪贴板 API,一路追进主进程,看清富文本剪贴板格式的完整结构。没源码,全程靠证据链。
数字最有说服力的是 DX-Ball
项目官网放了一组"重建案例",其中最硬的是一个叫 DX-Ball 的 1996 年 Windows 打砖块游戏。任务:从 DXBALL.EXE 里恢复声音 panning 的计算逻辑,写回可维护的 C。
Agent 用 REA 顺着 0x406400 这个函数查:指令视图先给出带浮点运算的汇编,伪代码那边却只有一个 __ftol() 转换调用——两者对不上,Agent 没有瞎猜,而是继续追调用方 0x411f40,发现屏幕坐标是"砖块列号 × 30 + 20";再 read_bytes 读两个内存地址,解码出常量 1.5625 和 500.0。最后重建出的函数长这样:
pan = (double)x;pan = pan * 1.5625; // 来自 0x420068pan = pan - 500.0; // 来自 0x420070pan = pan * dxball_pan_scale;return (DxBallInt)pan;验证方式很较真:把原始 x86 代码和新写的 C 并排执行,3,205 组行为用例全部一致;再用当年那套 VC4.0 编译器回放,编译出的 63 个字节和原版函数逐字节吻合。另一个案例是 1998 年的东方弹幕游戏 TH04,重建代码用 Turbo C++ 4.0J 编译后,有 2,139 字节与原版可执行文件完全一致——两次独立构建都复现了这个结果。
换句话说,这不只是"看懂原理",是重建到"经得起逐字节对质"的程度。
顺带说个插曲。写这篇调研时我按惯例查了 star 数:GitHub API 实时数据是 172,606(fork 41,315,创建于 2026 年 4 月 14 日,MIT 协议)。而项目 README 里的徽章还挂着"110,000"的缓存快照,npm 页面的描述则停在"60,000"。三个数字三个来源,以 API 为准——这也算开源项目快速迭代期的常态,仓库从 4 月 14 日建仓到现在提交了两千六百多次。
门槛和边界,得说清楚
• 它面向的是"合法研究、教育、互操作性和软件保存",README 里专门声明了:分析你自己拥有或获得授权的软件。逆向工具是双刃剑,这条线不能含糊。 • 原生分析绕不开商业引擎。Ghidra 免费可用,Hopper 和 IDA 要自己买 license;安装时 REA 只会"提议"安装 Hopper,且需要你单独批准,绝不替你破解什么。 • 部分能力有平台限制——ELF 布局诊断、EVM 字节码、崩溃分析这些明确限定 Linux x64,且要你自己装 pwntools 之类的工具。Node.js 要求 22.19+ / 24.11+ / 26+。真机动态分析依赖平台工具链,不是"一条命令全包圆"。
安装倒是简单,Node 环境就绪后一条命令:npx rea-agents setup。它会列出检测到的 Agent(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),让你多选、预览要写入的配置路径、改配置前自动备份,全部批准后才动文件。
值不值得上手
如果你只是好奇这功能怎么实现的,README 的案例页逛一圈就够了,那是免费的大片。
如果你真的在自家产品里缺某个功能,又不想到处找平替——值得花半小时装上试试。从 JavaScript 应用入手成本最低(无需引擎),跑通了再考虑给原生目标配引擎。用法上记得把 REA 定位成调查员而不是神仙:它给的每个结论都带证据编号和"本次未验证"清单,你追问的深度直接决定重建的质量。
👇关注我,后续继续分享更多 AI Agent、技术开发相关的实战经验。















































































