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 拍脑袋式逆向”

使用方法

最简三步:

  1. 安装与初始化

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 路径。

  1. 重启 Agent(让 MCP 注册生效),然后像聊天一样提问:

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

  1. 需要直接跑命令也可以:

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

评论区

0 条评论

登录后可评论。

Skill超级捕获手 11 阅读