REA Skill:让 AI 直接逆向任意应用的开源工具
这个 Skill 让 AI 编码智能体直接”打开”任意应用——无需源码,即可拆解功能、还原原理、生成复刻代码。REA(Reverse Engineer Anything)是 morluto 开源的一款 TypeScript CLI 工具,通过 MCP 协议将 Ghidra、Hopper、Chrome CDP 等逆向工程工具接入所有主流 AI 编码助手。10 月 7 日单日新增 star 2,956,GitHub Trending 第一,开发者社区正在用它研究竞品特性、理解闭源协议、甚至为 iOS 应用逆向功能。
功能与设计原则
REA 定位并非”代码克隆器”,而是一个受控的逆向调查工作台。它在本地运行,每次分析结论都附带证据与局限性说明,帮助 agent 理解一个功能的实现机制,然后自主决定如何在自己的项目里复刻。
核心原则:
– 只读分析:不做恶意注入,不修改目标应用
– 证据驱动:每个结论都附带工具输出原始数据,agent 无法凭空编造
– 模型无关:通过 MCP 协议接入,不绑定特定模型或 Agent
认可度
- GitHub Star:截至 2026-10-07 约 8,889★,其中 2,956★ 为 10 月 7 日单日新增
- Fork:约 810+
- Trending 排名:2026-10-07 GitHub Trending 全榜第 1
- 版本节奏:4.0.0 / 4.0.1 于 10 月 6 日发布,4.1.0 于 10 月 7 日发布,开发活跃度高
- npm 包:
rea-agents,周下载量持续攀升
链接
GitHub:https://github.com/morluto/rea
原作者
morluto — 独立开发者,围绕 AI Agent + 安全工程方向持续输出工具链,REA 是其目前最热门项目。
介绍
REA 的 README 开篇描述了一个高频开发者场景:「看到某 App 有一个你想要的功能,问你的 Agent:它是怎么实现的?」——以往这一步需要人工逆向工程,门槛极高;REA 将这个能力下沉给任何接入了 MCP 的 AI 编码助手。
从技术角度看,REA 是一套逆向工具编排层。它统一管理 Ghidra(原生二进制)、Hopper(反汇编)、JADX(Android APK)、Binwalk/Unblob(固件解包)、Chrome CDP(浏览器内省)等 120+ 工具的调用接口,输出结构化的 Evidence 记录供 Agent 消费。
支持分析的目标类型:
| 目标类型 | 工具链 | 说明 |
|---|---|---|
| 原生二进制(Mach-O/ELF/PE/.app) | Hopper / Ghidra(只读 IDA 适配器) | 函数列表、字符串搜索、汇编阅读、交叉引用 |
| JavaScript / Electron 应用 | 模块映射、source map、路由、IPC 通道、存储 | 无需运行,直接扫描 .asar |
| .NET 程序集 | 元数据 + CIL 指令 | 不加载代码,只读分析 |
| Android APK | JADX(headless) | 静态分析 |
| 网站 | Chrome CDP(被动内省) | 页面结构、网络元数据、脚本证据、截图 |
| 固件 | Binwalk + Unblob | 打包解压 |
REA 的工作流极为简洁:Decompile(打开应用恢复可读代码)→ Understand(顺着代码路径理解功能)→ Recreate(在自有技术栈复刻功能)。
特点
- MCP 原生接入:一条命令注册到所有主流 Agent(Claude Code / Codex / Cursor / Windsurf / Devin / OpenCode 等)
- 120+ 工具编排:统一接口调用 11 个工具家族,本地运行,无云端分析服务
- 证据化输出:每次分析附带工具原始输出 + 局限性声明,防止 Agent 幻觉结论
- 跨平台支持:macOS 12+、Ubuntu 24.04、Fedora 41、Arch Linux;Ghidra 支持实验性 Windows
- 零门槛安装:
npx rea-agents setup引导式注册,自动备份已有配置,展示变更再确认
使用方法
第一步:引导式安装(推荐)
npx rea-agents setup
会检测已安装的 Agent,询问注册哪些,配置 MCP 路径,备份现有设置,然后应用变更。
第二步:安装 Skill(可选,给 Agent 更丰富的上下文引导)
npx skills add morluto/rea --skill reverse-engineer-anything
第三步:重启 Agent,直接提问
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
独立 CLI 用法(无需 MCP)
# 分析 JavaScript/Electron 应用(无需 Ghidra/Hopper)
npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
# 诊断集成状态
npx rea-agents@latest doctor
系统要求:macOS 12+ 或 Ubuntu 24.04+ / Fedora 41+ / Arch Linux,Node.js 22.19+ / 24.11+ / 26+。
使用场景与人群
适用场景:
– 竞品功能调研:在没有文档/源码的情况下,理解某闭源 App 某功能的工作原理
– 技术学习:拆解知名 Electron 应用(Slack、VS Code、Notion)的架构设计
– 安全研究:固件分析、二进制审计、CTF 逆向题目辅助
– 插件开发:研究 macOS 原生 App 的 IPC 机制
目标用户:安全工程师、后端开发者逆向团队、想在不侵权前提下复刻竞品体验的产品开发者。
输入与输出案例
案例 1:理解 Electron App 的搜索功能
输入(Agent Prompt):
Understand how the search feature works in the Discord app on my Mac. Show me the evidence and explain which code paths are involved.
输出(Agent 基于 REA Evidence 的总结):
REA 分析了
/Applications/Discord.app/Contents/Resources/app.asar,还原了搜索模块的路由注册、IPC 通道名称、索引存储结构。关键发现:搜索使用 WebContents IPC 事件search:query,索引存储在~/Library/Application Support/discord/search-index.db,使用 SQLite FTS5 全文搜索。结论附带了 REA 的工具原始输出链接。
案例 2:逆向 Windows 原生 PE 的加密函数
输入:
Analyze the login button click handler in the target.exe binary. Find the cryptographic functions it calls and explain how the password is hashed/encrypted.
输出:
REA 通过 Ghidra 加载 target.exe,找到登录按钮处理函数
sub_401A20,识别出调用了advapi32!CryptHashData和kernel32!GetTickCount(作为 salt)。密码经过 SHA-256 哈希,非 bcrypt。原始反汇编输出记录于 Evidence#rea-20241007-0142。
GitHub:https://github.com/morluto/rea
Star 数:截至 2026-10-07 约 8,889★(当日新增 +2,956)
GitHub: https://github.com/morluto/rea
评论区
登录后可评论。