REA 6.3.0 发布:捕获与契约格式破坏性收紧,CLI 支持流式 JSON

REA 6.3.0 发布:捕获与契约格式破坏性收紧,CLI 支持流式 JSON

3天前
duguying
7 阅读
来源:GitHub Releases

逆向工程 MCP 工具 REA(Reverse Engineer Anything)发布 rea-agents 6.3.0:本版含 8 项破坏性变更(捕获与契约格式收紧)、约 70 项缺陷修复与 3 项性能优化,CLI 的 JSON 输入输出改为流式处理以突破整文档长度限制。

相关标签

#REA#逆向工程#MCP#开源

发布概览

REA(Reverse Engineer Anything)是一个面向逆向工程的 MCP 工具集,用一句话概括它的定位是:”看到一个喜欢的功能,就把它弄懂,直到二进制层面。”它把原生二进制、JavaScript/Electron 应用、.NET 程序集、Android APK、固件、网站以及运行时行为的检查能力统一接入 AI 代理(Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等),也可以在终端直接调用。分析在本地完成,每条结论都会附带证据与局限说明,项目以 MIT 协议开源,README 中显示已有 6 万 GitHub Stars。

2026 年 10 月 9 日,REA 发布 rea-agents 6.3.0。这是一个体量较大的版本:包含 8 项破坏性变更(集中在捕获与契约的数据格式)、2 项新功能、约 70 项缺陷修复、3 项性能优化,以及一批重构、文档与测试改进。由于 6.2.0 到 6.3.0 之间变更密集,官方在 README 中特别提醒用户保持升级。

核心亮点

1. 破坏性变更:捕获与契约格式收紧

本版最重要的变化是若干数据格式不再”容忍”缺省或合成值,涉及以下方面:

  • 捕获(captures):缺少当前生产者记账(producer accounting)或事务标识的历史捕获将被拒绝;Web 差异若缺少无障碍(accessibility)或存储(storage)维度也将被拒绝。官方建议保留原始捕获、用当前生产者重新采集,并让比较消费方包含所有维度,而不是合成缺失的观测值(参见流程捕获指南与浏览器场景契约)。
  • 浏览器:JSON 形状路径现在包含带类型的属性段与数组元素段;WebMCP 的 input_schema_shape 被 input_schema 与 input_schema_sha256 取代,并保留声明的示例与默认值。
  • 进程:文件系统摘要省略条目现在必须提供 system_code;预算与变更文件的省略项使用 null,不可用文件的省略项保留操作系统错误码。
  • 契约:提供方分析输出必须显式提供此前由默认值修补的元数据;不支持的 nullable 面(facet)必须以 null 上报。
  • JavaScript:语义图事实现在存储证据上下文 ID 与位置,图与语义追踪结果要求内联的 evidence_contexts 表;同时移除了从未被累加过的 truncated_scopes 统计项。
  • 原生分析:Objective-C 属性标记现在只包含名称与值;属性报告可空的 atomicity 与 readonly 事实,类标志、ivar 计数与方法要求标志在未被观测到时可空。

2. 新功能

  • setup 注册 OMP(#1301):安装流程中新增 OMP 注册。
  • JavaScript:记录 Electron 完整性不匹配:Electron 应用分析现在会记录完整性校验不匹配的情况,便于判断被分析产物是否被篡改或与声明不一致。

3. 修复重点:CLI 流式处理与产物提取

约 70 项修复分布在多个子系统,其中几类值得关注:

  • CLI 的 JSON 输入输出不再受整文档长度上限限制:新增流式 JSON 输入与输出(#1360,修复 #1331),并分别归类权限拒绝与超长输入错误。这意味着分析大型产物时更容易拿到完整结果。
  • 产物(artifacts)提取的完整性:拒绝不完整的清单化提取、仅校验处于活跃状态的提取条目、将 ASAR 解释绑定到自有快照、保留归档事实与 Unicode 路径标识、推断旧版 Mach-O 模拟器平台、在挂载不确定时保留 DMG 所有权。
  • 浏览器场景的生命周期:修复附加场景的模拟状态在清理前被提前释放、viewport 覆盖归还时误改外部页面尺寸、清理结算顺序、source map 重定向只跟随 HTTP 重定向状态码、保留畸形重定向诊断。
  • 原生分析提供方(Hopper / Ghidra / IDA):拒绝为其他主机平台构建的反编译器(#1280)、Ghidra 启动回滚失败后仍保留进程所有权、Hopper 在多字节指令上探测内部导航、Hopper 在已验证的自有提供方关闭后允许重启、IDA 一致地比较被接纳的文档路径。
  • JavaScript 语义证据保真:修复有符号零被记录为正零、satisfies 表达式丢失语义证据、通过词法绑定解析导出的可调用对象、区分仅前缀的内置模块与包、保留数组长度变更后的身份、保留条件式变更顺序的不确定性。
  • 其他:捕获失败后仍保留已完成的观测、后续分析步骤失败时保留已完成观测、setup 为 Claude Code 正确安装 skill、更新时保留已禁用的客户端注册、快照保留完整的调查修订历史。

4. 性能优化

  • JavaScript 版本关系改为每次比较只建立一次索引(#1347)。
  • JavaScript 版本变更图只校验一次(#1370)。
  • JSON 流式编码改为迭代实现(#1322),避免深结构带来的栈压力。

5. 重构、文档与测试

  • 重构方向以”使用规范化实现与类型”为主:合并边界语义并清理冗余测试、移除非规范化实现与单次使用的转发辅助函数、移除过时的源码排除与标识包装。
  • 文档侧补充了 README 插图与多语言版式对齐、合并了围绕所有权与边界的代理指引、新增仓库内的 REA 工具设计 skill,并移除了已退役的架构与迁移产物。
  • 测试与 CI 侧大量复用夹具与固件、补充提取竞态与重定向状态的独立用例,并将验证范围收敛、复用原生 runner(#1344)。

项目能力概览

REA 要求 Node.js 22.x(≥22.19)、24.x(≥24.11)或 26+,可分析的目标类型包括:

  • 原生二进制:伪代码、汇编、字符串、符号、调用与引用(需要 Hopper、Ghidra 或 IDA 之一)
  • 离线 ELF 布局:节区、段、原始符号/重定位与静态缓解候选(Linux x64 + pwntools)
  • EVM 字节码:分发选择器、字节偏移、推断参数与可变性
  • 已记录的 Linux 崩溃:各线程寄存器/信号与可选映射候选
  • JavaScript / Electron:模块、导入、source map、路由、IPC 与原生插件关系(无需原生分析引擎)
  • 网站:页面结构、脚本、网络观测与截图
  • 已保存的网络捕获:请求、响应、暴露的载荷与源码位置(HAR;Linux 下支持原生 mitmproxy 捕获)
  • .NET 程序集:元数据、CIL 指令、声明的原生依赖与构建比较(纯静态)
  • Android APK:Manifest 声明、类、反编译方法与引用
  • 固件:区域、提取结果与原生分析交接
  • 进程行为:终端输出、交互、退出与文件系统观测及运行比较

官方网站提供了完整的使用指南与真实案例:例如 DX-Ball 的声音声像计算重建(通过 3,205 个原始 x86 用例并复现全部 63 字节编译后函数)、Notion 的 Electron 剪贴板桥追踪、TH04 的 DOS 子弹环计算恢复。

关于合规与使用边界

REA 在 README 中明确声明:它提供的是用于合法逆向工程研究、分析与重建的工具,使用者需自行获得必要授权并遵守适用法律,项目不认可任何非法或未授权用途。此外项目声明其本身是开源软件项目,未发行也未认可任何加密货币或代币,使用 REA 名称的代币与该社区无关。

获取与升级

npx rea-agents setup
  • 在终端直接进行静态 JavaScript/Electron 分析:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
  • 长期使用可全局安装,并通过内置命令升级:
npm install --global rea-agents
rea update

升级提示: 本次为破坏性变更版本,若你有依赖捕获文件或契约输出的脚本、仪表盘或比较流程,升级前请先对照发布说明逐项检查上文的格式变更。

返回列表

更多资讯

想看更多优质内容?

浏览所有资讯