夜雨聆风学习资料网

ARTICLE · 1158477

逆向一切软件:REA 冲上 GitHub 5.8 万 Star,一个 MCP 就把 Ghidra 塞进了 AI 手里

逆向一切软件:REA 冲上 GitHub 5.8 万 Star,一个 MCP 就把 Ghidra 塞进了 AI 手里

这篇不给废话,全部是能直接用的东西:REA 是什么、它凭什么三个月冲到 5.8 万 Star、怎么装、怎么用、能分析什么、哪些事它其实干不了。

先说一句最关键的:REA 不是"AI 自动逆向"的魔法,它是把 Ghidra / Hopper / IDA 这些老牌工具,通过 MCP 接进了 AI Agent 的手里。 你不用再手动反编译、复制粘贴一堆伪代码去问模型了——Agent 自己会调工具、自己看证据、自己给结论。省掉的是中间那一堆体力活。

① 先看数据:这项目火得有点不讲道理

GitHub 上 morluto/rea 这个仓库,截至 10 月 10 日的实时数据是:

  • Star:58,648
  • Fork:11,588
  • License:MIT
  • 首发:2026 年 4 月 14 日,最新版本已到 v6.1.0
  • 官网:rea.tools

注意几个数怎么理解:它 10 月 7 日发布正式版(v4.1 那波),上线第一天就冲上 GitHub Trending 第一,24 小时进账 2,956 星;而当时总星数是 10,400 多。也就是说,绝大部分星是最近三天涨的。网上流传的"3.3 万""4.2 万"都是不同时间点的快照,你按当天实时数看就行。

这增长速度什么概念?它已经挤进了 GitHub 历史上升星最快的开源项目梯队。而且它不是那种"看一眼就收藏"的玩具——3 个月 30 多次发版,社区是真在用。

② 它到底解决了什么问题:一个"复制粘贴地狱"

以前的流程是这样的:你想让 AI 帮你看一个没有源码的软件,怎么干?

  1. 手动开 Ghidra 或 Hopper
  2. 反编译,导出一大坨重建出来的 C 伪代码
  3. 复制粘贴进对话框
  4. 希望模型能看懂那堵墙一样的代码
  5. 每追问一次,重复一遍 1-4

这就是纯粹的上下文切换税。 逆向分析被搞成了文书工作,而不是工程。

REA 干的事就一句话:它把"调工具"这件事交给 Agent 自己。 Agent 通过 MCP 直接问 REA,REA 在本地调分析引擎,把结构化结果还回来,Agent 立刻能在这个结果上继续推理。

③ 能力清单:41 个工具 + 14 条流程,覆盖这些目标

这是全文最该抄走的部分。REA 把逆向目标分成了这些类:

目标类型
REA 能返回什么
额外依赖
原生二进制
伪代码、汇编、字符串、符号、调用与引用
Hopper / Ghidra / IDA
JavaScript / Electron
模块、imports、source map、路由、IPC、原生插件关系
Node.js + npm
.NET 程序集
元数据、CIL 指令、声明的原生依赖、构建对比
无(纯静态)
安卓 APK
Manifest、类、反编译方法、引用
无头 JADX + 完整 JDK
固件
分区、提取结果、原生分析交接
Binwalk / Unblob
网站
页面结构、脚本、网络观察、指定截图
Chrome 系浏览器
网络抓包
请求、响应、暴露的载荷、源码位置
HAR;Linux 上 mitmproxy
离线 ELF 布局
段、节、原始符号/重定位、静态缓解候选
Linux x64 上 pwntools
EVM 字节码
分发选择器、字节偏移、推断参数与可变性
本地 raw/hex
录制的 Linux 崩溃
各线程寄存器/信号、可选映射候选
pwntools,可选 GDB/pwndbg
进程行为
终端输出、交互、退出与文件系统观察、运行对比
Linux/macOS 原生 PTY
包与资源
文件清单、摘要、plist、Apple bundle 结构
—

它一口气接了 12 个主流 AI 编码 Agent——Claude Code、Cursor、Codex、Gemini CLI、Windsurf、Devin、GitHub Copilot CLI 等等。另外,按 v4.1 的发布说明,它还通过开放的 Agent Client Protocol 支持 25 个 Agent 框架。

④ 装它:一条命令,全本地跑

前置要求:Node.js 22.x(≥22.19)或 24.x(≥24.11)或 26+,加上 npm。macOS 12+,或较新的 Linux(Ubuntu 24.04+、Fedora 41+、Arch)。Windows 目前只对 x86-64 PE 二进制实验性支持。

方式一:一条命令自动配好

npx rea-agents setup

它会自动探测你装了哪些 Agent,然后给每个注册 REA,并装好配套的工作流说明。它会对现有配置做备份,你确认后再落盘,之后重启 Agent 即可。

方式二:手动写 MCP 配置

{"mcpServers":{"rea":{"command":"npx","args":["-y","rea-agents@4.1.0","mcp"]}}}

方式三:只用命令行

# 分析一个解包出来的 JS/Electron 应用目录或 ASARnpx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json# 想常驻用,装个全局命令npm install --global rea-agentsrea --help

一个很多人忽略的点:分析全程在你本机跑,没有任何东西上传到云端。 Ghidra 免费开源,Hopper 是付费的 macOS/Linux 替代品、大文件上明显更快,IDA 也能接。深层分析引擎是可选的——不做原生分析的话,REA 光靠基础静态分析也能跑。

⚠️ 避坑:--json 输出里会带证据和"未知项",别只看结论。另外它更新很勤,npx rea-agents@latest 或者 rea update 保持最新,不然你可能在拿一个老版本的 bug 折腾。

⑤ 上手怎么问:官方那句示例就是精髓

README 里的示例提示词,基本就是这个项目的全部卖点:

Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.

翻译过来:"搞明白 Notes 里搜索是怎么实现的,给我看证据,然后照这个给我的项目做一个类似的功能。"

把 Notes 换成你的目标就行。Agent 负责追踪,你拿到的是:解释 + 代码位置 + 一份"目前还不知道什么"的清单。

⑥ 它真的能做到什么程度:三个真实案例

Star 数衡量的是"关注度",案例才衡量"结果"。REA 官方放了三个 showcase,含金量比星数高得多。

案例一:DX-Ball 的音效声像公式

问题:1990 年代的游戏 DX-Ball,怎么把砖块的横向位置算成左/右声道的声像?

结果:复原出的公式是——把屏幕坐标转成 double,乘 1.5625,减 500.0,乘上存储的声像系数,截断。系数为 1 时,左边缘 −500、中间 0、右边缘 500。

关键在验证方式:作者没有"读完代码宣布一个公式"就完事。他跑了 3,205 组用例,覆盖 0 到 640 的每个位置、系数取 0 / 0.5 / 1 / 20 / −1,把原始 x86 函数和新的 C 版本对着比;在锁定 VC4.0 工具链后,编译出的字节也对上了——63 字节全中(在人工核对重定位之后)。整个项目报告了 55 个维护中的 C 函数、45,380 次与原版的对比。

它没证明什么:作者自己写了,下一步"把声像值接进游戏音频后端"还没做,游戏还不能玩;工作锁定在 DX-Ball 1.07 的特定哈希上,编译器复现"依赖人工核对的重定位和常量",不是全自动。

案例二:Notion 怎么把内容写进剪贴板

问题:Notion Desktop 7.6.1 复制文本和 HTML 到系统剪贴板,走的什么路径?

结果:四段式——preload 脚本把 clipboard.write 暴露给页面;一个 wrapper 在某个 channel 上调用 ipcRenderer.invoke;主进程的 ipcMain.handle 接收;经过发送方校验后,Electron 的 clipboard.write 落盘。打包后的代码两侧用同一个 channel 名:notion:clipboard:write。

两个值得记住的发现:① 发送方校验是真的——主进程会检查是哪个页面发的,只有 Notion 自己的 web contents 能触发写入,这是任何 Electron 应用该学的正确姿势;② 复制会带上隐藏的块数据——HTML 里藏着一个注释 <!-- notionvc: <copy-id> -->,指向 Notion 本地存在自定义 MIME 类型 text/_notion-blocks-v3-production 下的块数据,粘贴时按 ID 还原;条目过期就退回纯文本+HTML。

它没证明什么:REA 4.1.0 只找到了暴露的 API 和 invoke 调用,channel 到接收端那一段是作者手工读代码接上的;剪贴板格式的结论来自 2026 年 7 月 13 日缓存的 web 资源,配保存下来的探针和测试脚本,不是抓的实时桌面会话。

案例三:PC-98 游戏的弹幕环

问题:一款 PC-98 游戏的固定角度/瞄准角度计算怎么实现的?(REA 的 Ghidra provider 支持 16 位 DOS 分析)

结果:复原了弹幕环背后的角度计算,用 C++ 重建,再和历史编译器的输出对比。重建代码放在独立仓库里。

三个案例的共同点,才是用 REA 的正确姿势:

维度
DX-Ball
Notion
TH04
问题够窄
一个声像计算
一条剪贴板路径
一个弹幕环
附带证据
地址、常量、3205 组测试
channel 名、handler 代码、保存的探针
指令、编译器对比
承认人工步骤
核对重定位
手工读 wrapper
编译器匹配
锁定目标
DX-Ball 1.07 + 哈希
Notion 7.6.1
原始 PC-98 二进制

没有一个案例说"重建整个应用"。 这就是今天诚实的边界:Agent 是一个快、不知疲倦的助手,帮你追一个具体行为;而可信度来自你能重跑的测试。

⑦ 泼三盆冷水:别被"逆向一切"这四个字忽悠

第一盆:它不是全自动。 三个案例里,每一个都明确写了人工步骤——核对重定位、手工读 wrapper、编译器匹配。Agent 加速的是搜索,判断结果的是人。 问它"能不能自动逆向任何 App",答案是不能。

第二盆:合法性这事必须说清。 为互操作性做逆向,在 DMCA 下长期被认定为合理使用;法院也保护过为兼容性、且无其他合理途径获取信息的开发者。但有两个真实边界:① EULA 条款——很多商业软件在用户协议里明确禁止逆向,这是合同问题不是版权问题,但照样能让你吃官司;② DMCA 第 1201 条——禁止绕过访问控制(保护二进制本身的 DRM、加密),哪怕逆向底层软件本身合法。REA 不做任何绕过保护的事,你分析什么、拿结果干什么,责任在你。指向商业软件之前,先看 EULA。

第三盆:本地分析 ≠ 数据不出门。 REA 确实在本机跑分析,但结果是要交给你的 Agent 的——所以你的模型服务商的数据政策照样适用。别以为"本地"就等于"完全离线"。

⑧ 所以,对你意味着什么

  • 想学东西的人:这是目前最好的"看懂一个功能怎么实现"的工具。挑一个你常用的 App,问它一个具体行为,看它给的证据链——比看十篇教程有用。
  • 要审自己老代码的人:把自己几年前没源码的产物丢给它,追一个具体逻辑,比人肉啃汇编快得多。
  • 逆向 / 安全从业者:把它当初筛和证据整理的加速器。批量样本先过一遍、调用链先拉出来,你只做判断和深挖。但加壳/混淆对抗、内核级保护这些,它救不了你,还得手工。
  • 做 AI Agent 工具的人:REA 立的这个模式——本地执行的 MCP Server 包一个已有的专业工具——会被复制到更多领域。安全、嵌入式、二进制分析,下一个大概率就在路上。

最后说句实在的:REA 火成这个样子,不是因为"AI 能逆向一切"这个噱头,而是因为它精准地解决了"Ghidra 和模型之间那道手工搬运的墙"。墙一拆,逆向的工作流就变了。

至于"逆向一切"——当个口号听听就好。它真正干的,是把逆向从文书工作,变回了工程。


推荐阅读:


交个朋友 加我进群 交流最新AI和网络安全技术

相关学习资料