REA:AI 逆向工程的本地分析快速上手指南
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
REA 把本地 AI 逆向工程拆成两种运行形态:一个本地 MCP 服务器加一套命令行工具。它解决一个问题——没有源码时,如何把应用行为追查到二进制层面,且每条结论都带证据。适合想研究未发布产品或竞品实现的工程师。
⚙️ 能力矩阵:先确认你的目标在不在清单里
README 的 "What you can analyze" 表列了几十种目标。挑最常见的六类:
| 分析目标 | 需要什么前置条件 | 能拿到什么 |
|---|---|---|
| JavaScript / Electron 应用 | 仅 Node.js 与 npm | 模块、导入、Source Map、路由、IPC、原生插件关系 |
| 原生二进制 | 已装 Hopper、Ghidra、IDA 或 Kuna | 伪代码、汇编、字符串、符号、调用与引用 |
| .NET 程序集 | 无(纯静态) | 元数据、CIL 指令、声明的原生依赖、构建对比 |
| Android APK | Headless JADX + 完整 JDK(Linux/macOS/Windows x64) | 清单声明、类、反编译方法、引用 |
| 固件 | Linux 上的 Binwalk / Unblob | 区域、显式提取结果、原生分析交接 |
| Go / Rust 二进制 | 无(内置静态检查) | 内嵌编译器版本、模块与构建设置 / crate 依赖边 |
(来源:README.md)
🚀 环境与最小命令:一条命令跑完静态分析
前置条件一句话:Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)或 26.12.1+,外加 npm(来源:README.md)。对 JavaScript/Electron 做静态分析,连逆向引擎都不用装。
把路径换成解包后的应用目录或 ASAR:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json官方对输出的描述:"The result includes modules, imports, Electron boundaries and their evidence."(来源:README.md)
拿到 JSON 后建议人工核对三点:模块与导入图是否和真实文件分布吻合;Electron 边界声明的 preload/主进程划分是否成立;每条 evidence 记录的工件身份与来源位置是否指向实际文件。
这张图证明原生分析结果来自对已安装 Hopper 的实时驱动——右侧可见文件路径、Mach-O Loader 与具体地址,而非模型事后生成的叙述。
📦 结果可信度规则:证据契约与未知项怎么表达
工具调用的返回内容不止结论。官方契约:"Evidence records retain artifact identity, source locations, observations, inferences and unresolved findings."(来源:docs/cli.md)设计原则要求 "Keep observed, derived, and inferred relationships distinct",即观察、派生、推断三类关系分开存放,不混写(来源:docs/tool-design.md)。
对"查不到"的表述,官方原句很硬:"Missing coverage is unknown, not absence."(来源:docs/tool-design.md)没查到记"未知",不冒充"没有"。例如 Rust 二进制缺.dep-v0段时,按文档记为 presence unknown,而不是"无依赖"的证明(来源:docs/rust-binaries.md);分析引擎运行时失败则按原始原因返回(来源:docs/mcp-contracts.md)。
| 喂进去 | 拿到什么 | 人工核验点 |
|---|---|---|
应用目录 / ASAR +--json | 模块、导入、Electron 边界 + evidence | 逐条对照目标文件是否真实存在 |
二进制 +--provider指定引擎 | 伪代码、函数信息、交叉引用 | 引擎版本绑定写入会话,失败按原始原因返回 |
两份 Evidence bundle(rea compare) | 规范化差异 | 先rea evidence-import验证再比较 |
rea doctor --json | 结构化环境诊断 | 官方声明其 "strictly read-only",不改任何配置 |
(来源:docs/cli.md、docs/installation.md)
🚫 官方声明的边界:它不做什么
- "A selected provider is never replaced automatically after a runtime failure."——引擎故障不会自动换人。(来源:docs/mcp-contracts.md)
- "pseudocode is never treated as original source"——反编译输出不当原始源码用。(来源:docs/installation.md)
- "Static JavaScript and .NET inspection read the supplied files without running the application."——静态检查只读文件,不碰目标进程。(来源:README.md)
🛡️ 数据流向:本地、复用与通信方式
官方 FAQ 回答得直接:"REA analyzes targets locally."(来源:README.md)待分析文件不离开你的机器,没有上传环节。但同一节提醒 "its model provider has its own data policy"——agent 会收到工具结果,模型服务商的数据策略需自行评估(来源:README.md)。
引擎侧是复用而非捆绑:"Native analysis can use an existing Hopper, Ghidra, IDA or Kuna installation"(来源:README.md)。与 Ghidra 的进程通信不开公网端口,官方说明 Linux 与 macOS 使用 "a current-user-only local bridge socket and descriptor",即仅限当前用户的本地 socket 与描述符(来源:docs/installation.md)。
📚 延伸阅读
- 安装、引擎与客户端配置:docs/installation.md
- 全量 CLI 命令、Evidence 导出与比较:docs/cli.md
- MCP 工具输出契约与 provider 绑定规则:docs/mcp-contracts.md
- 证据分类与未知项处理的设计原则:docs/tool-design.md
- 原生分析 provider 选型:docs/native-investigation.md
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考