# RESEARCH-006: REA (Reverse Engineer Anything) 智能体逆向工程与净室重构实证研报

- **研报编号**：`RESEARCH-006`
- **课题**：GitHub 近 80k 星开源项目 `morluto/rea`（用户 Fork 仓库：`deliangs123/rea`）架构解密、基于 MCP 的 AI 智能体逆向分析工作流与净室重构能力实证调研
- **调研时间**：2026年10月（基于 GitHub 远程仓库实测、`gh` CLI 一手信源检索及官方技术文档解构）
- **一手信源与元数据**：
  - 仓库地址：`https://github.com/deliangs123/rea`（上游源：`https://github.com/morluto/rea`）
  - 核心标签：近 80,000 GitHub Stars (79,828★)，17,200+ Forks，MIT 开源协议
  - 核心模块：`rea-agents` (npm 发布包), MCP (Model Context Protocol) Server, Hopper/Ghidra/IDA 原生桥接器
  - 官方文档库与展示站：`https://rea.tools/`
- **统一语言遵循**：[`CONTEXT.md`](../../CONTEXT.md)
- **协议依据**：[`AGENTS.md`](../../AGENTS.md)（实证探路优先原则与实体资产留痕优先原则）
- **状态**：已落盘归档 ✅

---

## 1. 调研背景与仓库定位 (Overview)

用户在 GitHub 账号 `deliangs123` 下 Fork 了一个用于软件逆向工程的明星开源仓库 `deliangs123/rea`（源自 `morluto/rea`）。

该项目在开源社区拥有极高声誉（近 8 万 Stars），其核心定位为：  
> **“REA: Reverse Engineer Anything — One MCP for reverse engineering across binaries, applications, and runtime behavior.”**  
> （逆向一切：一个面向二进制、应用程序和运行时行为的统一 MCP 智能体逆向工程服务）。

其终极愿景是：**“在任何应用中看到你想要的功能，无需源码，让 AI 智能体深入二进制底层弄清其工作原理，给出证据链，并为你自己的项目编写出等价的高质量重构代码。”**

---

## 2. 核心架构与工作机理 (Architecture & Mechanism)

传统逆向工程依赖资深工程师在 IDA Pro 或 Ghidra 中耗费数十小时人工追踪交叉引用、分析汇编与反编译伪代码。REA 的颠覆性在于：**将逆向工程工具链通过 MCP（Model Context Protocol）标准协议桥接给 AI Coding Agents（如 Claude Code、Cursor、Codex、Gemini CLI 等）**。

```mermaid
flowchart TD
    User["开发者指令<br>('搞清楚某软件的搜索/算法/IPC是如何工作的')"] --> Agent["AI 编码智能体<br>(Claude / Cursor / Codex / Gemini)"]
    
    subgraph REA_MCP ["REA MCP 核心服务 (rea-agents)"]
        direction TB
        Orchestrator["MCP 工具分发与上下文控制器"]
        EvidenceEngine["证据链验证引擎 (Evidence Contract)<br>严格杜绝大模型猜想幻觉"]
    end
    
    Agent <-->|MCP 协议调用| Orchestrator
    Orchestrator --> EvidenceEngine
    
    subgraph Engines ["底层逆向分析引擎池"]
        Native["原生二进制引擎<br>Hopper / Ghidra / IDA Pro"]
        JS_Electron["JavaScript / Electron<br>ASAR解包 / AST模块还原 / IPC边界追踪"]
        Android["移动端分析<br>JADX反编译 / Apktool / ADB运行时"]
        Runtime["动态运行时捕获<br>PTY交互 / HAR网络流 / Linux崩溃转储"]
        DotNet[".NET / CIL 静态反编译"]
    end
    
    EvidenceEngine <--> Engines
    Engines --> TargetBinary["目标软件 / 二进制 / 安装包"]
    
    EvidenceEngine -.->|返回反编译伪代码、交叉引用与证明| Agent
    Agent --> RebuiltCode["在你的工程中生成通过测试的重构代码 (Clean-Room Code)"]
```

### 核心运作四步循环：
1. **Target Inspection（目标侦测）**：智能体通过 REA MCP 工具，定位目标软件的结构、模块、导出符号或已解包的资源；
2. **Evidence-Based Tracing（基于证据的深度追踪）**：智能体调用反编译、反汇编、字符串过滤、交叉引用搜索与数据流分析；REA 返回真实的**伪代码、汇编切片与证据上下文**，附带分析局限声明（彻底消除了大模型凭空猜想的幻觉问题）；
3. **Behavior Understanding（行为机理解释）**：智能体整合 REA 返回的证据链，向开发者通俗解释底层逻辑与算法数学模型；
4. **Clean-Room Reconstruction（净室工程重构）**：智能体根据弄懂的机理，在当前代码库中编写纯正现代语言（C/C++/Rust/TypeScript）的实现代码，并配套生成单元测试。

---

## 3. 全栈分析能力矩阵 (What REA Can Analyze)

REA 覆盖了从现代前端、跨平台应用到系统底层汇编的完整分析谱系：

| 目标类型 | REA 提取与返回的内容 | 底层驱动引擎与依赖要求 |
| :--- | :--- | :--- |
| **原生二进制文件** (Mach-O, ELF, PE) | 伪代码、汇编指令、字符串表、符号、调用链与交叉引用 | 本地安装的 Hopper、Ghidra 或 IDA Pro |
| **JavaScript / Electron 应用** | ASAR 解包、模块依赖图、Source Map 还原、IPC 通道与原生 Node 扩展边界 | Node.js (>=22.x/24.x) 内置 AST 静态分析器 |
| **Android APK / 设备** | 清单权限声明、Java/Kotlin 类反编译、方法引用、运行时 Logcat 与屏幕转储 | 无界面 JADX、JDK、Apktool 与 ADB |
| **.NET 程序集** (DLL / EXE) | 元数据、CIL 中间语言指令、声明的原生依赖与跨版本对比 | 静态托管代码检查器 |
| **动态网络与进程交互** | HAR 请求响应明文、mitmproxy 流量解密、伪终端 (PTY) 进程输入输出轨迹 | Chrome 驱动、Linux/macOS 原生 PTY、mitmdump |
| **底层与固件** (Firmware / EVM) | 固件区域解包、EVM 字节码分派选择器、Linux 崩溃转储寄存器 | Binwalk / Unblob / pwntools / GDB |

---

## 4. 经典工业级案例 (Verified Showcases)

REA 官方展示了三个极具代表性的高难度全流程重构案例：

1. **DX-Ball：重构经典 Windows 游戏的立体声像算法**
   - **挑战**：原作者源码丢失，需还原根据挡板与小球相对位置计算立体声平移的辅助函数；
   - **过程**：智能体通过 REA 追踪音频 API 调用，检查 x86 机器码汇编与伪代码，将未完整反编译的指令重构为现代 C 语言代码；
   - **成果**：重构代码通过了 **3,205 个原始测试用例**，并在二进制级别 100% 精确复现了原编译结果的全部 63 个字节。
2. **Notion：追踪 Electron 复杂富文本剪贴板桥**
   - **挑战**：弄清商业桌面软件 Notion 是如何在渲染进程与系统底层原生剪贴板之间高效传输富文本格式的；
   - **过程**：智能体解包 ASAR，通过 AST 追踪 preload 脚本、IPC 通信信道，准确定位主进程与渲染进程的剪贴板序列化协议。
3. **东方 Project TH04：恢复 16 位 DOS 游戏的环形弹幕算法**
   - **挑战**：逆向 1990 年代 NEC PC-98 平台的 16 位 x86 实模式游戏指令；
   - **过程**：通过 REA + Ghidra 16 位分析扩展，精准提取了固定发射角度与瞄准角度的正余弦查表计算，重构出可现代编译的 C++ 算法。

---

## 5. 快速上手与日常使用范式

### 5.1 为当前 Agent 注册 REA MCP
在安装了 Node.js（>= 22.x）的环境下，只需一行命令即可交互式配置：
```bash
npx rea-agents setup
```
该命令会自动检测系统中的 AI Coding Agent（如 Claude Code、Cursor、Codex、Gemini CLI 等），将 REA MCP Server 配置写入其配置文件，并同步安装对应的逆向分析工作流技能（Skills）。

### 5.2 终端独立单命令分析示例
无需启动完整智能体，也可以在终端直接执行静态探测：
```bash
# 1. 深度分析某个 Electron 应用的 ASAR 或解包目录
npx -y rea-agents@latest analyze-javascript-application /path/to/electron/app --json

# 2. 全局安装 CLI
npm install --global rea-agents
rea --help
```

### 5.3 询问智能体的典型 Prompt 范式
智能体接入 REA 后，开发者可以直接发起高阶自然语言请求：
> *“帮我分析一下目标应用 `TargetApp.app` 的自动更新机制是如何实现的。请使用 REA 调出证据链（相关的调用函数与网络请求），并在我们当前工程中用 TypeScript 重构出一个具备相同行为的更新检查模块。”*

---

## 6. 合规性与净室软件工程 (Clean-Room Directives)

根据开源软件法理与 REA 官方免责声明：
1. **合法研究授权**：REA 仅供合法逆向工程研究、兼容性分析、安全审计与净室重构；
2. **净室重构准则 (Clean-Room Principle)**：
   - 逆向分析的目的是“理解行为机理与接口协议”；
   - 重新实现时，必须编写拥有自主知识产权的全新源代码，严禁机械式反编译直接复制粘贴闭源专有代码，确保重构产物的法律纯洁性。

---

## 7. 调研结论

用户 Fork 的 `deliangs123/rea` 是当前全网 **AI Agent + 逆向工程** 交叉领域中最先进、体系最庞大（80k 星）的工业级基础设施。它彻底将逆向工程从少数专家的手工作坊，升级为可以通过 MCP 赋能任何 AI Coding Agent 的自动化分析装配线。
