一条命令接入 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)是一款开源 MCP 工具:它把 Hopper、Ghidra 等分析引擎接入你的 AI Agent,让你直接用一句自然语言问"这个应用的登录是怎么实现的",Agent 便在本地完成逆向分析,并带着证据作答。
从一句真实提问开始
上手 REA 最快的方式,就是先给 Agent 提一句自然语言的问题。
比如竞品研究时你常会想:某款应用的登录体验做得很好,它到底是怎么实现的?传统做法是手动反编译、翻符号表、追调用链,再把功能逻辑人工拼出来,门槛高、耗时久。在 REA 里,你只需要对 Agent 说:
分析 /path/to/my-app 的登录流程:凭据如何提交、token 存在哪里、失败后走什么逻辑?
Agent 会在你机器上完成分析(目标文件不上传),返回登录相关的模块、路由、IPC 通道与原生桥接点,并且每个结论都附带对应的证据。
手工逆向的四个痛点怎么解决
把逆向交给 Agent 自动化,解决的是手工流程里最耗时的四件事:
- 手动反编译:人工翻反编译器输出 → Agent 自动调用 Hopper、Ghidra 或 IDA,直接拿到伪代码、汇编与字符串
- 人工追引用:在符号表里逐个找调用关系 → Agent 沿 def-use 图自动追踪,加载、存储、分支操作数都内联展示
- 人工拼逻辑:功能结构靠人脑拼 → Agent 把观察、推断、未知项分开返回,缺失的关系不会被谎报
- 环境配置繁琐:逐个安装配置分析引擎 → 一条
npx rea-agents setup完成 MCP 服务注册与配套工作流指令安装
接入:装好、提问、或跑一条命令
从装到出结果只需要三步:
- 安装注册:确保 Node.js ≥ 22.19,运行
npx rea-agents setup,选择你的 Agent(Claude Code、Codex、Cursor、Gemini CLI 等),审阅变更计划并批准。setup 会注册 REA 的 MCP server、安装匹配的工作流指令,并备份已有配置。provider 配置与手动 MCP 注册见 docs/installation.md。 - 重启 Agent 后提问:例如"分析 /path/to/app 的搜索功能如何工作,给我看证据,并在我的项目里实现类似功能"。
- 或直接在终端跑:对解包好的 JavaScript / ASAR 目录执行
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json立即得到模块、导入关系与证据。provider 选择、快照与脚本化的完整 CLI 参考见 docs/cli.md。
能问什么:按能力维度拆解
常见提问集中在四个维度:登录与功能路径、数据存储、版本差异、原生行为。
登录流程怎么问
对 JavaScript / Electron 应用,Agent 会调用analyze_javascript_application构建"JavaScript 应用图",再沿图追踪功能路径。你能拿到:登录相关模块、路由、IPC 通道、原生桥接点,以及逐项证据。跨层追踪的语义细节见 docs/javascript-application-workflows.md。
数据存在哪里怎么查
按三层回答:
- JavaScript 层:从应用图中检索 localStorage、IndexedDB、文件写入相关的模块与调用点;
- 原生二进制层:用
trace_native_values沿 Ghidra 的 def-use 图追数据流向,分支操作数内联展示; - 包结构层:
project-apple-application-graph投影 IPA / .app 的完整结构——可执行文件候选、签名路径、扩展与 Helper,见 docs/apple-application-analysis.md。
版本差异怎么看
compare_application_versions是内置的引导式工作流:给它两个已发布版本,它找出新增/变更的模块与行为,支持静态与运行时两种跟进验证。对 Android APK,还可以用 JADX 引擎查具体类与方法:
rea inspect-android-package /path/Example.apk rea trace-android-references /path/Example.apk example.MainActivity命令说明与反编译结果的完整/部分返回标记见 docs/android-analysis.md。
原生二进制能追到什么程度
原生场景下,REA 会在 Hopper 内启动分析桥接,自动反汇编 Mach-O 二进制、标记入口点并解析__TEXT段:
伪代码、汇编、字符串、符号、调用与引用结果都会随证据一起返回。
答案靠什么支撑
REA 的核心设计是观察、推断、未知项三者严格分开:静态可达不等于运行时确实执行,缺失的关系不会被谎报为"没有该行为"。每条工具结果都内联携带 Evidence 记录,Agent 的解释可以直接引用字节级证据,而不是靠猜测。
| 关键概念 | 含义 |
|---|---|
| Evidence | 每条结论附带的字节级证据,Agent 可直接引用作答 |
| 观察 vs 推断 | 实际看到的内容与由观察推导出的结论分开记录 |
| 未知项 | 缺失或无法确认的关系如实报告,不虚构 |
| 引导式工作流 | investigate_feature、compare_application_versions等 6 个供应商无关的 MCP prompts |
这套契约的细节见 docs/mcp-contracts.md。
适用范围与边界
REA 覆盖七类分析目标,每类返回的内容都有明确边界:
| 目标类型 | REA 能返回什么 |
|---|---|
| 原生二进制 | 伪代码、汇编、字符串、符号、调用与引用(需 Hopper / Ghidra / IDA) |
| JavaScript / Electron | 模块、导入、源码映射、路由、IPC 与原生插件关系(无需原生引擎) |
| 网站 | 页面结构、脚本、网络观察、截图(需 Chrome 系浏览器) |
| 网络抓包(HAR) | 请求、响应、暴露的载荷与来源定位 |
| Android APK | 清单声明、类、反编译方法与引用 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖与构建对比(仅静态) |
| 进程行为 | 终端输出、交互、退出码与文件系统观察 |
静态 JavaScript 与 .NET 检查只读文件、不运行应用;运行时捕获会以你的用户权限运行或交互目标,各指南会说明具体影响。
落地使用要留意的四点
- 保持更新:
rea update更新 CLI;用npx的用户跑npx rea-agents@latest setup刷新注册。 - 复用现有安装:Hopper 由 REA 按需拉起(macOS 首次运行可能弹授权对话框);Ghidra 与 IDA 复用你已装好的实例,setup 不会替你安装 Node、Java、Ghidra 等无关软件。
- 隐私边界:目标文件只在本地分析;Agent 拿到的是工具结果,模型侧的数据政策属于你的 Agent 服务商。
- 诚实的局限报告:Android 方法反编译会标注"完整/部分返回"与回退标记;重载方法存在歧义时 REA 直接拒绝而不是静默选第一个,输出天然带可信度分级。
接下来可以做什么
证据链跑通之后,竞品研究、安全研究与功能复现三条路都打开了:用investigate_feature工作流让 Agent 顺着功能追到函数级证据,再把逆向出来的行为直接移植成你自己项目里的实现——逆向的终点从"看懂"变成"用上"。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考