AI软件下载
有趣网站推荐及实用软件下载

REA:用一个 MCP 让 AI Agent 逆向分析二进制、应用与运行时行为

看到一个喜欢的功能,想知道它是怎么实现的?REA 试图把这件事变成一句给 AI Agent 的指令。这个用 TypeScript 编写的开源项目定位为“Reverse Engineer Anything”,通过一个 MCP(Model Context Protocol)服务,把原生二进制、JavaScript/Electron 应用、.NET 程序集、Android APK、网站等不同目标的分析工具接入到 Agent 的工作流中。项目在 GitHub 上已获得约 46 万 Stars,采用 MIT 许可证。

项目在做什么

REA 的核心思路不是替代逆向工程师,而是给 Agent 提供一套可调用的检查工具。用户可以让 Agent 用 REA 调查某个应用中的功能,在没有源码的情况下查看实现方式,并得到结论背后的证据与局限说明。分析在本地运行,CLI 命令与 Agent 走的是同一套工作流。

项目也明确提醒:应通过 morluto/rea、rea.tools 或 rea-agents npm 包获取 REA,相似的仓库名或复制来的 README 不能证明下载来源是官方的。

可以分析哪些目标

README 列出了相当广泛的目标类型,不同目标对环境和外部工具的依赖并不相同:

  • 桌面安装目录:给出运行时候选、支撑文件、组件标记和下一步探查建议,使用内置的有界目录/文件头检查。
  • 原生二进制:返回伪代码、汇编、字符串、符号、调用与引用,需要 Hopper、Ghidra、IDA 或 Kuna 之一。
  • Go 二进制:读取内嵌的编译器版本、模块、替换项和构建设置,内置静态 ELF/PE/thin Mach-O 检查,无需安装 Go。
  • Rust 二进制:提取 cargo-auditable 中的 crate 名称、版本、来源和依赖边。
  • GPU 代码对象:识别 CUDA/HIP 目标、内核参数与资源,并保留 PTX 文本。
  • 模型文件:解析 GGUF / safetensors 元数据、张量声明和统计,可选全文件哈希。
  • Unity IL2CPP:静态解码 global-metadata.dat 的 24、27、29、31、39 版本,无需安装 Unity。
  • Godot PCK:归档清单与提取、原始头部/目录信息,支持格式 2、3、4,无需安装 Godot。
  • PE 证书与导入表:读取 Authenticode 条目、PKCS#7 签名者/X.509 字段,以及导入和延迟加载 DLL、序数、IAT RVA 和 pefile import hash。
  • Windows 快捷方式:解析 Shell Link 的目标、参数、工作目录、ExtraData 和 Tracker 信息。
  • ELF 备注与二进制加固:查看 PT_NOTE/SHT_NOTE、GNU build-id、ABI 标签,以及 PIE、NX、RELRO、CFG 等标志。
  • Apple IPS 崩溃报告:读取元数据、线程、镜像、寄存器等。
  • Linux 内核模块:.modinfo 键、__versions CRC、this_module 与签名尾部。
  • Erlang BEAM:IFF 块、原子、导出、导入、lambda 和 Code 头。
  • WASM:校验、段、精确的导入/导出 WAT 形式与解码后的 WAT,需要调用方提供 WABT 1.0.42。
  • EVM 字节码:分派选择器、字节偏移、推断参数与可变性,依赖 Linux x64 上的本地原始/十六进制载体。
  • SQLite 数据库:表、列、索引、视图、触发器和普通表行抽样,需要对数据库/WAL 做快照。
  • JavaScript / Electron:模块、导入、source map、路由、IPC、原生插件,并提供 rea audit-release-exposure 检查。
  • 网站:页面结构、脚本、网络观察和按需截图,需要 Chrome 系浏览器。
  • 网络抓包:HAR 或 Fiddler Everywhere SAZ 中的请求、响应、暴露的载荷和来源位置。
  • .NET 程序集:元数据、CIL 指令、声明的原生依赖和构建比较,纯静态分析。
  • Android APK:Manifest 声明、类、反编译方法和引用,需要无头 JADX 和完整 JDK;APK 签名检查则是纯静态的。
  • Android 设备:设备、包、进程、日志、转储、截屏和 APK/文件传输。

此外还有离线 ELF 布局、二进制崩溃记录等目标,分别要求 Linux x64 上由调用方提供 pwntools,崩溃记录可选配合 GDB/pwndbg。

安装与使用方式

运行环境方面,REA 要求 Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)或 26.12.1+,以及 npm。在 Linux 上,Ghidra、JADX、固件工具启动和静态 JavaScript/Electron 分析需要兼容 procps 的系统 ps,用于进程归属检查;安装文档中给出了恢复步骤。

初始化的入口命令是:

npx rea-agents setup

该命令会把 REA 的 MCP 服务器和配套的工作流说明注册到 Agent 中,并在修改现有配置前做备份。安装过程支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 等 Agent;用户可以选择要配置的 Agent,审阅变更后批准,然后重启 Agent。原生分析可以复用已有的 Hopper、Ghidra、IDA 或 Kuna 安装,setup 也可以在获得批准后可选安装 Hopper。静态 JavaScript 分析不需要原生分析引擎。

安装说明还提到几个操作细节:setup 会直接记录选定的运行时和 REA 入口脚本;如果通过包运行器获取,需要保留其缓存条目;包获取应在目标项目之外的可信目录中执行。

配置完成后,可以直接向 Agent 提问,让它用 REA 调查目标应用和功能。也可以在终端中使用:对已提取的 JavaScript/Electron 应用目录或 ASAR 做检查,结果会包含模块、导入、Electron 边界及其证据。若要把 rea 命令用于日常使用,需要额外安装;原生分析则要先配置 provider,具体命令见 CLI 与 Evidence 指南。

REA 更新频繁,README 建议保持安装为最新版本。通过 npm install --global 或 bun add --global 安装的 CLI,可以用 rea update 更新,rea --update 是同一流程的别名。更新器对 stdout 和 stderr 合计最多保留 4 MiB,超限的元数据回复会在命令退出后被拒绝。Bun 全局更新要求 Bun 1.2.17 或更高版本;更旧的 Bun 需要先手动升级。更新后应重新运行 setup 打印的命令,以刷新 Agent 注册和 skill。用 npx 的用户则通过 npx rea-agents@latest 更新初始化配置,一次性 CLI 命令可用 npx rea-agents@latest 加子命令,Bun 环境下把 npx 换成 bunx。

MCP 上下文控制

考虑到 MCP 工具描述会占用 Agent 上下文,REA 默认使用紧凑的输入 schema。需要完整字段说明和嵌套校验细节时,可在 MCP 注册中设置 REA_MCP_INPUT_SCHEMA_PROFILE=full。两种配置都保留完整工具集和服务端规范校验。

输出 schema 默认完整公布。如果客户端对完整 tools/list 帧有大小限制,可以设置 REA_MCP_OUTPUT_SCHEMA_PROFILE=compact 限制每个输出 schema,或设为 off 完全省略输出 schema;这两种设置同样保留服务端校验和完整的结构化结果。

适合谁用,以及需要注意什么

REA 面向需要快速理解闭源应用实现、做安全研究、分析二进制与运行时行为的开发者、安全研究人员和逆向工程学习者。它的价值在于把多种分析工具统一到一个 Agent 可调用的接口下,并强调结论要带证据和限制,而不是给出没有依据的猜测。

使用时需要注意:不同目标的环境依赖差异很大,原生二进制分析要先有 Hopper、Ghidra、IDA 或 Kuna,Android APK 分析需要 JADX 和完整 JDK,网站分析需要 Chrome 系浏览器;部分目标还限定了 Linux x64 或特定的 Node.js 版本。另外,README 对下载来源有明确的安全提示,安装前应确认来源。项目采用 MIT 许可证,平台信息显示其创建于 2026 年 4 月,最近一次更新在 2026 年 11 月。

项目主页

https://github.com/morluto/rea

项目地址:rea


AI软件用不了?2元爽玩4090: 立即体验>>

热门大语言模型API免费体验: 立即获取>>

软件催更及1对1人工答疑支持: https://nuowa.net/1806
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

觉得文章对你有帮助就打赏一下作者

非常感谢你的打赏,我将有更多的动力继续提供优质内容,让我们一起创建更加美好的世界!

支付宝扫一扫

微信扫一扫