bbylw/rea-cn
REA:逆向一切 通过一个 MCP 服务,逆向分析二进制文件、应用程序和运行时行为。 看到喜欢的功能,弄清它的工作原理,深入到二进制层面。
什么是 REA?
REA(Reverse-Engineered Anything) 是一个 基于 Node.js 的平台,让大语言模型代理能够与传统逆向工程工具(Hopper、Ghidra、IDA 等)以及用于 JavaScript/Electron、.NET、Android、固件、Web 捕获等静态分析工具套件进行对话。其理念是让 AI 助手向工具询问“这个功能是如何工作的?”,并获得具体的证据——反编译代码、调用图、字符串、资源列表、截图——代理可以据此进行推理、解释,甚至重新实现。
工作原理
- MCP 服务 – REA 运行一个本地的 Micro-Component-Protocol 服务器,暴露分析命令目录。
- 代理注册 – 使用
npx rea-agents setup将服务注册到受支持的 LLM 驱动代理(Claude、Gemini-CLI、Cursor、Grok 等)。设置过程还会安装一个 技能(提示指南),告诉代理如何构造查询。 - 提出问题 – 您输入自然语言请求,例如“解释 Notion 的搜索功能并提供证据。”
- 工具执行 – REA 调用适当的后端(Hopper、Ghidra、JavaScript 解析器、浏览器爬虫等),并返回结构化的 证据(伪代码、汇编、模块图、截图、网络日志)。
- 代理响应 – LLM 使用证据回答问题,甚至可以生成您可以测试的新代码。
相同的工作流程也可通过命令行使用,因此您无需 LLM 即可编写分析脚本。
可以分析什么?
| 目标 | 返回的证据 | 所需工具 |
|---|---|---|
| 原生二进制文件(x86/ARM) | 伪代码、汇编、字符串、符号、调用引用 | Hopper、Ghidra 或 IDA |
| ELF 布局 | 节、符号、重定位、静态保护 | Linux 上的 pwntools |
| EVM 字节码 | 分派选择器、推断的参数、状态可变性 | Linux 上的原始字节/十六进制输入 |
| 记录的 Linux 崩溃 | 寄存器、信号、可选的内存映射 | pwntools、可选 GDB |
| JavaScript / Electron 应用 | 模块、导入、源映射、IPC 桥、原生扩展 | Node.js/npm |
| 网站 | DOM 结构、脚本、网络跟踪、截图 | 基于 Chrome 的浏览器 |
| HAR 捕获 | 请求、响应、负载 | HAR 文件、可选 mitmdump |
| .NET 程序集 | 元数据、CIL、原生依赖、构建差异 | 仅静态分析 |
| Android APK | 清单、类、反编译的方法 | JADX + JDK |
| Android 设备 | 包、进程、日志、转储、截图 | adb |
| JEB 项目 | 项目单元、工件摘要、伪代码 | 通过 MCP 的 JEB 客户端 |
| Android 资源 | 解码的清单、字符串表、区域设置 | Apktool |
| 固件镜像 | 分区、提取的文件、移交给 binwalk | Binwalk/Unblob |
| 包和资源(Apple 捆绑包、JS 工件) | 文件列表、plists、资源提取 | 各种辅助工具 |
| 进程行为 | 终端输出、文件系统更改、运行时差异 | 支持 PTY 的 Linux/macOS |
静态 JavaScript/.NET 检查仅读取文件;运行时捕获在您的用户权限下运行目标程序。
快速入门
# 1. 安装 Node 22/24/26 和 npm
npx rea-agents setup # 注册 MCP 服务并安装技能
# 2. 向代理提问(通过您选择的 LLM 客户端)
# 例如:“解释 Notes 应用的搜索功能并显示证据。”
# 3. 或直接运行 CLI 分析
npx -y rea-agents@latest analyze-javascript-application /path/to/app --json
您也可以全局安装 CLI:
npm install -g rea-agents
rea --help
更新通过 rea update(npm install)或 npx rea-agents@latest setup 进行技能更新。
示例展示
- DX-Ball – REA 追踪了经典 PC-98 游戏中的声音平移例程,将不完整的伪代码转换为 C,并通过了 3,205 个原始 x86 测试用例。
- Notion – 跟踪了从渲染进程通过预加载脚本到主进程的 Electron 剪贴板桥,暴露了富文本剪贴板 API。
- TH04 – 反编译了 16 位 DOS 子弹轨迹代码,重建了 C++ 逻辑,并与原始编译器输出进行了匹配。
完整的案例研究在 REA 网站上,并附有重建仓库的链接。
适用人群
- LLM 驱动的代理 – 在逆向工程闭源软件时需要具体、可验证证据的代理。
- 安全研究人员 – 希望自动化二进制、固件或 Web 应用分析并保持结果本地化的人。
- 开发人员 – 希望在没有源代码的情况下复制竞争对手应用功能的人。
限制与安全
- REA 从不上传您的二进制文件;所有分析都在本地运行。LLM 提供商可能会记录您发送的证据。
- 深度原生分析需要许可的反汇编器(Hopper、Ghidra、IDA)。静态 JavaScript/.NET 分析开箱即用。
- 您有责任确保拥有对目标进行逆向工程的合法权利。
了解更多
- 网站与文档 – https://rea.tools/(指南、架构、路线图)
- Discord 社区 – 实时问答和案例分享。
- GitHub – 源代码、CI、问题跟踪器、贡献指南。
快速总结
REA 是一个 Node.js 工具包,它将 LLM 代理与传统逆向工程工具连接起来,让您可以要求 AI 调查二进制文件、Electron 应用、Android 包、固件、Web 捕获等,并返回 AI 可以解释或重新实现的具体证据(伪代码、图表、截图)。使用 npx rea-agents setup 安装,注册您的 LLM,然后开始提问或直接运行 CLI 命令。
相关
- 项目
- 项目
- 项目
- 项目