逆向一切软件:REA 冲上 GitHub 5.8 万 Star,agent 把逆向变成了提问
GitHub 最近又火了一个项目:REA(Reverse Engineer Anything)。用户丢过来的说法是“冲到 4.2 万 Star”,但截至今天(2026 年 10 月 10 日)实测,这个数字已经涨到 5.8 万 Star、1.1 万 Fork——比传闻里的还要猛。它做的事一句话能说完:让你用 agent 去逆向任何软件,从应用行为一路挖到原生二进制。

一、REA 到底解决什么问题
传统逆向是“人坐在反汇编器里读几天汇编”。REA 的思路是把 agent 接到反汇编器上(原生代码用 Hopper、Ghidra 或 IDA),再接上针对 JavaScript 与 .NET 的静态分析器。agent 负责向工具提问、收集结论,并把证据一并交回来。
它的 README 示例提示词就是整个卖点:“搞清楚 Notes 应用里的搜索是怎么实现的,把证据给我看,再为我的项目做一个类似功能。”tracing 由 agent 完成,你拿到的是解释、代码位置,以及一份“目前还不知道什么”的清单。
关键点在于分析全部本地运行,结论会附上证据与局限性——不是让模型凭空编一个解释给你。
二、能啃哪些目标
REA 的支持面相当宽,基本覆盖了常见逆向对象:
- 原生二进制:伪代码、汇编、字符串、符号、调用与引用(需 Hopper/Ghidra/IDA)
- 离线 ELF 布局:段、节、原始符号/重定位、静态缓解候选
- JavaScript / Electron:模块、导入、source map、路由、IPC 与原生插件关系(静态分析无需原生引擎)
- 网站:页面结构、脚本、网络观察与截图
- .NET 程序集:元数据、CIL 指令、声明的原生依赖与构建对比(纯静态)
- Android APK:清单声明、类、反编译方法与引用(需 headless JADX + 完整 JDK)
- 固件:分区、提取结果与原生分析交接(需 Binwalk / Unblob)
- EVM 字节码、记录的 Linux 崩溃、HAR 抓包、进程行为等
环境要求:Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+,外加 npm。支持的 agent 包括 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等——凡是支持本地 MCP server 的 agent 基本都能用。安装一条命令:npx rea-agents setup,它会注册 MCP server 并写入配套工作流说明,之后重启 agent 即可。

三、三个公开案例:它到底能证明什么
Star 数代表热度,案例才代表结果。REA 官方放了三个 showcase,把“能做什么”和“还不能做什么”都摆出来了。
案例 1:DX-Ball 的音效声场公式
问题:1990 年代的 DX-Ball 如何把砖块的横向位置换算成左/右声场?反编译器在 0x406400 只看到一个没有可见输入的 __ftol() 调用;指令里露出了缺失的实参 [EBP+8]。顺着调用者 0x411f40 找到坐标公式 20 + 30 × tile_x,再从内存里读出三个常量 1.5625、500.0 和初始声场缩放 1.0。
最终还原出的规则是:坐标转 double,乘 1.5625,减 500.0,乘存储的声场缩放,再截断。缩放为 1 时,左边缘得 −500、中心 0、右边缘 500。真正建立信任的是验证方式:作者把 3205 个用例同时跑过原始 x86 函数和新 C 版本(覆盖 0–640 全部位置、缩放 0/0.5/1/20/−1),在固定 VC4.0 工具链下,编译字节也匹配了原始 63 字节。整个项目报告维护了 55 个 C 函数、45380 次对比。
它没证明的:把声场接进游戏声音后端这一步仍待完成,可玩的成品还不完整;工作绑定在 DX-Ball 1.07 的固定哈希上;编译复现“依赖人工复核的重定位与核对过的常量”,并非全自动。
案例 2:Notion 怎么把内容复制到剪贴板
从 90 年代二进制跳到现代 Electron 应用。问题:Notion Desktop 7.6.1 如何把文本和 HTML 写进系统剪贴板?路径分四段:preload 脚本向页面暴露 clipboard.write;一个 wrapper 在某个 channel 上调用 ipcRenderer.invoke;主进程的 ipcMain.handle 接收;通过发送方校验后,Electron 的 clipboard.write 落盘。两侧用的是同一个 channel 名 notion:clipboard:write。
两个发现值得记一下:一是主进程 handler 会校验是哪个页面发的请求,只有 Notion 自己的 web contents 能触达剪贴板写入——这是 Electron 应用该有的正确姿势;二是复制内容里藏着块数据,HTML 中带一条注释指向 Notion 以自定义 MIME 类型 text/_notion-blocks-v3-production 本地存储的块数据,粘贴时按 ID 还原,条目过期则退回纯文本+HTML。
它没证明的:REA 4.1.0 只分析了标签页 preload、找到暴露的 API 与 invoke 调用,wrapper 实现是作者手工阅读后把 channel 与接收端连起来的;剪贴板格式的结论来自 2026 年 7 月 13 日缓存的 web 资源与保存的探针,而非实机桌面会话抓取。
案例 3:PC-98 游戏的弹幕环
回到 16 位 DOS 代码。REA 的 Ghidra provider 支持 16 位 DOS 分析。作者还原了某个弹幕环背后的固定角与瞄准角计算,用 C++ 重建,再与历史编译器的输出对比。形状和 DX-Ball 一样:还原一小段计算,重建,然后拿原始产物验证,而不是相信那段解释。
四、把三个案例放一起看,规律很清楚
- 问题都很窄:一个声场公式、一条剪贴板路径、一个弹幕环,没有一个案例说“把整个应用重造一遍”。
- 证据都附上了:地址、常量、3205 个测试、channel 名、保存的探针、编译器对比。
- 都承认了人工步骤:人工复核的重定位、手工阅读的 wrapper、编译器匹配。
- 目标都固定了版本:DX-Ball 1.07 带哈希、Notion 7.6.1、原始 PC-98 二进制。
这就是今天诚实的边界:agent 是追踪单个行为的快速、不知疲倦的助手,而证明来自你能重跑的测试。

五、对开发者意味着什么
如果你在做 agent 应用,REA 代表了一类新形态:不是让模型直接“猜”一个程序怎么跑,而是把模型接到专业逆向工具上,让它按证据说话。它的价值不在“一键逆向整个软件”,而在把逆向的门槛从“会读汇编”降到“会提问 + 会验证”。
但要清醒两点。第一,本地分析不等于数据不外流——你的 agent 会把工具输出送到模型供应商,数据政策仍适用。第二,证据质量取决于验证环节,案例里的可信度来自 3205 次对比和字节匹配,而不是模型的口头解释。

六、怎么上手
- 环境:Node.js 22.x(≥22.19)/ 24.x(≥24.11)/ 26+,外加 npm
- 一键安装:
npx rea-agents setup,选择你的 agent、审阅改动并批准,然后重启 agent - 全局安装:
npm install --global rea-agents,之后可用rea --help - 静态 JS/Electron 分析:
npx -y rea-agents@latest analyze-javascript-application /abs/path --json - 原生分析:需先配置 provider(Hopper/Ghidra/IDA)
- 更新:
rea update,或重跑npx rea-agents@latest setup
逆向正在从“读汇编”变成“提问 + 验证”——工具把门槛压低了,但证据仍然得靠测试说话。
没有啦 (T▽T)
延伸阅读:
逆向一切软件:REA 冲上 GitHub 5.8 万 Star,agent 把逆向变成了提问
GitHub 最近又火了一个项目:REA(Reverse Engineer Anything)。用户丢过来的说法是“冲到...
AI 渗透框架 ARTEX 攻破韩国银行:一次全链路复盘
2026 年 9 月下旬到 10 月初,韩国多家金融机构接连被曝数据泄露。真正让安全圈坐不住的,不是泄露规模本身,而是攻...
Anthropic 放宽 Claude 访问限制:向认证安全人员开放 CVP 三级权限,红队档近乎零拦截
2026 年 10 月 6 日,Anthropic 宣布扩展其 Cyber Verification Program(C...
VAPT 到底是做什么的?NIST SP 800-115 拆解漏洞评估与渗透测试的边界
安全圈里 VAPT(Vulnerability Assessment and Penetration Testing,漏...
AIAIA 是什么?港府《伦理人工智能框架》里的 AI 应用影响评估模板拆解
做 AI 治理文档的人大概都见过这个词:AIAIA——AI Application Impact Assessment,...