@ArchiveExplorer: 这简直就是个纯金矿——几乎没人用过的最佳 REA 技巧。核心思路:REA 拆解应用,Jev 只保留……

X AI KOLs Timeline 工具

摘要

介绍 REA(Reverse Engineer Anything)这一 MCP 工具及其「干净室重建」工作流:REA 逆向分析应用生成带证据的 SPEC.md,Jev 审核规则,Opus 5.5 在未见过原代码的情况下重建功能,Haiku 5.5 用故意破坏的版本跑测试,实现模型不复制原代码的合规重建。

这简直就是个纯金矿。 一个几乎没人用过的最佳 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 ↓ "围绕以下流程搭建一个干净室重建: 1. 使用 REA 调查 [APP] 中的 [FEATURE]。将每条行为和规则写入 SPEC.md,每条都要附上 REA 找到的证据。 2. 将每条规则发送给 Jev。没有证据的规则退回给 REA。 3. 仅凭 SPEC.md 开启全新会话。在 Opus 5.5 上重建功能,不打开原始代码。 4. 在 Haiku 5.5 上编写测试和 3 个故意破坏的版本。使用 /goal 直到重建通过且所有 3 个破坏版本都失败。 先给我看 SPEC.md。我说开始之前不许动手。" ↳ https://github.com/morluto/rea 收藏一下,以后用得上。
查看原文
查看缓存全文

缓存时间: 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 中 ↓

“围绕这个目录树设置一个洁净室重建流程:

  1. 使用 REA 调查 [APP] 中的 [FEATURE]。将每个行为和规则连同 REA 发现的证据写入 SPEC.md。
  2. 将每条规则发送给 Jev。没有证据的规则退回 REA。
  3. 开启一个只包含 SPEC.md 的全新会话。在 Opus 5.5 上重建该功能,不打开原始代码。
  4. 在 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,实现对二进制文件、应用程序和运行时行为的跨平台逆向工程。

看到一个你喜欢的功能?深入到二进制级别去理解它的工作原理。

npm 版本 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 APKManifest 声明、类、反编译的方法和引用无头 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 启动和故障排除。

相似文章