☰
拆解 REA:AI 本地逆向工程工具的覆盖清单、证据契约与官方边界
2026/11/4 1:53:50 网站建设 项目流程

拆解 REA:AI 本地逆向工程工具的覆盖清单、证据契约与官方边界

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

REA(Reverse Engineer Anything)是一个面向 AI agent 的开源逆向工程工具,以本地 MCP 服务器和 CLI 两种形态运行,覆盖 JavaScript/Electron 应用、.NET 程序集、Android APK、Go/Rust 二进制到原生 ELF/Mach-O/PE 二进制。分析全程在本地机器完成,待分析文件不离开机器;每条结论附带可追溯的证据记录。适合研究未发布产品、内部工具或竞品实现的一线工程师。

📋 覆盖清单:能分析什么、需要什么

README 的 "What you can analyze" 表列出了完整的分析目标矩阵,以下摘录核心行:

分析目标REA 返回额外前置
原生二进制Pseudocode、assembly、strings、symbols、calls and references已有 Hopper、Ghidra、IDA 或 Kuna 安装
JavaScript / Electron模块、导入、source map、路由、IPC 与 native add-on 关系仅 Node.js + npm,无需逆向引擎
.NET 程序集元数据、CIL 指令、声明的 native 依赖、构建对比无(纯静态)
Android APK清单声明、类、反编译方法、引用Headless JADX + 完整 JDK(Linux/macOS/Windows x64)
固件区域检查、显式提取、原生分析交接Linux 上的 Binwalk / Unblob
Go / Rust 二进制内嵌编译器版本、模块 / cargo-auditable crate 依赖边内置静态检查,无需安装对应工具链

(来源:README.md "What you can analyze")

⚙️ 最小跑通路径

前置条件一条:Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)或 26.12.1+,外加 npm(来源:README.md)。无需任何逆向引擎,把路径换成解包后的应用目录或 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 记录中的工件身份(artifact identity)与来源位置是否指向真实文件。

注意 docs/cli.md 的提醒——完整应用 Evidence 对真实应用可达数百 MB,官方示例中 334 MB 的 Obsidian 应用 Evidence 投影出约 10 KB 的摘要视图。建议先落盘再用rea inspect-analysis-view做摘要投影,而非直接扫完原始输出(来源:docs/cli.md)。

🧭 证据契约:结论怎么钉在工件上

每次工具调用返回的不只是结论。契约原文:"Evidence records retain artifact identity, source locations, observations, inferences and unresolved findings."(来源:docs/cli.md)

调用方式返回内容可核验字段
解包目录 / ASAR +--json模块图、导入、Electron 边界 + 完整 Evidence工件身份、来源位置逐条对照目标文件
二进制路径 +--provider指定引擎伪代码、函数卷宗、交叉引用引擎具体版本绑定写入会话;失败按原始原因返回
两份 Evidence bundle(rea compare)规范化差异先经rea evidence-import验证再比较
rea doctor --json结构化环境诊断严格只读,不修改任何配置

两条关键设计原则值得单独说:

observed / derived / inferred 分库存放。官方设计要求 "Keep observed, derived, and inferred relationships distinct."(来源:docs/tool-design.md)——观察到的事实、推导出的结论、模型推测的关系不允许混写。这保证读者能区分"引擎实际看到了什么"和"agent 推断了什么"。

查不到记"未知"而非记"没有"。"Missing coverage is unknown, not absence."(来源:docs/tool-design.md)一个具体例子:Rust 二进制的.dep-v0段缺失时,官方定义为 null 元数据,而非"无依赖"的证明——"A missing.dep-v0section is null metadata, not proof that the binary has no dependencies."(来源:docs/cli.md)

🛑 官方边界:不自动做什么

官方把边界写进了契约,以下三条是最常被误读的:

  • 引擎故障不自动换人:"A selected provider is never replaced automatically after a runtime failure."(来源:docs/mcp-contracts.md)选定的 provider 在运行时失败后不会静默切换,失败按原始原因返回。
  • 伪代码不当源码:"pseudocode is never treated as original source or Hopper-equivalent text."(来源: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"(来源:README.md)——agent 会收到工具结果,模型服务商的数据策略需要自行评估。

引擎侧的原则是复用而非捆绑:"Native analysis can use an existing Hopper, Ghidra, IDA or Kuna installation"(来源:README.md)。静态 JavaScript 分析则一个引擎都不用装。

与 Ghidra 的进程通信不开公网端口,docs/installation.md 说明桥接使用 "a current-user-only local bridge socket and descriptor",即仅限当前用户的本地 socket 与描述符(来源:docs/installation.md)。rea doctor --json被定义为严格只读("strictly read-only"),不修改任何配置(来源:docs/installation.md)。

这张图证明原生分析结果来自对已安装 Hopper 的实时驱动——右侧面板可见文件路径、Mach-O Loader 与具体地址定位,而非模型事后生成的叙述。可核验细节:面板中加载的文件路径与当前分析会话的 target 一致,反汇编地址与analysis_provider_binding中绑定的 provider 版本对应。

深入文档

  • docs/installation.md:安装、引擎配置、rea doctor诊断与支持的 agent 列表
  • docs/cli.md:全量 CLI 命令、provider 选择、快照与退出码
  • docs/mcp-contracts.md:MCP 工具输出契约、provider 绑定与 session 生命周期
  • docs/tool-design.md:工具设计原则、证据分库与恢复策略
  • docs/rust-binaries.md:Rust.dep-v0解析细节与"未知"语义的具体实现

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询