如何用 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 逆向工程的开源项目:它把统一的 MCP(一种让 AI 调用外部工具的协议)服务器和命令行 CLI,变成 AI Agent 的逆向工具箱,支持免源码分析——不看源代码也能看懂应用行为,一路深挖到原生二进制。
图注:Agent 在 Hopper 中反汇编原生二进制,右侧面板实时呈现文件信息、地址定位与分析进度。
一、用起来是什么样:Agent 驱动 Hopper 反汇编二进制
先别急着看原理,看它跑起来的样子:你丢给 Agent 一句"研究一下这个 App 的搜索功能怎么实现",它自己打开 Hopper 反汇编器,定位字符串、追交叉引用(看哪些代码调用它)、把关键函数反编译成伪代码,Hopper 右侧面板同步滚动出文件信息、当前地址和进度。全程跑在你自己的机器上,产出的是实测数据,不是模型现编的。
官方把这套流程压成三步:反编译(Decompile),打开目标,把可读代码、字符串、符号等线索翻出来;理解(Understand),顺着代码走向,直到能解释功能如何工作;重建(Recreate),把自己学到的东西落到你产品的功能里。第三步不是"抄",边界放到第五节讲。
二、为什么可信:本地逆向分析与证据链
直接问 AI"这个 App 是怎么实现的",多半只收获一本正经的猜测——模型根本没看到真实数据。REA 的应对方式,落在两件事上。
数据留在本地:引擎复用与隐私边界
官方安全模型的说法是:REA 没有托管分析服务,现有 provider 都在本地完成分析与行为捕获,目标文件不会上传到任何云端。对未发布产品、内部工具、安全研究这类隐私敏感场景,这条边界几乎是硬性的;当然,你的 Agent 或模型服务商各有数据策略,需另行评估。
引擎是可插拔的:原生二进制的深度分析直接调用你手头现成的 Hopper、Ghidra 或 IDA;静态 JavaScript 分析则完全不用任何逆向引擎。和 Hopper、Ghidra 的通信走认证的本地私有 socket,不对外暴露网络端口——受控,也不增加攻击面。
每个结论都有据可查:证据记录五要素
REA 的每个分析结果都是一条规范化 Evidence(证据)记录,固定包含五要素:观测事实(实际看到什么,如反汇编、字符串、元数据)、工件身份(哪个文件、哪个版本)、提供者信息(哪个引擎、什么版本)、置信度与限制(结论多可靠、边界在哪)、未知项(明确列出没查到的部分)。
核心原则一句话:缺失的证据是"未知",不是"空",更不是"否"。契约定义在 docs/mcp-contracts.md——所有产出证据的工具都返回这种记录,可以直接喂给比较工具做版本对比、函数对比;设计哲学写在 docs/tool-design.md——观测事实与推导结论分开存,关键关系必须引用证据,没解决的边保留着不硬猜。新手拿到任何结论都能追问"证据在哪",而且它答得上来。
三、能分析哪些目标:六类对象一张表
| 目标类型 | REA 给出的分析 |
|---|---|
| 原生二进制(Mach-O / ELF / PE,三大平台的可执行文件格式) | 函数、伪代码、汇编、字符串、符号、调用图 |
| JavaScript / Electron | 模块、导入、Source Map、IPC 通道(进程间通信)的静态映射,无需运行应用 |
| .NET 程序集 | 元数据、CIL 指令、构建对比,不加载、不执行 |
| Android APK | 清单声明、类搜索、方法反编译,静态进行、无模拟器 |
| 网站 | 页面结构、网络元数据、脚本证据、截图,被动观察 |
| 固件 | Linux 固件区域检查与显式提取 |
这些能力同时以 CLI 和 MCP 两种形态暴露:终端里能单独跑某一步,Agent 对话里能整链委托,人和 Agent 都顺手。
四、三步接入你的 Agent
第 1 步:注册。运行npx rea-agents setup,交互选择要接入的 Agent——Claude Code、Cursor、Codex、Gemini CLI、VS Code 等都在列;批准前会先展示完整变更计划,并备份现有配置。
第 2 步:重启后直接提问。用自然语言说"帮我理解 Notes 的搜索怎么工作,展示证据",Agent 自动走完打开二进制、搜线索、追交叉引用、反编译关键函数整条链。
第 3 步:终端单命令验证(可选)。静态 JavaScript/Electron 分析零依赖,而且不会执行目标应用:
npx -y rea-agents@latest analyze-javascript-application /绝对路径/到/app --json返回内联证据、恢复出的模块图和明确标注的限制——不需要 MCP 配置,也不需要任何逆向引擎。环境拿不准时,随时跑一次体检:
npx -y rea-agents@latest doctordoctor检查宿主环境、依赖、分析引擎和 Agent 配置,只报告、不做任何修改。
五、它明确不做什么:诚实的边界
- 不声称能恢复原始源码——它展示的是结论如何得出,而不是还你一份源代码;
- 不会自动克隆应用;
- 重建校验只有三种状态:通过、失败、未知,"没验证到"永远不会被当成"验证通过";
- 失败时不静默换引擎糊弄过去。
这种克制,正是证据优先理念的另一面。
一句话记住 REA:它负责摆证据,你负责下判断。想深入的话,从 docs/installation.md 看环境要求、顺着 docs/index.md 的工作流文档往下读;另外 120+ 个 MCP 工具都是围绕分析师任务设计的,而不是把引擎 API 原样端出来。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考