REA 逆向工程工具包:让 AI Agent 真正拆解二进制

REA 是一套本地化、带证据回执的 AI Agent 逆向工程工具链,94个命令全程不上云。
REA(Reverse Engineer Anything)是一款面向 AI Agent 的本地逆向工程工具链,提供 94 个子命令,支持 Ghidra、Hopper、IDA 等主流反编译引擎,全程不依赖任何云服务。其核心设计哲学是"证据驱动":每个分析结论都附带结构化证据包,记录来源、置信度与未知项,命令行与 MCP 服务器两道入口返回完全一致的结果。工具覆盖二进制原生分析、Android 包、Electron/JavaScript 应用、固件等多种目标,能在不运行代码的前提下静态恢复进程间通信通道等结构信息,同时如实标注动态关系的不可知状态。REA 同样以"诚实边界"著称:缺少引擎时礼貌拒绝而非编造答案,明确声明反编译无法还原原始源码。对需要从字符串追到伪代码的开发者和安全研究者而言,这是一套值得认真评估的工程级工具链。
逆向工程长期以来是一项高度依赖经验与直觉的工作:dump 字符串、翻反汇编、然后祈祷自己正在读的那个函数恰好是关键函数。大多数调查在能解释清楚一个功能之前就已停滞。REA(Reverse Engineer Anything)试图改变这一局面——它为编程 Agent 提供了一套真正可用的逆向工程工具链,把二进制文件转化为字符串、交叉引用和可读的反编译代码,而且每一条结论背后都带着证据。
REA 是什么:本地化的 Agent 逆向工具链
REA 的核心定位很明确:94 个子命令,一次本地安装,全程不依赖任何云服务,所有分析都在你自己的机器上完成。它既是一个命令行工具,也是一个本地服务器,你的 AI 助手可以通过其中任一入口与之对话。
整个工作流被拆解为三步:先反编译目标以恢复代码、字符串和符号名;再顺着这些线索追踪,直到 Agent 能解释某个功能的真实实现方式;最后在你自己的技术栈里重建这个功能。你只需要一句提示——描述你欣赏的某个 App 及其功能,剩下的挖掘工作交给 Agent。它会打开目标、跟踪证据,并写出调查结论。
从代码规模看,这不是一个周末玩具。项目底层约有 900 个 TypeScript 文件和数百个测试,源码目录按 provider 组织,从 Android 到浏览器一应俱全。命令目录由源码自动生成,因此不会与实际代码产生漂移。所有内容都可读、无服务遮挡,可以在信任它之前先行审计。

REA 所采用的 MCP(Model Context Protocol)架构值得单独说明。MCP 是由 Anthropic 提出的一套开放协议,旨在让 AI 模型以标准化方式调用外部工具和数据源。REA 通过本地 MCP 服务器暴露其全部子命令,意味着任何支持 MCP 的 AI 客户端(如 Claude Desktop、Cursor 等)无需额外适配就能直接调用 REA 的逆向能力。这与传统"把代码粘贴给 AI"的方式有本质区别:Agent 可以主动发起工具调用、获取结构化返回、再根据结果决定下一步动作,形成真正的推理-执行闭环,而不只是单轮问答。
安装与环境:一分钟上手,引擎自备
REA 的安装门槛不高:安装可执行文件、指向一个分析引擎、让 setup 把一切注册到你的 Agent。关键细节是——setup 在动手之前会展示它将要触碰的具体文件,每一步都需要你批准,还提供 dry run 预览计划而不实际执行。
运行要求相当克制:Node 22 或更新版本,运行在 Linux 或 macOS 上,列表中没有任何需要 sudo 的东西。静态 JavaScript 检查甚至什么引擎都不需要,这也是你可以在安装任何引擎之前就先试用的原因。
深度原生分析才需要引擎。Ghidra 是免费开源的首选,Hopper 是另一个一流选项(无授权时可运行 demo 模式),IDA 同样受支持。配置通常只需导出安装路径和 Java home,再运行 doctor 确认即可。doctor 会检查运行时、系统和每一个已配置的引擎,在全新机器上会诚实地告诉你"目前什么都还没接好",然后给出修复方法。

Ghidra、Hopper 与 IDA 是当前逆向工程领域三款主流反编译引擎,定位各有侧重。Ghidra 由美国国家安全局(NSA)开源,支持 x86、ARM、MIPS 等主流架构,完全免费,是社区生态最活跃的选择,但需要 Java 运行环境。Hopper 是 macOS/Linux 平台上的商业工具,界面轻量,支持脚本扩展,demo 模式下可使用核心功能但有保存限制。IDA Pro 是业界标准,反编译质量最高,尤其在处理复杂混淆或商业固件时优势明显,但授权费用相当昂贵。REA 将三者统一抽象为可互换的"provider",工具链本身不绑定任何一款引擎,用户可根据已有授权和目标平台自由选择。
证据优先:每个结论都带"回执"
REA 最值得关注的设计哲学是"证据包"(evidence bundle)。每一个答案都会记录:观察到了什么、来源在哪、置信度多高、以及还有什么未知。无论从命令行还是从服务器,Agent 读到的都是同一套结构。用视频里的话说——"没有回执的论断只是论断。"
这些证据工具就是普通的子命令:导出成规范格式、导入他人产出的证据包、比较两次运行、或把提交的构建与 App 实际发布的版本做 diff。全部可以从 shell 直接运行,不必经过 Agent。昂贵分析的快照可以存到磁盘,下一个问题直接从文件回答,省去重跑引擎的成本,而文件是本地、仅属主可读、随时可删的。
命令行与服务器是"一套实现,两道门":运行相同的工作流和相同的契约。你在终端拿到的结果,与 Agent 看到的完全一致。退出码也会向脚本如实反馈成功、失败或信号。全程没有任何上传,分析只发生在本机。
REA 的"证据包"设计在 AI Agent 工程化落地中解决了一个核心问题:幻觉溯源。当 AI 模型基于工具返回结果给出结论时,若工具本身只返回纯文本答案,用户无从核验模型是在引用真实数据还是在"填空"。结构化证据包通过强制记录每一条声明的来源文件、代码行号和置信度,把"可核验性"内置到工具契约里,而非依赖模型的自我约束。这与 RAG(检索增强生成)系统中引用文档段落的做法思路相近,区别在于 REA 的证据是从二进制文件动态提取的工程事实,而非静态语料。这种设计让 Agent 的每一步推理都可以被人类审计员或下游自动化流程独立复核。
不止二进制:静态分析覆盖多种目标
REA 的能力面相当宽:41 个原生检查工具、14 个调查工作流,外加针对 artifacts、托管代码、固件、Android 和浏览器的独立命令族。18 个 provider 支撑起整套分析能力。
一个有说服力的例子是 Electron/JavaScript 应用——REA 可以在不运行一行代码的情况下完成映射。在一个真实桌面 App 上,它在没有启动应用的前提下恢复了完整的进程间通信通道列表:历史记录、下载、热键、对话框、更新检查,共 45 个通道,每一个都回溯到声明它的那一行代码。通道之下是更庞大的图:每个节点都带类型,包含源码范围、表达式、读取、调用点和绑定——这些全部可从未被执行的文件中恢复。
但 REA 也坦诚边界:由于什么都没运行,动态关系保持未解析状态,而且文档会在列出"成果"的同一段落里明说这一点。一个了解边界的 Agent 会报告未知,而不是凭空编造。缺失的证据永远不算通过。

Electron 应用是一类特殊的逆向目标,值得补充背景。Electron 框架将 Chromium 浏览器引擎与 Node.js 运行时打包进同一个桌面应用,因此分发包本质上是包含 HTML、CSS 和 JavaScript 的 Web 应用加上一个本地运行时。开发者通常用 asar 格式打包资源文件,虽然并非加密,但会阻止直接浏览。Electron 应用的主进程与渲染进程之间通过 IPC(进程间通信)通道交互,这些通道的声明完全存在于静态 JavaScript 文件中。REA 能够在不启动应用的情况下解析出全部 IPC 通道,正是利用了这一特性——源码级的声明留有充分的静态可分析痕迹,而无需触碰任何运行时状态。
诚实作为信任基础
这款工具最打动人的地方,恰恰是它对"做不到什么"的坦白。在没有配置引擎时请求深度原生分析,REA 会礼貌拒绝——它会指出缺失的 provider、原因以及修复命令,没有静默降级,也没有编造答案。
引擎需要你自备。Ghidra、Hopper、IDA 是各自独立、各有授权的产品,setup 从不未经询问就安装任何一个。JavaScript 静态分析不需要它们,所以免费路径是真正免费的。会话结束同样纳入契约:若会话异常中断,它会说明哪些资源无法验证,而不是悄悄声称干净退出;关闭会话会移除临时项目,但不碰你自己的工具和工作。
最关键的一条底线:没有任何反编译器能承诺还原原始源码,REA 用大白话说清了这一点。它会解释如何得出结论,但绝不声称能替你克隆一个应用。证据,而非热情——这是它的全部承诺。

工程成熟度与路线图
REA 并非停摆项目。最近的提交混合了文档修复、语义分析修复和 MCP 提示相关工作,表明它处于活跃维护状态。仓库运行聚焦测试、完整检查和真实 provider 验证,拥有数百个测试文件来证明边界,关于引擎的声明会对照引擎本身进行校验——无法校验的结果就不算通过,CI 跑的也是你本地可运行的同一套检查。
版本迭代同样清晰。Version 4 一次性带来了 Android 包分析、固件提取、Ghidra 注解和 Windows 支持。功能上线都附带 issue 编号,便于追溯改了什么、为什么改。路线图公开且务实:当前重点是保持文档准确与扩展原生覆盖,接下来是静态提取与运行时观察之间更深的分层、对混淆构建的更好比较,以及更多运行时行为分析。
卸载也很干净:卸载程序只移除它自己拥有的注册项,不会顺着符号链接进入你的数据目录。保留引擎、保留证据,仅移除集成。
结语
REA 把逆向工程从"猜测驱动"推向"证据驱动",并以可本地审计、不上传、带回执的方式,把这套能力交给 AI Agent 执行。94 个子命令、80 个编目命令、18 个 provider,一个 path 上的二进制,没有任何账户——对需要从字符串追到伪代码的开发者和安全研究者而言,这是一套值得认真评估的工具链。
相关推荐

前端转AI Agent开发:一线架构师解析职业路径与红利
一线AI架构师解析前端转AI Agent开发的行业变化与落地路径:纯前端岗位为何消失、Agent+全栈为何成为招聘主流,以及Agent开发工程师、FDE、远程接单三条转型路线和对应学习策略。

AI Agent开发课程怎么选?五条避坑指南
机械转行开发者踩坑两年总结的AI Agent开发课程筛选清单:完整交付链路、可写进简历的项目、真实开发视角、更新频率、陪跑反馈五个维度,附具体判断方法和避坑要点。

扣子(Coze)智能体搭建入门:零代码开发AI Agent实战指南
扣子(Coze)是字节跳动推出的一站式AI应用开发平台,支持零代码拖拽搭建AI智能体。本文基于B站教程梳理扣子的核心概念、三大优势、国内版与国际版差异,以及智能体与应用的区别,帮助初学者快速入门AI Agent开发。