REA Skill:让 AI Agent 替你逆向 macOS 与 Linux 原生应用
逆向工程的门槛原本极高——读二进制、跟控制流、看反汇编、写脚本拆协议。REA 把这些全部塞进了 AI Agent 的工具栏,让 Claude、Codex、Cursor 也能”读懂”别人的 macOS、Linux 原生应用、Electron、.NET 程序甚至网站行为。它是 10 月新晋 trending 的 Agent Skill 仓库之一,专门解决”想知道别人 app 是怎么实现的”这一长期困扰开发者与产品团队的难题。
功能与原则
REA(Reverse Engineering Agents)核心定位是「让 AI Agent 替你做逆向」。它把原本零散的逆向工具链(Hopper、Ghidra、运行时 hook、字符串/符号扫描、网络抓包、网页观察)统一封装成 MCP 服务和 CLI,接入 Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、Antigravity、GitHub Copilot CLI、VS Code 等十余个主流 Agent 宿主。
设计原则可以概括为三条:
– 本地化优先:所有反编译/分析都在本机完成,不上传任何目标应用到云端;需要 Hopper 或 Ghidra 时由用户在 setup 时显式授权
– 证据驱动:每次结论都附带证据链——具体函数地址、字符串、反编译片段、控制流图,不会”看起来像”就结束
– 可恢复构建:从”理解一个特性”到”在你的项目里重建一个本地化版本”在同一会话里完成,不需要切换上下文
认可度
GitHub 仓库 morluto/rea 截至 2026-10-06 约 5,504 Star、575 Fork(API 实测),主语言 TypeScript、MIT 协议。最近一次更新为 2026-10-05(即昨日),仍处于活跃迭代;Discord 社区 discord.gg/GkcryMnJDM 同步运营。它已在 10 月初的 GitHub Trending skill 类榜单占有一席,是少数同时覆盖原生二进制与 Web 行为的逆向 Skill。
链接
GitHub 仓库:https://github.com/morluto/rea
npm 包:rea-agents(npx rea-agents setup)
原作者
morluto(GitHub username morluto),独立开发者,专注把逆向工程从”工具链拼装”变成 Agent 可消费的工作流。除了核心仓库,README 还维护了英文、简体中文、繁体、日语、韩语、阿拉伯语六种本地化版本。
介绍
REA 把”逆向”这件事拆成了 Agent 能听懂的三个阶段:Decompile → Understand → Recreate。它支持四类目标:
- 原生二进制:macOS 与 Linux 上的 .app、ELF 可执行文件,借 Hopper(macOS/Linux)和 Ghidra(macOS arm64/x64、Linux x64)做反汇编与伪代码恢复
- JavaScript / Electron 应用:拆 main process、renderer、bundle 资源
- .NET 程序集:读取 IL、字符串、引用
- 网站:抓运行时 DOM、网络请求、行为序列
调用模型上,REA 同时提供 CLI 和 MCP 两种入口。CLI 直接在终端跑 rea analyze /Applications/Notes.app;MCP 则是把同一套工具注册给 Agent,让 Agent 在对话里自主选择”先用 strings 扫 → 再 disasm 这个函数 → 再跟一下这个调用链”。整个流程保留上下文——一次会话里可以连续问多个 App、多个 feature,不用每次从零加载索引。
特点
- 多 Agent 兼容:Claude Code、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、Antigravity、GitHub Copilot CLI、VS Code 等十余个 Agent 原生接入;其它遵循 MCP 的 Agent 可走手动配置
- 本地 + 受控 Hopper 安装:macOS 上 setup 脚本能下载并验证官方 Hopper 安装包到
~/Applications,不需要 Homebrew;Linux 走系统包管理器并通过 Xvfb + Python 3 在隔离虚拟 display 里跑 demo - Ghidra 兼容:已经在用 Ghidra 的用户只需
export GHIDRA_INSTALL_DIR=/...,REA 会复用本地版本(要求 Ghidra 12.1.4 + JDK 21) - 诊断命令完备:
npx rea-agents doctor检查宿主、依赖、分析工具、Agent 配置,不改任何东西;--json输出结构化诊断,便于 CI 或脚本消费 - 可证据化的结论:所有结论都附带原始地址、字符串、调用关系,避免”AI 拍脑袋式逆向”
使用方法
最简三步:
- 安装与初始化
bash
curl -fsSL https://raw.githubusercontent.com/morluto/rea/main/install.sh | bash
或用 npm:npm install -g rea-agents && rea setup。setup 会列出检测到的 Agent,让你勾选要启用的那一些,再决定是否安装 Hopper 或记录已有 Ghidra 路径。
- 重启 Agent(让 MCP 注册生效),然后像聊天一样提问:
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
- 需要直接跑命令也可以:
bash
npx -y rea-agents@latest analyze /Applications/Notes.app
或先 npx rea-agents doctor 排查环境。
平台要求:macOS 12+ / Ubuntu 24.04+ / Fedora 41+ / 64-bit Arch Linux;Node.js 22.19+ 或 24.11+。
使用场景与人群
适用场景
– 想复刻某个 App 的某个 feature,但拿不到源码
– 安全审计:审查已签名第三方依赖里到底调用了什么系统 API、加载了什么 dylib
– 排查 Electron/.NET 桌面应用为什么会有异常网络请求
– 把逆向分析结果直接喂给同会话里的 Agent,让它在自己的项目里复刻一个本地化版本
目标用户
– macOS/Linux 桌面开发者做产品调研时
– 安全/合规团队审查闭源 SDK 实际行为
– 对「agentic 编程」感兴趣、希望 Agent 能调用真实逆向工具的研究者
– Hopper/Ghidra 老用户想把它接入 Agent 工作流
输入与输出案例
案例 1:复刻 macOS Notes 的搜索
- Input:
Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project.
- Output(节选 Agent 反馈):
NotesCore::SearchIndex类负责建索引,使用 SQLite FTS5 表ZSFNOTEINDEX- 入口函数位于 Hopper 反汇编
0x100a4b320,调用顺序:SFNoteSearchManager::query → CFString tokenize → SQLITE_PREPARE_16 → rankedSnippet - 排序字段:
rank_jm, rank_jl, rank_jr(FTS5 三因子 BM25 加权) - 自动产出适用于当前项目的 Swift 索引重建方案
案例 2:审查 Electron App 的网络行为
- Input:
列出 /Applications/Acme.app 在启动时所有外发网络请求的目标 host 与路径。
- Output(节选):
- main.js:412 →
https://api.acme.io/v3/telemetry,header 带固定X-Client-Id - lib/analytics.js:81 →
https://cdn.acme.io/track.gif,POST 含设备指纹 - 反汇编证据:grep 出二进制里硬编码的 endpoint 字符串
api.acme.io/v3/telemetry在0x0001c3a8起 56 字节 - 建议:在网络隔离 sandbox 中重跑,或用 Little Snitch 阻断 telemetry 域名
这两个案例都体现了 REA 的核心承诺——结论有出处,且可在同一会话内继续工作。
GitHub: https://github.com/morluto/rea
评论区
登录后可评论。