☰
如何用 REA 做 AI 逆向工程:免源码、本地二进制的完整指南
2026/10/12 2:21:42 网站建设 项目流程

如何用 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 doctor

doctor检查宿主环境、依赖、分析引擎和 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询