夜雨聆风学习资料网

ARTICLE · 1199986

闭源软件的“黑盒时代”,被这个 25 万星的开源项目-REA终结了!

闭源软件的“黑盒时代”,被这个 25 万星的开源项目-REA终结了!
晓白AI纪元把 AI 用成真本事,而不是收藏夹讲人话能上手
没有源码AI 凭什么能
一个叫 REA 的开源项目,把逆向工程的门槛踩到了地板上
开源项目逆向工程MCP 工具AI Agent
导读 · 没有源码,AI 凭什么看清软件
大家好,这里是 晓白。10 月中旬,一个叫 REA 的开源项目在 GitHub 上爆火,冲上日榜第一,星标一路来到 25 万。它只干一件事:让 AI 在你没有源码的情况下,看清一个软件的功能到底是怎么实现的。
讲什么REA 是什么、做对了什么、能分析哪十大类目标、内部怎么运转、三个真实战例,以及你怎样亲手跑通第一次。
什么痛点看中的功能没有源码;逆向是懂汇编的老手的活;AI 给的结论你总不敢全信。
你能拿到一条接入命令、一张能力清单、一套「结论必须带证据」的思维,外加一个练手小任务。
这篇里你能拿到:
REA 的三根顶梁柱分别是什么
它能分析哪十大类目标
战例:3205 个用例怎么全过
四步跑通你的第一次逆向
能用与不能用之间的许可边界
1 · 它到底是什么
一句话:给 AI 装上透视眼,专看没有源码的软件
先给定义。REA,全称 Reverse Engineer Anything,逆向万物。你手里没有源码,只有一个软件的安装包、一个网页、一个安卓应用,甚至一张 1996 年的游戏光盘——它能带着 AI 从这些"外表"出发,查清某个功能内部到底怎么运转,还把证据一并摆在你面前。
打个比方。以前看一个软件,像隔着毛玻璃猜屋里的摆设;REA 做的事,是把毛玻璃换成透明玻璃,再给你配一支手电筒。
同一件事,两种活法:
做法传统逆向用 REA
谁来做
懂汇编的老手
你 + AI Agent
要懂什么
x86 汇编、ELF 格式
会说人话提需求
上手多久
按月计算
一条命令几分钟
结论可信度
取决于人
每条结论带证据
能分析啥
通常一种格式
二进制/网页/安卓/固件
它不是在"破解"谁,而是在"看懂"谁——看懂了,你才能做出自己的版本。
2 · 为什么爆火
闭源软件是黑盒时代,它把黑盒撬开了一条缝
一个功能在别人家产品里跑得好好的,你想要。以前只有两条路:看教程猜个大概,或者自己啃几个月汇编。现在你可以直接问 AI:"这个搜索功能怎么实现的,给我看证据。"AI 通过 REA 调工具,几分钟后带着证据回来。
翻完它的源码和文档,我认为它做对了三件事,这也是它区别于"又一个 AI 小工具"的地方:
1封装工具
把 Hopper、Ghidra、IDA 这些专业反汇编器,连同网页调试、安卓反编译、固件拆解,统统封装成 MCP 工具。AI 不必学会每种工具的脾气,调用就行。
2固化套路
老手查功能三步走:搜关键字、找引用、定位函数。REA 把这三步固化成一个工具,AI 调用一次,就拿到"哪个函数用到了这个字"。
3留下证据
每次分析都生成一条 Evidence 记录:分析了哪个文件、做了什么操作、得到什么结果。结论分"观察到的、推断的、不确定的"三档;搜不到,它也会明说"搜不到不代表不存在"。
前两条降低门槛,第三条守住底线——没有证据的结论,在 REA 里不算结论。
3 · 能透视什么
一张表看清它的火力覆盖范围
官方口径 100 多个 MCP 工具,按目标类型归拢,大致是这么八大类。挑你熟悉的看:
目标能查出什么依赖
原生程序
反汇编、伪代码、调用关系
反汇编器任选一
网页
脚本源码、功能逻辑
Chrome 调试协议
桌面应用
Electron 进程边界、IPC
无需额外引擎
安卓 APK
清单声明、类、反编译方法
JADX 与 JDK
固件镜像
分区、提取结果
Binwalk 等工具
老游戏
16 位指令、算法还原
Ghidra
网络抓包
字段、重复值、解码规则
Wireshark
Go / Rust
编译信息、依赖清单
零依赖直接读
注意最后一行:读 Go 和 Rust 程序的元数据,连反汇编器都不需要,REA 内置就能干。这也是它设计哲学的缩影——能内置的就内置,能不依赖的就不依赖。
4 · 怎么运转
你说话,AI 干活,REA 提供手和眼睛
整套东西跑起来是这样的:你在对话框里提需求;AI 通过 MCP 协议调用 REA 的工具;REA 按需唤起反汇编器、调试器或浏览器,把结果连同证据一起交回 AI;AI 再决定下一步问什么,或者直接给你写一个自己的版本。

有个细节值得说:REA 每次拉起 Ghidra,都是只读模式开一个临时工程,分析完就删,原程序一个字节都不会被改。分析网页时走的是 Chrome 调试协议,只读已经加载的源码,不在你的页面里执行任何一行 JavaScript。

接入也简单。下面这条命令会把 REA 注册进你的 AI 客户端(Claude Code、Codex、Cursor、Gemini CLI 等都支持),顺手装好配套的调查指令。重启客户端后,AI 就多了一双透视眼:
npx rea-agents setup
不装也行。REA 同时是个命令行工具,在终端里直接分析一个解压好的应用目录,JSON 结果原样输出:
npx -y rea-agents@latest \   analyze-javascript-application \   /路径/到/应用 --json
5 · 真实战例
三个官方案例,看懂它到底能走多远
空口无凭,看三个官方 showcase。每一个都是"没有源码,最后连算法都被完整还原"的硬故事。
战例一:25 年前游戏里的一个声音算法
DX-Ball,经典打砖块游戏。REA 跟着一声"球拍接到球"的音效调用往下追,定位到计算声音左右声道比例的函数,把不完整的伪代码一步步还原成 C 代码。验收方式很硬核:还原代码跑 3205 个原始 x86 测试用例,全过;编译出的函数字节,63 个一个不差。
战例二:Notion 的剪贴板桥
Notion 是 Electron 应用,等于把一个网页塞进了桌面程序。REA 从渲染进程的剪贴板 API 出发,穿过 preload 和进程间通信,一路追到主进程,把"富文本剪贴板格式"这条链路摸得明明白白。这种跨进程追线索的活,以前是逆向老手的毕业设计。
战例三:1996 年的东方 Project
TH04,一个 16 位 DOS 游戏。REA 分析当年的 PC-98 指令,还原出子弹环的角度计算,还把还原出的 C++ 和当年的编译器输出做了对比。快 30 年前的程序,一样透视。
三个案例三种形态:桌面游戏、现代桌面应用、上古 DOS 程序。REA 的"万物",不是修辞。
6 · 上手四步
从零到跑通第一次逆向,比装个 App 还快
不讲了,直接上手。全程四步,跟着做就行。
1查版本
REA 要求 Node.js 22.19 以上、24.11 以上或 26 以上,注意 23 和 25 不在支持列表。终端输入 node --version 看一眼。
2一条命令接入
运行 npx rea-agents setup,按提示选择你的AI 客户端、审阅改动、批准,然后重启客户端。
3提需求
新建会话直接说人话。比如:"看一下这个恐龙游戏怎么加速的,先调用 list_browser_targets 找到页面,再读取脚本源码,告诉我初始速度、加速规则,每条结论给出处。"
4让它造一个
接着说:"根据查到的规则,在当前文件夹写一个dino-demo.html,能跳、有仙人掌、带速度滑块和自动加速。"AI 会基于证据,写出你自己的版本。
想在终端里先尝尝 CLI 的滋味?起一个带调试端口的 Chrome 就行:
open -a "Google Chrome" --args \   --remote-debugging-port=9222 \   --user-data-dir=/tmp/rea-demo
练手任务:逆向网页小恐龙
打开 https://wayou.github.io/t-rex-runner/ ,就是 Chrome 断网时那只恐龙
用上面的命令起一个带 9222 调试端口的 Chrome,再让 AI 通过 REA 读取页面脚本
回答三个问题:初始速度是多少、每次加速加多少、有没有上限
让 AI 把答案做成一张速查表,再顺手复刻一个能玩的版本
全程只读网页源码:不改页面、不执行任何脚本
7 · 先看边界
能用和不能用之间,隔着一条许可线
最后必须泼一盆冷水——这也是 REA 官方 DISCLAIMER 写得清清楚楚的事。工具越强,边界越要先划清。
坑"既然能逆向,那岂不是可以随便抄别人的功能?"——看懂功能逻辑和抄走专有代码,是两回事,后者踩线。
改官方划的支持范围:合法研究、教育、互操作、软件保存,以及分析你自己拥有或获授权的软件。
坑AI 说"我没搜到这个关键字",你就断定"这功能不存在"。
改REA 的规矩是"搜不到不代表不存在"——分析有边界,结论分三档,不确定的部分 AI 必须讲出来。
REA 是手电筒,不是万能钥匙。
你觉得第一个该被 AI"透视"的软件是哪个?评论区聊聊。
点赞、关注「晓白AI纪元」,把 AI 用成真本事,而不是收藏夹。
AI晓白 · Stefan
晓白AI纪元 · 把 AI 用成真本事

相关学习资料