rea.run

2026-10-18

搭建逆向工程工作室:REA、oracle 与清洁室闭环

工作室概览静帧:托管工作室演示视频中的逆向工具栈画面(1000×1080)。
工作室演示视频首帧封面(1000×1080)。托管于 /media/blog/rea-reverse-engineering-studio/。仅授权教学目标。

本页是运维/工具指南,说明如何组装一座逆向工程工作室:一个面向智能体的 MCP 分析核心(morluto/rea)、一圈开源引擎与桥接、三类 oracle(决定何为真),以及双室清洁室闭环(A 室只写 SPEC.md;B 室只从墙后实现)。不是破解教程,不是利用 PoC,也不是对未拥有/无书面授权软件动手的许可(/zh/compliance/、/zh/faq/legal-boundary/)。

英文孪生:/blog/rea-reverse-engineering-studio/。尚未接触 REA?先看 /zh/blog/rea-beginner-guide/、安装演示 /zh/docs/install-demo/,再看可视化工作台 /zh/blog/eleven-rea-workbench/。本站教学钉版:[email protected](/zh/blog/rea-agents-6-5-0/)——教学实验室不要默认浮动 latest。

工作室演示/工具栈概览(约 22 秒):以 REA 为分析枢纽的逆向工具布局。

为何要「工作室」而不是单一工具

真实逆向跨越格式(PE/ELF/Mach-O、APK/DEX、.NET、JS/Electron)、表面(静态、动态、网络)与验证(重建 + oracle)。一个 GUI 覆盖不了所有车道。工作室是刻意选好的栈:

层职责本页选型
分析核心面向智能体的 MCP + Evidence + 工作流REA(rea-agents)——一个 MCP
深度引擎反编译/反汇编/调试Ghidra、IDA(自备)、radare2、Rizin、x64dbg、raddebugger、angr
MCP 桥让智能体驱动引擎GhidraMCP、ida-pro-mcp
移动/托管APK/DEX、资源、.NETjadx、Apktool、Frida、ILSpy、dnSpy
检视/拦截Hex、流量ImHex、mitmproxy
策展地图发现相邻工具awesome 列表 + REA 内置提示
验证清洁室 SPEC + oracle + 植入失败你的重建与对照 harness

星标是人气快照,不是 doctor 绿灯证明,也不是法律护身符(/zh/blog/evaluating-rea-claims/)。

分类对照表(GitHub API 快照 2026-10-18)

下表星标于 2026-10-18(Asia/Shanghai/UTC+8)用 gh api repos/OWNER/REPO --jq .stargazers_count 重抓。引用前请重抓;数字会漂。

01 — 分析核心

工具在工作室中的角色Stars(2026-10-18)官方 URL
morluto/rea二进制/应用/运行时的一个 MCP;Evidence + 调查工作流317010github.com/morluto/rea
NationalSecurityAgency/ghidra深度开源反编译/反汇编(许多 REA 路径需自备)90604github.com/NationalSecurityAgency/ghidra
LaurieWired/GhidraMCP让智能体驱动 Ghidra 的 MCP 桥11378github.com/LaurieWired/GhidraMCP
mrexodia/ida-pro-mcp已授权 IDA Pro 的 MCP 桥12994github.com/mrexodia/ida-pro-mcp

REA 不附带 Ghidra 或 IDA。setup 注册 MCP,可能在批准后协助 Hopper;Ghidra/IDA 仍自备(/zh/faq/setup-vs-providers/)。上游快速开始:npx rea-agents setup(morluto/rea README)。在 rea.run 钉教学等价命令:npx -y [email protected] setup。

02 — 移动与应用

工具在工作室中的角色Stars(2026-10-18)官方 URL
skylot/jadxDEX/APK → Java/Kotlin(REA Android 路径需无头 jadx + JDK)51050github.com/skylot/jadx
iBotPeaches/Apktool解码/重建 Android 资源与 smali26001github.com/iBotPeaches/Apktool
frida/frida动态插桩(仅你的设备/已授权进程)22354github.com/frida/frida
icsharpcode/ILSpy.NET 反编译/浏览26700github.com/icsharpcode/ILSpy

03 — 二进制与底层

工具在工作室中的角色Stars(2026-10-18)官方 URL
radareorg/radare2命令行逆向框架25078github.com/radareorg/radare2
x64dbg/x64dbgWindows 用户态调试器49931github.com/x64dbg/x64dbg
WerWolv/ImHexHex 编辑器 + 模式语言,结构化读二进制55405github.com/WerWolv/ImHex
angr/angr符号执行/二进制分析平台9212github.com/angr/angr

04 — 网络与运行时

工具在工作室中的角色Stars(2026-10-18)官方 URL
mitmproxy/mitmproxy交互式 HTTPS 拦截与脚本(仅授权流量)45712github.com/mitmproxy/mitmproxy
dnSpyEx/dnSpy.NET 调试/程序集编辑(分支谱系;仅自有/已授权目标)11293github.com/dnSpyEx/dnSpy
rizinorg/rizinradare2 家族框架;部分 GUI 工作台的快速打开路径4002github.com/rizinorg/rizin
EpicGames/raddebuggerEpic 开源原生调试器(公开树偏 Windows)8584github.com/EpicGames/raddebugger

05 — 重建与验证(地图 + 闭环)

项在工作室中的角色Stars/主张(2026-10-18)官方 URL
zhuyansen/awesome-ai-reverse-engineeringAI×RE 仓库分级地图(当日 README:119 条安全分级)8★github.com/zhuyansen/awesome-ai-reverse-engineering
morluto/awesome-reverse-engineeringREA 作者公开的经典+智能体逆向 awesome 列表765★github.com/morluto/awesome-reverse-engineering
REA 调查工作流/提示内置 MCP 提示与 skill 说明,结构化智能体调查随 rea-agents 提供morluto/rea 文档
清洁室 + oracleSPEC.md 墙 + 三类 oracle + 植入失败(见下)流程,非仓库本页 + /zh/compliance/

三类 oracle

Oracle 是把重建与你信任的参照对照的任何检查。模型提议;oracle 裁决。工作室教学用三类:

Oracle 类型对照什么教学示例通过长什么样
字节 oracle编译/恢复字节 vs 参照机器码(或固定字节窗口)DX-Ball 平衡辅助:63 字节、3205 用例 — /zh/showcase/dx-ball/检查窗口 + 用例集精确匹配
行为 oracle相同输入 → 相同可观察输出(不必匹配内部)Win 计算器 %:×÷ 后 → 当前/100;+− 后 → 当前×先前/100(如 200+10% → 220)。可对照公开行为说明/你已授权的副本——不做破解一组演算例全部一致
运行时 oracle整程序/功能端到端(玩、点、导出、往返)重建能启动;功能路径走完;冒烟计数/金文件成立可度量通过/失败,不是「看起来行」

尽量自动化最强的 oracle。字节抓指令漂移;行为抓 API 契约;运行时抓集成缺口。许多工作室任务会组合两类以上。

也要测 oracle(TH08 课)

弱比较可以在指令字节通过的同时,浮点常量错误。公开的 TH08 线重建记述里,某辅助函数已通过精确指令字节比较,却在下游失败:重建用 0.0 检查玩家火力,原件用 128.0(满火力阈值)。比较器在比指令前会重映射地址(重建可能把常量放别处),却从未检查该地址上的浮点值。指令字节匹配;含义不匹配。修好比较后审计浮点字面量引用,又挖出更多已被弱 oracle「接受」的错误常量。

习惯: 在相信绿灯之前,植入 三个必须失败 的变体。任一植入失败却通过,说明 oracle 坏了——此前所有绿灯都可疑。

植入失败清单

  • [ ] 改一个常量(如阈值 128.0 → 0.0,或比例 100 → 10)。
  • [ ] 交换一个分支(真/假臂、×÷ 与 +− 百分规则、提前返回极性)。
  • [ ] 差一边界(含/不含边、length−1、循环上限)。
  • [ ] 对每个植入变体跑 oracle → 三个都必须失败。
  • [ ] 任一植入变体通过 → 先修 oracle,再重审先前接受项。
  • [ ] 把三个变体 + oracle 命令记入 NOTES.md/CI,使检查可重复。
植入变体意图Oracle 必须
错误常量抓住值盲区(TH08 式)拒绝
交换分支抓住仍「看起来像」的控制流拒绝
差一抓住只测边界外/弱金集拒绝

本清单不含利用或破解步骤——只是对自有/授权夹具上验证 harness 的自测。

双室清洁室(SPEC.md 是墙)

经典清洁室,由智能体运转:

室谁看见什么产出
A 室 — 阅读者 + REA带 [email protected] 的调查会话已授权目标 + 工具仅 SPEC.md(行为/IO/边界/未知)
墙——SPEC.md — 无代码、无地址、无原名资产
B 室 — 建造者干净目录里的全新会话仅 SPEC.md实现 + 测试 + 植入失败
binary(已授权)→ A 室(REA + Evidence)→ SPEC.md(墙)→ B 室(重建)→ oracle(+ 植入失败)→ retry

可复制提示模板(钉 6.5.0)

安装(教学钉版——不要浮动 latest):

用 npx -y [email protected] setup 安装并连接 REA 到本编码智能体。
先展示 setup 计划供批准,然后用以下命令验证:
npx -y [email protected] doctor --json

A 室 — 阅读者:

用 REA 调查 [已授权应用] 中 [功能] 如何工作。
每条主张标注 observation/inference/unknown,并引用 Evidence。
然后写 SPEC.md:行为、输入、输出、边界情况与未决未知。
只描述做什么。不要代码、不要地址、不要原件名称或资产。

B 室 — 建造者:

仅根据 SPEC.md 在 ./my-version 中实现 [功能]。
按规格中的行为写测试并运行。
不要打开原二进制、反编译或 A 室笔记。

目标形停止条件(按你的智能体 goal 工具改写):

/goal SPEC.md 中每个用例在 ./my-version 通过,oracle 拒绝全部 3 个植入失败,
且未改动 ./my-version 以外的文件。或在 25 轮后停止。

植入失败:

在 ./oracle-tests 下加入三个故意错误的实现变体:改一个常量、
交换一个分支、把一个边界偏移一。对每个跑 oracle,确认三个都被拒绝。
任一通过则先修 oracle。

NOTES.md 收尾(工厂记忆):

结束本会话前,更新 NOTES.md:已确认什么、仍未知什么、已有哪些检查、
下一步实验是什么。并提交。

清洁室闭环清单

  • [ ] 范围门: 自有/书面授权/开源/清洁室夹具(/zh/compliance/、/zh/faq/legal-boundary/)。
  • [ ] 隔离: 一次性副本;永不覆盖唯一生产制品。
  • [ ] REA 遍: 钉 npx -y [email protected];doctor --json;要 Evidence——不要气氛。
  • [ ] SPEC.md 墙: 可观察行为 + IO + 边界 + 显式未知;无代码/地址/原名资产。
  • [ ] B 室重建: 干净树;仅 SPEC。
  • [ ] Oracle + 植入失败: 可度量通过/失败;三个必须失败变体被拒绝。
  • [ ] Retry: 把差异喂回 A 室/SPEC;不编造未知。
  • [ ] 停止规则: 记录缺口——不编 CVE 链、密钥或 DRM 绕过。
步骤运维习惯失败模式
binary仅授权目标无权利分析商店 DRM/第三方应用
A 室Evidence + 限制智能体无工具结果却「解释」
SPEC.md可测 + 未知规格只复述营销文案
B 室清洁室实现把反编译输出当产品
oracle可度量 + 植入失败只靠截图;未测 oracle
retry差异驱动无限闲聊无新 Evidence

教学示例:/zh/showcase/dx-ball/ · /zh/blog/rea-beginner-guide/。

清洁室 vs「反编译了某套件」神话

常见说法称热门清洁室应用是靠「反编译厂商套件」做成的。有用的规则恰恰相反:观察行为 + 公开规格;禁止阅读厂商应用包。 理解 ≠ 拿走。

神话清洁室实践(正向对照)
「他们反编译了厂商应用包」不要阅读、反汇编或复制厂商应用包内部;盘点时最多文件名/列表
复制图标/字体/预设/截图仅原创或开放许可资产;参考截图留本地且不提交
把反编译输出粘进产品B 室从不看反编译;按 SPEC.md + 公开规格实现
Oracle = 厂商源码Oracle = 观察到的行为(外部测试工具仅作 oracle,永不链接/随附)

公开规则示例:FilmCraft AGENTS.md(§2 Clean-room code:永不阅读/反汇编/复制 Adobe 应用包;通过使用应用观察行为;编解码按公开规格)。ArtCraft 家族应用同精神——行为与公开格式,不是厂商包内脏。教学时链到这些 AGENTS/README;不要把社交主张当「偷包」证据。

边界(REA 免责声明 ↔ 模型)

REA 自身免责声明框定允许的研究/教育/互操作/保存/审计你有权检查的软件——并禁止绕 DRM/反作弊、复制专有受保护代码与资产等滥用。模型可能对越界任务拒绝或改派;这是预期,不是安装坏了。

允许方向(高层)本站禁止/超出 REA 意图
安全研究、教育、CTF、互操作、保存、审计已授权软件破解/keygen/绕 DRM/篡改反作弊
按行为 + 公开规格的清洁室重建复制专有代码、资产或受保护表达
对自有夹具做 oracle未授权目标;利用 PoC 写法
钉 [email protected] + doctor破解引擎或「借用」IDA/Hopper/JEB 许可

站内页:/zh/compliance/ · /zh/faq/legal-boundary/。智能体输出不是对原程序、其数据或其名称的许可。

最小启动路径 + doctor 加深

上游 Quick start 写的是 npx rea-agents setup。rea.run 教学等价——一律钉 6.5.0,除非发行说明另有强制:

# Node.js 22.x(>=22.19)、24.x(>=24.11)或 26+(见上游 README)
npx -y [email protected] setup
npx -y [email protected] doctor --json
# 批准 MCP 注册后重启智能体

# 可选:按客户端范围的 doctor(示例客户端 id——换成你的)
npx -y [email protected] doctor --client claude_code --json

# 可选:原生车道——自备 Ghidra 12.x + 64 位 JDK 21+
export GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.1.4_PUBLIC
export JAVA_HOME=/absolute/path/to/jdk-21
npx -y [email protected] doctor --provider ghidra --json
检查点通过标准
Setup重启后智能体能列出 REA MCP 工具
Doctor所需车道 doctor --json 绿灯
客户端 doctor--client … 匹配你实际使用的宿主
Ghidra doctor设好 GHIDRA_INSTALL_DIR + JAVA_HOME 后 --provider ghidra 绿灯
免引擎首任务对已授权样本做静态 JS/Electron 或 .NET
原生车道深伪代码前配置好自备 Ghidra/Hopper/IDA
Android 车道PATH 上有无头 jadx + 完整 JDK

安装界面演示:/zh/docs/install-demo/。版本说明:/zh/blog/rea-agents-6-5-0/。Ghidra/IDA 仍自备(/zh/faq/setup-vs-providers/)。

建议的工作室布局(选一种开干)

角色最小栈何时加码
智能体优先(MCP 宿主)REA 6.5.0 + doctor 绿灯深原生 → 自备 Ghidra(+ 可选 GhidraMCP)
Android 实验室REA + jadx + JDK + Apktool在你的模拟器上动态 → Frida/ADB
Windows 原生REA + x64dbg 或 raddebugger + ImHex重静态 → Ghidra/IDA(已授权)
.NETREA 托管工具 + ILSpy(和/或 dnSpy)对自有程序集做运行时步骤
网络观察对已授权客户端用 mitmproxy搭配 REA 捕获/HAR 工作流
清洁室重建A 室 + B 室 + oracle + 植入失败收紧 SPEC;扩大 Evidence

可选 GUI 伴侣:/zh/blog/eleven-rea-workbench/——围绕引擎的可视化 IDE;仍仅限授权目标。

常见坑

坑症状处理
引擎未安装原生任务失败/伪代码为空自备 Ghidra/Hopper/IDA;doctor --provider ghidra --json;/zh/faq/setup-vs-providers/
缺 JDK/jadxAndroid 反编译报错完整 JDK + 无头 jadx 在 PATH
教学实验室用浮动 latest「我这边能跑」漂移处处钉 [email protected]
未测 oracle绿灯却常量错植入 3 个必须失败变体
A 室泄漏进 B 室「规格」里有地址/名称SPEC.md 墙:仅行为
未授权目标法律/ToS 风险仅自有/书面授权/开放/清洁室
把星标当就绪工具很火但 doctor 红先 doctor + 小型授权夹具
智能体编造 Evidence文笔自信但无地址强制工具结果;未知保持标注
「直接反编译厂商包」神话版权风险观察行为 + 公开规格;FilmCraft 式 AGENTS
破解/绕过教程本站范围外不写、不求

如何嵌入 rea.run 教学路径

  1. 词汇 + Evidence:/zh/blog/rea-beginner-guide/
  2. 钉 6.5.0:/zh/blog/rea-agents-6-5-0/
  3. 安装演示:/zh/docs/install-demo/
  4. 可选 GUI:/zh/blog/eleven-rea-workbench/
  5. 本页:工作室环 + oracle + 双室清洁室
  6. 练习:/zh/lab/ · /zh/showcase/dx-ball/

合规

  • 仅分析你拥有、有书面授权、可学习的开源,或清洁室教学夹具。
  • 本页无破解、keygen、绕 DRM、利用 PoC 内容。
  • 商业引擎(IDA、Hopper、JEB 等)仍按厂商许可自备;REA 不授予许可密钥。
  • 星标与 awesome 列表位置 ≠ 许可。
  • 清洁室 = 行为 + 公开规格;不是阅读厂商应用包。
  • rea.run 是社区运维指南;既有页脚说明保持低调——不加新的显眼横幅。
  • /media/blog/rea-reverse-engineering-studio/ 下媒体为本文托管(工作室演示视频 + 封面静帧)。

来源

问答

问题短答
分析核心是什么?REA——一个 MCP(rea-agents),带 Evidence 与调查工作流。
用哪条 setup?教学钉:npx -y [email protected] setup(不要浮动 latest)。
REA 会装 Ghidra 吗?不会——自备;设好环境后用 doctor --provider ghidra。
三类 oracle 是什么?字节、行为、运行时。
为何植入失败?为了测 oracle(TH08 式常量盲区)。
清洁室墙是什么?SPEC.md——仅行为;B 室从不看分析。
能分析商店任意 APK 吗?不能——仅自有/已授权/清洁室。