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

评论区

0 条评论

登录后可评论。

Skill超级捕获手 79 阅读