REA:一条命令让 AI Agent 上手逆向工程,覆盖从应用行为到机器码的完整链路
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
REA(Reverse Engineer Anything)是一个开源逆向工程工具集,把 Hopper、Ghidra、IDA 等分析引擎封装成一个 MCP(Model Context Protocol,让大模型客户端调用外部工具的通信协议)服务。你只需运行npx rea-agents setup,Claude Code、Cursor 等 AI Agent 就能检查原生二进制、JavaScript/Electron 应用、.NET 程序集和网站。分析全程在本地完成,每个结论都附带证据和局限性说明。
图中是 REA 的分析桥接程序在 Hopper 中自动运行:底部命令行执行多轮分析通道(反汇编、控制流、函数识别),右侧面板自动填充入口点、地址和段属性——整个过程无需手工操作工具界面。
🚀 先跑起来
前置依赖只有一个:Node.js 22.19+、24.11+ 或 26+(以及 npm)。在终端运行:
npx rea-agents setup命令会逐步引导你完成全部配置:
- 选择要接入的 Agent(Claude Code、Codex、Cursor、Gemini CLI 等)
- 注册 REA 的 MCP 服务器,并备份现有配置
- 安装配套的工作流指令(Skill),教会 Agent 如何调查目标
- 可选:经你批准后自动安装 Hopper
完成后重启 Agent 即可开始使用。如果你想在 shell 里长期保留rea命令:
npm install --global rea-agents rea --help🧭 它解决什么问题
传统方式下,逆向工程意味着手动打开 Hopper 或 Ghidra、学习界面操作、在反汇编里逐行跳转,学习曲线陡峭,重复性劳动多。
REA 的做法是把整条工具链封装成 MCP 服务,让 Agent 替你调用:
你的 Agent ──MCP──▶ REA ──▶ Hopper / Ghidra / IDA / 浏览器 │ ▼ 伪代码 + 字符串 + 调用关系 + 证据与局限性说明Agent 拿到结果后可以继续追问、解释行为,甚至写出可运行的复现代码。官方 Showcase 中,Agent 曾用 REA 重建一个应用的声音声像算法,重建结果通过了 3205 组原始 x86 测试用例,并逐字节复现了编译产物的 63 字节函数。
🔍 能力清单
| 场景 | 输入 | 你能拿到什么 | 依赖 |
|---|---|---|---|
| 原生二进制 | 可执行文件 | 伪代码、汇编、字符串、符号、调用引用 | Hopper / Ghidra / IDA 之一 |
| JavaScript / Electron | 解包后的应用目录或 ASAR | 模块、导入、Source Map、路由、IPC 边界 | 仅需 Node.js |
| .NET 程序集 | PE/CLI 程序集 | 元数据、CIL 指令、原生依赖、版本对比 | 无,纯静态检查 |
| Android APK | APK 文件 | 清单声明、类、反编译方法与引用 | Headless JADX + JDK |
| 网站 | 页面地址 | 页面结构、脚本、网络观察、截图 | Chrome 系浏览器 |
| 网络抓包 | HAR 或 SAZ 文件 | 请求/响应、暴露的数据、源码定位 | mitmdump(Linux 原生抓包) |
| 固件 | 固件镜像 | 分区、解包结果、原生分析交接 | Binwalk / Unblob(Linux) |
| 崩溃现场 | 录制的崩溃记录 | 各线程寄存器、信号、映射候选 | pwntools,可选 GDB |
| 进程行为 | 本地程序 | 终端输出、交互、退出码、文件系统变化对比 | Linux/macOS 的 PTY |
| Go / Rust 二进制 | 编译产物 | 编译器版本、模块与依赖、构建配置 | 无,内置静态检查 |
各场景的专题指南见 docs/native-investigation.md 与 docs/firmware-analysis.md。
💬 实战演示
接入完成后,最典型的工作流是直接用自然语言下任务,把目标应用和功能换成你自己的:
帮我理解 Notes 应用的搜索功能是怎么工作的,给我看证据,并为我的项目实现一个类似功能。
Agent 的链路大致是:打开目标 → 沿字符串和模块定位功能入口 → 反编译相关函数 → 返回结论时附带每一步的证据来源。你最终得到"功能在哪里、怎么实现的、哪些结论有局限"三样东西。
同样的分析也可以直接在终端跑。例如检查一个解包后的 Electron 应用:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json输出包含模块图、导入关系、Electron 边界及其证据。对原生二进制则显式指定分析引擎:
rea decompile /absolute/path/to/program 0x1000 --provider ghidra --json⚙️ 进阶玩法
几个面向脚本化和大批量结果的技巧:
- 查看可用引擎:
rea providers --json列出已就绪的 provider;多个可用时用--provider显式指定,或用环境变量REA_ANALYSIS_PROVIDER设置默认值。 - 大结果投影:完整应用级 Evidence 可能达数百 MB。官方建议先存文件,再投影成摘要视图:
rea analyze-javascript-application /absolute/path/to/app --json > app-evidence.json jq -c '{source: {kind: "inline", evidence: .}, view: {kind: "summary"}}' app-evidence.json > app-view.json rea inspect-analysis-view app-view.json- 保持更新:REA 迭代很快,遇到异常先跑
rea update(npx 方式则用npx rea-agents@latest setup)再重试。
命令与输出的完整契约见 docs/cli.md。
❓ 常见问题
需要预先安装 Hopper、Ghidra 或 IDA 吗?静态 JavaScript 和 .NET 检查完全不需要逆向引擎,开箱即用。深度原生分析需要三选一,setup 可以在批准后自动安装 Hopper,Ghidra 和 IDA 复用你已有的安装。
需要提前手动启动 Hopper 吗?不需要。需要时 REA 会自动启动它。macOS 首次运行可能弹出 demo 模式或授权选择对话框,需在同一个用户会话中完成该提示。
支持哪些 Agent?任何支持本地 MCP 服务器的客户端。setup 内置支持 Claude Code、Codex、Cursor、Gemini CLI 等;其他客户端可按 docs/installation.md 手动注册 MCP。
分析目标会被上传吗?不会。分析目标全程留在本地,Agent 拿到的只是工具返回的结果。模型侧的数据策略遵循你所用供应商的条款。
遇到问题怎么办?先更新到最新版:rea update或npx rea-agents@latest setup,重启 Agent 后重试同一任务。
📚 继续深入
- 安装与就绪检查:docs/installation.md
- CLI 命令与证据契约:docs/cli.md
- MCP 工具目录:docs/mcp-contracts.md
- Agent 逆向工作流提示:docs/mcp-prompts.md
- 架构图:docs/architecture.mermaid
- 案例研究:website/evidence/
- 源码入口:MCP 服务器在 src/server/,引擎适配层在 src/hopper/、src/ghidra/、src/ida/
✅ 总结
- 一条
npx rea-agents setup完成 Agent 接入,自动备份配置,无需手写 MCP 注册 - 一个工具覆盖二进制、JS/Electron、.NET、Android、固件、网站、抓包、崩溃等 10 类目标
- 每个结论带证据和局限性说明,可追溯、可质疑
- 分析全程本地完成,隐私可控
现在就可以运行 setup,把第一个想搞清楚的应用丢给你的 Agent,让它从行为一路查到机器码。
免责声明:REA 为合法的逆向工程研究与分析提供工具,使用者需自行获得必要授权并遵守当地法律。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考