@ArchiveExplorer: 这简直就是个纯金矿——几乎没人用过的最佳 REA 技巧。核心思路:REA 拆解应用,Jev 只保留……
摘要
介绍 REA(Reverse Engineer Anything)这一 MCP 工具及其「干净室重建」工作流:REA 逆向分析应用生成带证据的 SPEC.md,Jev 审核规则,Opus 5.5 在未见过原代码的情况下重建功能,Haiku 5.5 用故意破坏的版本跑测试,实现模型不复制原代码的合规重建。
查看缓存全文
缓存时间: 2026/10/17 04:49
这是一个纯爆金矿——几乎没人用过的最佳 REA 技巧。思路是:REA 拆解应用,Jev 只保留经过验证的部分,然后用一个全新的 Opus 5.5 会话仅凭这些规格重建功能。不复制任何东西,也不会有任何猜测进入代码,因为构建者从未见过原始代码,只看到 Jev 批准的规格。你只需这样连接 REA:
npx rea-agents setup
分工如下:
→ REA 将功能逐层分析到二进制级别,并将每条规则写入 SPEC.md → Jev 根据 REA 的证据逐条检查,未被证明的规则会被退回 → 一个全新的 Opus 5.5 会话只拿到 SPEC.md,然后重建该功能 → Haiku 5.5 针对 3 个故意写坏的版本运行测试
Opus 只在三个时刻出现:
→ 根据已批准的规格进行重建 → Jev 标记为不清晰的检查项 → 任何东西发布前的最终签字
REA 负责读取。Jev 负责判断。Opus 负责重建。这就是一句话概括的洁净室规则:见过原始代码的模型永远不写代码,写代码的模型永远看不到原始代码。
完整流程:
REA 读取应用并为每条规则撰写 SPEC.md,附带证据 Jev 批准或退回每条规则 Opus 5.5 在全新会话中根据已批准的 SPEC.md 重建 Haiku 5.5 运行测试及 3 个故意写坏的版本 Jev 将不清晰的检查项送回 Opus /goal 持续运行,直到所有 3 个写坏的版本都失败
将目录树和以下提示词粘贴到 Claude Code 中 ↓
“围绕这个目录树设置一个洁净室重建流程:
- 使用 REA 调查 [APP] 中的 [FEATURE]。将每个行为和规则连同 REA 发现的证据写入 SPEC.md。
- 将每条规则发送给 Jev。没有证据的规则退回 REA。
- 开启一个只包含 SPEC.md 的全新会话。在 Opus 5.5 上重建该功能,不打开原始代码。
- 在 Haiku 5.5 上编写测试以及 3 个故意写坏的版本。使用 /goal,直到重建通过且所有 3 个写坏的版本都失败。 先给我看 SPEC.md。我说开始之前不构建任何东西。“
↳ https://github.com/morluto/rea
收藏吧,以后会用得上。
morluto/rea
来源:https://github.com/morluto/rea
English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά
REA: 逆向工程任何东西
一个 MCP,实现对二进制文件、应用程序和运行时行为的跨平台逆向工程。
看到一个你喜欢的功能?深入到二进制级别去理解它的工作原理。
MCP 工具目录 · Node.js 要求
skills.sh · MIT 许可证 · Discord
快速开始 · REA 工作原理 · 可分析的目标 · 案例展示 · 常见问题 · 文档
npx rea-agents setup
请从 morluto/rea (https://github.com/morluto/rea)、 rea.tools (https://rea.tools/) 或 rea-agents npm 包 (https://www.npmjs.com/package/rea-agents) 获取 REA。请按照这些官方来源提供的安装和发布链接操作。 相似的仓库名称或复制的 README 不能证明某个下载是官方的。
加入逆向工程社区 Discord · 问答 · 展示与分享
在某个应用中看到了一个你喜欢的功能,想在自己的产品中实现?让你的 AI 助手用 REA 调查它。它可以在没有源代码的情况下检查应用,解释该功能如何工作,展示证据,并为你的项目构建一个类似版本。
REA 将你的 AI 助手连接到用于检查原生二进制文件、JavaScript 和 Electron 应用、.NET 程序集以及网站的工具。你也可以在终端中使用相同的工具。
分析在本地运行,结果包含每个结论背后的证据和局限性。
设置会将 REA 注册到你的 AI 助手中,并安装匹配的工作流指令。原生分析可以使用现有的 Hopper、Ghidra 或 IDA 安装;设置可以在获得批准后选择性地安装 Hopper。静态 JavaScript 分析不需要原生分析引擎。
访问 REA 官网 获取设置说明、图文指南和真实案例研究。
快速开始
在 Linux 上,Ghidra、JADX、固件工具启动以及静态 JavaScript/Electron 分析要求 REA 的 PATH 中存在兼容 procps 的 ps 命令,用于进程归属检查。恢复步骤见 docs/installation.md 中的“Linux 归属进程前置要求“。
设置你的 AI 助手
安装 Node.js 和 npm 后,运行:
npx rea-agents setup
选择你的 AI 助手,查看建议的更改,然后批准。设置会添加 REA 的 MCP 服务器和匹配的工作流指令,并备份现有配置。完成后请重启你的 AI 助手。设置支持 Claude Code、Codex、Cursor、Gemini CLI、Grok Build 以及其他 AI 助手。有关提供商配置和手动 MCP 注册,请参阅安装和设置。
向你的 AI 助手提问
帮我理解 Notes 应用中搜索功能的工作原理,展示证据,并为我的项目构建一个类似的功能。
将 Notes 替换为目标应用和你想理解的功能。
在终端中使用
检查已解压的 JavaScript/Electron 应用目录或 ASAR:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
结果包含模块、导入、Electron 边界及其证据。将路径替换为目标路径,例如 Windows 上的 "D:/apps/example"。
要安装 rea 命令以便日常使用:
npm install --global rea-agents
rea --help
对于原生分析,请先配置提供商。参见 CLI 和证据指南了解原生命令、提供商选择、快照和脚本编写。
更新 REA
REA 迭代迅速,新版本包含频繁的错误修复。请保持安装为最新状态。
对于使用 npm install --global 或 bun add --global 安装的 CLI:
rea update
Bun 全局更新需要 Bun 1.2.17 或更高版本。如果使用较旧的 Bun 版本,请先手动升级 Bun 再运行 rea update。
要刷新你的 AI 助手注册和技能,请运行更新命令输出的设置命令。
如果使用 npx,请通过以下命令更新你的 AI 助手设置:
npx rea-agents@latest setup
查看设置更改并重启你的 AI 助手。对于一次性 CLI 命令,使用 npx rea-agents@latest 后跟命令。使用 Bun 时,用 bunx rea-agents@latest 替代 npx rea-agents@latest。
REA 工作原理
你的 AI 助手通过 MCP 调用 REA 来检查目标并追踪相关代码。REA 返回带有证据的发现结果。AI 助手利用这些结果提出后续问题、解释行为,或编写并测试实现。CLI 命令使用相同的工作流。
REA 调查流程:你的 AI 助手就本地目标提问,REA 使用分析工具检查和追踪它,AI 助手利用返回的代码、引用和未知项来解释、实现和测试。
可分析的目标
REA 需要 Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+,以及 npm。额外的工具和主机支持取决于目标:
| 目标 | REA 返回的内容 | 要求和指南 |
|---|---|---|
| 原生二进制文件 | 伪代码、汇编、字符串、符号、调用和引用 | Hopper、Ghidra 或 IDA;原生分析 |
| 离线 ELF 布局 | 节区、段、原始符号/重定位和静态缓解候选项 | 调用方提供的 pwntools(Linux x64);二进制诊断 |
| Go 二进制文件 | 内嵌的编译器版本、模块、替换和构建设置 | 内置静态 ELF/PE/薄 Mach-O 检查;无需安装 Go |
| Rust 二进制文件 | 内嵌的 cargo-auditable crate 名称、版本、来源和依赖边 | 内置静态 ELF/PE/薄 Mach-O 检查;Rust 二进制文件 |
| WASM 工件 | 验证、节区、精确的导入/导出 WAT 形式和解码后的 WAT | 调用方提供的 WABT 1.0.42;inspect_wasm_artifact |
| EVM 字节码 | 调度选择器、字节偏移、推断的参数和可变性 | 本地原始/十六进制载体(Linux x64);离线 EVM 指南 |
| SQLite 数据库 | 表、列、索引、视图、触发器和选定的普通表行 | 本地数据库/WAL 快照;Node.js 24.x >=24.15 或 26+,带原生 SQLite 限制 |
| 已记录的 Linux 崩溃 | 原始笔记、每个已记录线程的寄存器/信号和可选的映射候选项 | 调用方提供的 pwntools(Linux x64);可选 GDB/pwndbg;已记录的崩溃 |
| JavaScript / Electron | 模块、导入、source map、路由、IPC 和原生附加组件关系 | Node.js 和 npm;Linux 上需要兼容 procps 的 ps;应用分析 |
| 网站 | 页面结构、脚本、网络观察和请求的截图 | Chrome 系浏览器;浏览器分析 |
| 已保存的网络捕获 | 请求、响应、暴露的载荷和源位置 | HAR 或 Fiddler Everywhere SAZ;Linux 上使用 mitmdump 进行原生 mitmproxy;捕获指南 |
| .NET 程序集 | 元数据、CIL 指令、声明的原生依赖和构建比较 | 无(仅静态);托管代码指南 |
| Android APK | Manifest 声明、类、反编译的方法和引用 | 无头 JADX 和完整 JDK(Linux/macOS/Windows x64);Android 指南 |
| Android 设备 | 设备、包、进程、日志、转储、屏幕截图和 APK/文件传输 | 调用方提供的 adb(模拟器或硬件);ADB 指南 |
| JEB 项目 | 引擎支持的项目单元、工件摘要和类型/方法伪代码 | 调用方启动的提供 MCP 的 JEB 客户端,通过 REA_JEB_MCP_URL 选择;JEB 指南 |
| Android 资源 | 解码的 manifest、字符串表、语言环境和版本信息 | 调用方提供的 Apktool 启动器;资源指南 |
| Flutter 应用 | Dart 快照哈希、每个 ABI 的库摘要和引擎构建来源 | 无(静态 APK 解析);Flutter 指南 |
| 固件 | 区域、提取结果和原生分析交接 | Linux 上的 Binwalk / Unblob;固件指南 |
| 已记录的数据包 | 选定字段、重复值、过滤器和 decode-as 规则 | Linux:TShark 4.x + prlimit;捕获指南 |
| 数据包摘要 | 端点、DNS、TLS SNI、协议分布和 HTTP 请求 | 调用方提供的 tshark 和 capinfos(Linux 验证);pcap 指南 |
| 已记录的逻辑信号 | 解码器注释、采样范围和诊断信息 | Linux:sigrok-cli 0.7.2 + prlimit;信号记录 |
| 包和资源 | 文件清单、摘要、plist、Apple bundle 结构和提取的资源 | 工件和 JavaScript 指南,Apple 应用 |
| 进程行为 | 终端输出、交互、退出和文件系统观察,以及运行比较 | Linux/macOS,需要原生 PTY;进程捕获 |
静态 JavaScript 和 .NET 检查在不运行应用的情况下读取提供的文件。运行时捕获会使用你的用户权限运行或与选定目标交互;每个运行时指南都描述了其影响。
对于离线原生二进制检查,REA 还支持调用方提供的 GNU objdump 和 Rizin。参见逆向工程工具指南了解提供商设置、CLI 命令和证据限制。REA 不会安装或更新这两个提供商。原生格式和主机支持因提供商而异。参见 Hopper 和 Ghidra 设置、IDA 指南(包括可选的原生 MCP 桥接)、Kuna 反编译器指南和实验性 Windows Ghidra 支持。Ghidra 还支持 16 位 DOS 分析。
对于大型二进制文件,可通过 REA_GHIDRA_STARTUP_TIMEOUT_MS 或 REA_HOPPER_STARTUP_TIMEOUT_MS 提高提供商的启动超时时间。
有关提供商选择,参见 CLI 指南。检查发布可用性了解自最新 npm 发布以来添加的功能。
案例展示
DX-Ball 声音平移、Notion 剪贴板桥接和 TH04 弹幕环的插图展示
DX-Ball:重建声音平移计算
追踪一个声音调用到其位置到平移的辅助函数,检查指令,将不完整的伪代码转化为 C 语言。重建通过了 3,205 个原始 x86 测试用例,并复现了全部 63 个编译后的函数字节。
Notion:追踪 Electron 剪贴板桥接
找到渲染进程的剪贴板 API,通过 preload 和 IPC 追踪到主进程,并检查富文本剪贴板格式。
TH04:恢复 DOS 弹幕环计算
检查原始 PC-98 游戏的 16 位指令,恢复固定和瞄准角度计算,并将重建的 C++ 与历史编译器输出进行比较。
如果你曾用 REA 做过有趣的事情,我们很想知道。请在 issue 或 pull request 中分享你的案例,包括目标、你的问题、REA 如何帮助以及你的发现。
常见问题
哪些 AI 助手可以使用 REA? 任何支持本地 MCP 服务器的 AI 助手。设置会配置受支持的 AI 助手;其他客户端可以使用手动 MCP 注册。
我需要 Hopper、Ghidra 或 IDA 吗? 深度原生分析需要其中之一。静态 JavaScript 和 .NET 检查无需原生分析引擎即可工作。设置可以在获得批准后安装 Hopper;Ghidra 和 IDA 使用你现有的安装。参见提供商设置。
我需要先启动 Hopper 吗? 当操作需要时,REA 会启动 Hopper。在 macOS 上,首次运行对话框可能会要求你选择演示模式或激活许可证。请在同一用户会话中,在首次 CLI/MCP 操作或无人值守任务之前完成该提示。如有需要,可手动打开 Hopper。参见 Hopper 启动和故障排除。
相似文章
@gippp69:Claude + REA 可以不复制一行代码重建软件功能,Opus 5.5 读取 REA 在程序中发现的内容……
展示了如何结合 REA(逆向工程代理)与 Claude/Opus 5.5,在不复制任何原代码的情况下以「净室」方式重建软件功能,并用测试与故意损坏的版本验证正确性,单个项目 12 天恢复了 697 个函数。
@0xlangeai: What is the explosively popular Rea, how to use it, how beginners can get started—it's all in this article. Follow alon…
一篇保姆级教程,介绍爆红的开源逆向分析工具 REA(Reverse Engineer Anything),讲解如何把它接入 Codex 等 AI 编程助手,并以恐龙小游戏为例,演示让 Agent 读取程序、解释加速规则并复刻带调速滑块的新版本。
@criscxuan:今日推荐爆款开源项目:https://github.com/morluto/rea 这个项目可以解析出任何软件……
开源项目 REA(Reverse Engineer Anything)通过 MCP 协议将 AI Agent 连接到 Hopper、Ghidra、IDA Pro 等逆向工程工具,支持分析原生二进制、Electron、.NET、Android APK 和 Web 应用,让 AI 无需源码即可理解并复刻软件功能。
@tspy:迄今最好的逆向工程工具 REA 使用指南 —— 我把逆向分析和开发变成了一个全自动化工作台
作者分享了一套基于 Grok Bot + REA + Claude Code + DeepSeek + Cursor CLI 的全自动逆向工程工作台方案,通过 MCP 将 REA 的 139 个工具接入 Claude Code,实现从反编译分析到代码编写的全自动化流程。
@nevermind_turki:天啊,这篇文章太棒了,讲解如何用 REA(即逆向工程)分析代码,共包含 11 个步骤……
推文推荐了一篇关于逆向工程(REA)的文章,介绍拆解代码的11个步骤,内容详尽但费时。