Agent 实践

REA:把软件分析工具接进 Agent,结论必须带证据

文章目录
  1. 一句话定性
  2. 仓库速览
  3. 它怎么转:核心架构
  4. 分析路径:按目标挑工具,不硬凑“五大桥接”
  5. 三段位升级路线
  6. 场景迁移
  7. 灵魂
  8. 10 个可借鉴的设计模式
  9. 法律边界(重要)
  10. 资源链接

研究日期:2026-10-13。项目:morluto/rea,官网:rea.tools。

最近看到 REA (Reverse Engineer Anything),吸引我的不是 stars,而是它想把分散的软件分析工具接到 Agent 和终端。研究下来,它更像软件分析中间层,不是新操作系统,也不能凭一句提示就保证看懂、复刻任何软件。

蓝色像素虾在授权软件分析工作台拆解应用界面、模块关系与二进制层,并记录证据和未知
图 1:REA 把软件行为逐层拆开,价值在于解释机制并保留证据,而不是无条件破解。

一句话定性

REA 用 MCP、CLI 和配套工作流组织目标分析,按类型调用已有引擎或内置静态检查,并把证据与局限一起返回。

像一张分析工作台:问题从 Agent 或命令行进来,工具查文件、代码和行为,再由人核对推断。伪代码不等于原始源码,结构化证据也不能让模型自动免于误读。

原稿“想抄就能复刻”的说法过头了。可以研究有权分析的软件机制、形成独立实现思路,但不能据此复制受保护代码、素材或绕过访问及许可证限制。

仓库速览

维度 核对结果
维护账号 morluto;不由账号年龄认证专业能力
当前源码版本 package.json 为 6.4.0,仓库 main 不一定等于 npm 已发布包
Node 要求 22.x ≥22.19,24.x ≥24.11,或 26+;某些功能还有更高条件
许可 MIT,第三方材料和工具保留各自条款
入口 MCP、CLI、配套 Agent 工作流
外部引擎 按目标配置,不是 setup 自动取得所有工具和许可

删去“GitHub Top 0.001%”、平均增速、提交频率和多语言数量带来的质量推论。热度与文档体积都不能证明分析正确性、安全性或全部平台适配。

它怎么转:核心架构

├─ 触发层:明确目标、问题及获准操作范围
├─ 两种入口
│  ├─ Agent → MCP
│  └─ 终端 → CLI
├─ 共享分析工作流
│  ├─ 识别目标类型与所需 provider
│  ├─ 静态读取,或经单独授权的运行/设备/网络观察
│  ├─ 收集代码位置、符号、引用和实际观察
│  └─ 返回发现、证据、缺失项与限制
└─ 后续:人审结论 → 独立实现 → 自己编写并运行测试
智能体经 MCP、终端经 CLI,两条入口汇入共享分析并返回证据与局限
图 2:MCP 与 CLI 是不同入口,共用分析工作流;CLI 不必先经过 MCP。

CLI 与 MCP 使用共享工作流,不是所有 CLI 命令都先经过 MCP server。图中路由应按这一点理解;支持某类输入也不等于所有格式、架构和主机均可运行。

分析路径:按目标挑工具,不硬凑“五大桥接”

以下按官方 README 的目标矩阵记录能力,不是本文实测:

目标 主要结果 关键条件
原生二进制 伪代码、汇编、字符串、符号与引用 已合法安装并配置 Hopper / Ghidra / IDA,格式和主机因 provider 而异
JS / Electron 模块、导入、source map、IPC 等关系 静态读取输入文件,不需原生引擎
.NET 元数据、CIL 指令、声明依赖 静态路径,不宜写成完整恢复 C# 源码
Go 嵌入的编译器、模块和构建信息 内置静态读取,不要求安装 Go,也不是恢复全部算法
WASM 验证、节区和 WAT 用户提供 WABT 1.0.42
离线 ELF / Linux 崩溃记录 布局、符号或记录中的寄存器等 Linux x64、用户提供 pwntools;崩溃分析可选 GDB/pwndbg
Android APK manifest、类、反编译方法与引用 headless JADX + 完整 JDK;设备操作还需 adb 和另行授权
网站 页面、脚本、网络观察、按需截图 Chrome 系浏览器,不是统一用 mitmproxy 抓取
已保存网络记录 请求、响应、载荷与来源位置 HAR / Fiddler Everywhere SAZ;原生 mitmproxy 记录需 Linux 上 mitmdump
EVM selector、字节位置、推断参数等 Linux x64 本地 raw/hex 输入,不等于完整安全审计
SQLite schema 和选定普通表行 本地数据库/WAL 快照;Node 24.x ≥24.15 或 26+

Android 反编译结果不是保证可重新编译的原源码。SQLite 也说明“Node 22.19 能启动 REA”不等于所有功能都可用。其他固件、包、设备或运行时路径要继续查对应指南,不能由目录名凑出“全部主流工具一站式接管”。

IDA 尤其要单独看。 官方适配文档描述现有 IDA MCP 的适配和可选 native bridge,有 attached/headless 等不同条件;REA 不提供 IDA 安装、激活或商业授权。可选桥的部分版本监听边界需另行限制,REA 的 loopback URL 校验不会改变上游监听地址。IDA Free 云端反编译可能联网并改变 GUI 焦点,不能据“本地分析”概括成全程零外发。

按目标选用静态、动态和流量观察形成证据记录,并同时返回结论与未观察到的限制
图 3:结论和局限必须一起返回,才能区分已经观察到的事实与仍然未知的部分。

返回 evidence + limitations 是好设计,但证据完整性、输入身份、引擎截断、静态/动态范围和模型推断仍需审阅。未知字段不等于不存在,样例成功也不等于所有目标可复现。

三段位升级路线

入门(先确认条件):选择自编译或明确获准分析的 JS 样本,先读工作流与变更计划。

# 官方 setup 示例;会提出 Agent 配置和工作流变更,需审阅后批准
npx rea-agents setup

# 官方静态 JS/ASAR 示例;路径替换为已授权的本地样本
npx -y rea-agents@latest analyze-javascript-application /path/to/authorized-sample --json

setup 会备份已有配置、注册匹配入口;可经批准安装 Hopper,但不会自动装好 Ghidra/IDA 或授予商业工具许可证。本文没有执行命令。需要复现时固定实际 npm 版本与引擎版本,别把 main 的新能力默认算进 latest 包。

进阶(理解证据链):为一个具体问题选 provider,核对目标哈希、函数位置、引用、截断与未观察部分。动态分析、设备操作及网络观察有独立副作用,不能因为静态读取获准就默认全部可做。

高手(组合验证):用静态证据提出假设,再在授权环境中用动态观察或自编写对照测试检验。生成实现后仍需编译、功能和边界测试,不把“Agent 写了测试”当“测试已经运行通过”。

更新也分入口:rea update 针对 npm/Bun 的全局 CLI 安装;npx 用户按 README 用 npx rea-agents@latest setup 刷新注册并审阅变更。它不是“永远兼容最新引擎”的保证。

场景迁移

  1. 机制理解与独立实现:研究可观察的算法/协议思路,区分思想、受保护表达、数据和素材的权利。
  2. CTF 与授权安全研究:用比赛明确允许的目标和隔离环境;教育用途不是对真实第三方服务的授权。
  3. 旧软件维护与格式迁移:先核使用、分析和输出再利用范围,保留原系统与证据。
  4. 协议分析:授权文件分析不自动涵盖在线账号、拦截流量、第三方设备或私有 API 调用。
  5. 教学:用自编译样本和许可明确的练习题,给学生展示错误推断及证据边界。
  6. 跨平台迁移:以行为规格和独立测试为目标,不把分析当作机械翻译或完整源码恢复。

灵魂

“让 Agent 能调分析工具,并把为什么这样判断、哪里还不知道一起交出来。”

这比“逆向工程操作系统”“看懂任何软件”更准确,也更值得借鉴。项目的 worked examples 可帮助读者理解流程;其中复现数字仍是项目案例报告,不是本文独立验证。

10 个可借鉴的设计模式

  1. 统一入口:减少客户端对多种工具协议的直接耦合。
  2. 证据与局限成对返回:便于追问,不保证模型不出错。
  3. 安装先展示变更并备份:仍需用户审阅权限和配置。
  4. 目标/引擎/主机分别声明:用矩阵写支持范围,不暗示全覆盖。
  5. 明确动作边界:静态、执行、网络、设备分开授权。
  6. 翻译文档:改善可读性,不以数量认证社区质量。
  7. 可核对样例:写清输入、版本、结果和未验证项。
  8. 适配器:保留上游能力差异,不把缺失能力伪装成成功。
  9. 版本与发布渠道对应:源码、npm 包和本机引擎分别记录。
  10. 可审阅更新:注册和依赖更新不应无条件当成兼容性证明。

法律边界(重要)

工具许可、目标授权和使用范围是三个独立核验事项,开源声明不能代替分析目标的授权
图 4:工具许可、目标授权与使用范围要分别确认,开源工具并不自动授予分析任何目标的权利。

先把三件事分开:REA 自有代码许可、第三方分析工具许可、目标及操作授权。MIT 不授予 IDA/Hopper/JEB 的密钥或使用额度,更不授予目标软件与用户数据的任意分析、复制或传播权。

DISCLAIMER.md 原文明确项目不支持绕过 DRM、许可证检查、反作弊、未授权访问控制或复制受保护代码/素材,并提醒文件在手不等于任何操作都获准。这是项目使用定位与社区支持边界;文档也明确不修改 MIT 或第三方许可证,不能改写成 MIT 新增“仅研究”条件。

原稿“几乎所有商业 EULA 都禁止逆向”过于笼统,删除。要看具体合同、法域、目标权利、动作和输出用途。美国 17 U.S.C. §1201 原文有反规避规则及附条件的互操作、研究等条款,版权局页面另列临时豁免程序;它们不是只要自称研究就适用的通行证。

欧盟原法规链接本次遇到 JavaScript/反机器人验证,未读到条文,故不保留原稿具体例外判断;这不是说该例外不存在。本文不处理各地个案法律适用,涉及商业再利用、拦截或保护措施时应取得适用的专业评估。

“企业内部一律法务审核”“学术逆向一律走 IRB”也不是本次资料能支持的普遍规则。按组织要求审查;涉及人体研究、个人数据等时再确认适用的伦理、隐私与审批要求,不能把所有软件分析研究一概等同人体研究。

最后还要查数据流:REA 本地处理不代表工具结果不会进入模型服务,也不保证被执行的目标或第三方工具不联网。凭证、源码片段、流量和调查记录都应按实际权限与保留规则管理。

资源链接


2026-10-13 资料核对说明: 实际读取官方 README、package.json、MIT LICENSE、DISCLAIMER.md、IDA provider 文档及美国版权局 §1201 原文/程序页;欧盟条文访问受验证阻碍,未核验。本文未安装 REA 或任何引擎、运行分析、抓包、接设备或复现案例,属于资料核对,不是实测报告。

记录到这里,判断留给实践。