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 服务器和命令行 CLI 变成 AI Agent 的逆向工具箱。核心能力是免源码分析:不看源代码,就能看懂应用行为,一路深挖到原生二进制。所有分析在你本机执行,每个结论都附带可核查的证据记录。
一、直接问 AI "这个 App 怎么实现的",为什么只收获猜测
你想知道某个 App 的搜索功能是怎么实现的,直接问大模型,多半得到的是一本正经的猜测——模型没见过这个二进制,没见过它的字符串和符号,答案只能是推断,不是实测。
差距在于分析是否基于真实数据。REA 的做法是让 Agent 自己打开分析工具:定位字符串、追交叉引用、把关键函数反编译成伪代码,每一步结论都能回指到一条观测事实。
二、结果从哪里来:本地执行、可插拔引擎与不上传文件的隐私边界
REA 没有托管分析服务:分析与行为捕获全部在你机器上完成,目标文件不会上传到任何云端。
原生深度分析引擎是可插拔的。REA 直接调用你手头现成的 Hopper、Ghidra 或 IDA,不引入新的分析栈;静态 JavaScript 分析则完全不需要任何逆向引擎。
与引擎的通信走认证的本地私有 socket:Linux/macOS 使用仅当前用户可访问的本地桥接 socket,Windows 使用认证回环通道。不对外暴露网络端口,也不增加攻击面。
你拿到的结果,是这些引擎的实测数据,不是模型生成的文本。
三、读懂分析输出里的 Evidence 记录:观测事实、工件身份与未知项
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 固件区域检查与显式提取 |
四、从 0 到第一次分析:注册、提问、终端单命令验证
第 1 步:注册。装好 Node.js 和 npm 后,运行:
npx rea-agents setup交互选择要接入的 Agent(Claude Code、Cursor、Codex、Gemini CLI 等都在列)。批准前会先展示完整变更计划,并备份现有配置。
第 2 步:重启后直接提问。重启 Agent,用自然语言说"帮我理解 Notes 的搜索怎么工作,展示证据",Agent 会自动走完打开二进制、搜线索、追交叉引用、反编译关键函数这条链。
第 3 步:终端单命令验证(可选)。静态 JavaScript/Electron 分析零依赖,也不会执行目标应用:
npx -y rea-agents@latest analyze-javascript-application /绝对路径/到/app --json npx -y rea-agents@latest doctor第一条命令返回内联证据、恢复出的模块图和明确标注的限制;第二条是环境体检,检查宿主环境、依赖、分析引擎和 Agent 配置,只报告、不做任何修改。
五、信任的边界:REA 明确不做什么
- 不声称恢复原始源码——伪代码是反编译器输出,不是源码;它展示的是结论如何得出,而不是还你一份源代码;
- 不会把"没验证到"当成"验证通过"——重建校验区分通过、失败、未知等状态,失败、未知、截断永远不会被聚合成通过;
- 不会把未解释的关系静默抹掉——调用关系查不到就留在未知项里,覆盖不完整的空结果不算"不存在"的证明;
- 静态分析不运行目标应用——JavaScript 与 .NET 检查只读取文件,不加载、不执行;
- 不安装或改动其他引擎——setup 只在批准后写入 REA 自己的配置,从不下载、安装或修改 Ghidra、Java 等工具。
一句话记住 REA:它负责摆证据,你负责下判断。想继续深入,从 安装说明 看环境要求与引擎配置,顺着 docs/index.md 的任务表选对应的分析指南往下读。
【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考