Skip to main content
Glama

RE Hub — 逆向场景路由网关(MCP + 官方 Skill)

把 20+ 个逆向项目的能力收敛成一套 MCP 工具 + 一个路由 Skill: Agent 先识别意图与目标形态,再路由到对应逆向链路(原生 / Android / Web-JS / Electron / .NET / 固件 / 抓包 / 归档 / 进程 / 漏洞),执行时由网关调用真实后端,并把证据写进账本。

定位:不是又造一个反编译器,而是"逆向任务的操作系统" —— 统一入口、统一编排、统一证据。 深分析能力复用 REA(本机 6.4.0)、Ghidra 12.1.4、JADX 1.5.6、apktool 3.0.3 等现成引擎。

1. 结构

re-hub/
├─ src/
│  ├─ server.mjs        # MCP stdio 服务:11 个工具 + 2 个官方 prompt
│  ├─ scenarios.mjs     # 15 个场景目录 + 意图路由(关键词/扩展名加权)+ 链路规划
│  ├─ targets.mjs       # 对象分类(网站/App/软件/AI 自动化)+ 静态/动态/UI 链路
│  ├─ intake.mjs        # v2 统一任务解析(intent + object + modes + constraints)
│  ├─ capabilities.mjs  # 能力注册表 + 后端回退(按 capability 选实现)
│  ├─ tasks.mjs         # 任务状态(taskId/stepId/planVersion)+ 局部重规划
│  ├─ verify.mjs        # 三层验证(执行 / 事实 / 交付)
│  ├─ backends.mjs      # 真实执行适配器:rea / ghidra / jadx / apktool / adb / frida / uia / x64dbg / pe-sieve
│  ├─ detect.mjs        # 环境侦察(可用性/版本/安装提示,30s 缓存)
│  ├─ evidence.mjs      # 证据账本(JSONL)与 Markdown 报告
│  ├─ cli.mjs           # 命令行版(调试/脚本用)
│  └─ lib/{mcp,exec}.mjs# 最小 MCP 协议实现 + 子进程执行器
├─ scripts/ghidra/DumpFunctions.java   # Ghidra headless post-script(函数清单/伪代码)
├─ skills/reverse-engineering-hub/
│  ├─ SKILL.md          # 封面:书名/简介/目录/三个索引/标准动作
│  └─ chapters/         # 正文:00 使用说明 + 01–15 场景章 + A/B/C/D/E 附录(按需加载)
├─ install/register.mjs # 一键注册到 DSH(MCP + Skill),幂等
├─ tests/smoke.mjs      # 105 项冒烟测试(真实 MCP 客户端)
├─ vendor/              # 全部同类项目源码(25 个仓库,见 VENDOR.md)
├─ tools/               # 下载的 JADX / apktool / x64dbg / pe-sieve
└─ state/               # 证据账本、Ghidra 工程、大输出落盘

Related MCP server: REA

2. 快速开始

cd <repo>

# 0) 从 GitHub 克隆后初始化(本仓库不包含 vendor/tools/state)
git clone https://github.com/yeguang112/re-hub.git
cd re-hub
Copy-Item config.example.json config.json    # 按本机路径修改
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\vendor-clone.ps1  # 拉 25 个第三方仓库

# 工具按需自举(官方 GitHub release + sha256 校验,写入 config.json)
node scripts/bootstrap.mjs --check                  # 只看缺什么
node scripts/bootstrap.mjs --only jadx,apktool --yes  # 只装需要的
node scripts/bootstrap.mjs --all --yes                # 全部(含 REA ~ 与 Ghidra ~400MB)

# 1) 冒烟测试(不需要 DSH)
node tests/smoke.mjs

# 2) 环境侦察
node src/cli.mjs detect

# 3) 意图路由
node src/cli.mjs route --task "这个 APK 的登录参数怎么加密的" --target D:\x\app.apk

# 4) 生成链路
node src/cli.mjs plan --scenario android-apk --target D:\x\app.apk

# 5) 执行一步
node src/cli.mjs exec rea analyze --path C:\Windows\System32\where.exe

# 6) 全链路演示(Android:detect→route→plan→rea→jadx→apktool→证据→报告)
node scripts/demo-android.mjs

# 7) 注册到 DSH(MCP + Skill)
node install/register.mjs
#   重启 DSH 后工具出现为 mcp__rehub__*

# 8) 校验 DSH patch 文件(编码/YAML)
node scripts/validate-patch.mjs %DSH_HOME%\cordis.patch.yml

后端细节、坑与接入方法见 docs/BACKENDS.md;已整合仓库清单见 VENDOR.md。

3. MCP 工具(注册后前缀 mcp__rehub__)

工具

作用

detect

侦察本机后端可用性、版本、缺失项安装提示、vendor 数量

scenarios

列出 15 个场景及链路(带 chapter 指针)

classify

对象分类:task(+target) → 网站/App/软件/AI 自动化 + 子类 + 静态/动态/UI 三条链路(附录 D)

route

意图识别:task(+target) → 场景/置信度/理由/该读哪一章(chapter)/缺失依赖/澄清问题;同时带对象分类与三条模式链路

book

这本书:不带参数返回目录;带 chapter(04/04-web-js/web-js)返回该章正文

plan

任务图:{scenario,target} 或 {objectType,mode,target},返回 taskId/planVersion + 每步 stepId/capability/副作用/可用性/回退/期望证据 + 停止条件;支持 fromStep 局部重规划

exec

执行一步(rea/jadx/apktool/ghidra/adb/frida/uia/x64dbg/pe-sieve);传 taskId+stepId 记录状态与 recovery,副作用步骤需 confirm:true

mcp

子 MCP 多路复用(js-reverse-mcp、ghidra-mcp、ida-mcp…)

evidence

证据账本 + Claim:append(artifactRef/sha256)/claim(observed/inferred/unknown)/list/report(统一报告)

verify

三层验证:execution / fact / delivery;supported/contradicted/insufficient/inferred/unknown

Prompt:reverse-engineering-router(封面+目录索引全文)、scenario-chain(单场景链路)、chapter(单章正文)。

3.1 对象分类 × 静态/动态/UI 链路

classify 先回答「逆向的是什么对象」,再分配「用哪种模式做」——与场景(scenario)正交:

对象类别

子类

静态 static

动态 dynamic

UI ui

网站

web-sign / web-frontend / web-api

04 抓 bundle + JS 断点

05 页面被动观察

15 DOM → clean-room 原型

App

android / ios / miniprogram

02 / 10 / 10

03(adb+frida)/ 14 受限 / 05

15 + adb uiautomator / 受限 / 15

软件

windows-native / dotnet / electron / desktop-other / firmware

01 / 07 / 06 / 01 / 08

14 / 14 / 05+14 / 受限 / 外部

15 / 15 / 15 / 受限 / 不适用

AI 自动化

mcp-pipeline / agent-loop / ai-decompile

01 MCP 批量

14 自动化

15 批量采集

AI 自动化 是"怎么做"的意图:分类结果同时给出 underlying 底层对象。完整矩阵见 附录 D。

3.2 任务状态、能力编排与验证(v2)

route/classify 共用同一个 parseTask(schemaVersion: "2.0"),一次解析出 intent / object / modes / constraints / assumptions / uncertainties。

plan 创建任务并版本化:taskId、planVersion、每步 stepId,步骤状态 pending/running/succeeded/failed/blocked/skipped;rehub_plan { taskId, fromStep, changeReason } 只替换受影响分支(局部重规划),constraints.maxSteps 截断计划、budgetMs 在执行侧检查。

detect 把后端区分为 installed / runnable / usable(例如 Medium 下 pe-sieve 的 usable=false),并按 capability 注册候选实现;首选后端不可用时自动尝试等效能力 (可用 resolveFallbacks:false 关闭)。install 真正下载需 dryRun:false + authorize:true。

evidence 的观察(append)与结论(claim)分离;verify 分 execution(工具是否成功)/ fact(结论是否有 observation 证据)/ delivery(交付物是否达标) 三层。 执行成功不等于事实成立。详见 附录 E。

3. 官方 Skill:一本可查的书

skills/reverse-engineering-hub/ 是按「书」组织的 skill:

  • 封面 SKILL.md:书名/简介/目录/三个速查索引(按目标形态、按用户说法、按产出)/标准动作。

  • 正文 chapters/:00 使用说明 + 01–15 场景章 + A 证据与交付 + B 后端与依赖 + C 坑与故障排查 + D 对象分类 × 模式矩阵 + E 任务状态/能力/验证。

  • 按需加载:先 rehub_route 拿到 chapter,再 rehub_book { chapter } 只读那一章,不必整本读。

  • 三索引让 agent 或人 30 秒内定位:"这个报错看哪章、这个目标看哪章、要这种产出看哪章"。

章

内容

章

内容

00

使用说明

07

.NET/托管

01

原生二进制

08

固件/镜像

02

Android 静态

09

抓包/协议

03

Android 动态

10

安装包/归档

04

Web/JS(签名/加密)

11

进程行为

05

Web 运行时观察

12

漏洞研究/补丁

06

Electron/桌面 JS

13

分诊(信息不足)

14

动态分析/运行时追踪

15

UI 逆向/界面结构

A

证据与交付

B

后端与依赖

C

坑与故障排查

D

对象分类 × 静态/动态/UI

E

任务状态、能力与验证

—

—

3.5 工具自举(别人 clone 下来没有引擎怎么办)

仓库只含代码,不含引擎。缺失的引擎可以从官方 GitHub release 按需下载,自动解压并写回 config.json:

工具

来源仓库

约大小

说明

jadx

skylot/jadx

70MB

APK → Java 反编译

apktool

iBotPeaches/Apktool

15MB

APK 资源/Manifest

jadx-headless-mcp

1013503897/jadx-headless-mcp(固定 v0.7.1)

41MB

REA 的 Android 桥(自动重打包去重)

rea

morluto/rea

仓库 + npm 依赖

统一执行层

ghidra

NationalSecurityAgency/ghidra

~400MB

原生深分析(需 JDK21)

x64dbg

x64dbg/x64dbg

~50MB

动态调试(断点/单步/内存)

pe-sieve

hasherezade/pe-sieve

~1MB

内存 dump / 注入检测

两种用法:

  • Agent 侧:rehub_install { only:["jadx","apktool"], dryRun:false }(默认 dry-run,只报告计划)

  • 命令行:node scripts/bootstrap.mjs --only jadx,apktool --yes;--check 只看状态

特性:已存在(含 config 指向的现成安装)自动跳过;GitHub 提供 digest 时校验 sha256;只装缺的,不重复下载。

4. 场景与后端矩阵

场景

首选后端

依赖

native-binary

rea(provider=ghidra) + ghidra headless

Ghidra 12.1.4 ✅

android-apk

rea(android provider) + jadx + apktool

JADX 1.5.6 ✅ / apktool 3.0.3 ✅ / jadx-headless-mcp 0.7.1 ✅

android-dynamic

adb + frida

❌ 未安装(无设备)

web-js

js-reverse-mcp + rea CDP

Chrome ✅ / 子 MCP 需 npm build

web-runtime

rea CDP

Chrome ✅

electron-desktop

rea analyze-javascript-application

REA ✅

dotnet-managed

rea inspect-managed-*

REA ✅

firmware

rea binwalk/unblob

Windows 受限(建议 WSL)

protocol-capture

rea HAR/pcap

HAR ✅ / pcap 需 tshark

artifact-inventory

rea inspect/extract artifact

REA ✅

process-behavior

rea capture-process

Windows 受限

vuln-research

rea layout + ghidra functions

✅

dynamic-analysis

x64dbg + frida + pe-sieve

x64dbg/pe-sieve 可 bootstrap;frida 需 pip;VMProtect 见第 14 章

ui-reverse

UIA(控件树/截图)+ CEF CDP

UIA 内置;CEF 需调试端口

triage

提问澄清

—

实测(2026-11-07,样本 APK,计算器 6.7MB): rea android-package 5023 类/1584 资源 → jadx decompile 5021 个 Java 文件(partial success) → apktool decode Manifest 成功 → rea android-class 定位 MainActivity → 证据/报告落盘。 复现:node scripts/demo-android.mjs。

5. 已整合项目(vendor/)

见 VENDOR.md:REA、IDA MCP(社区版/官方/headless)、GhidraMCP 系(4 个)、Binary Ninja MCP、 ReVA、JADX MCP 系、apktool MCP、js-reverse-mcp、JSReverser-MCP、Frida MCP、MobileRE-Skill、 LLM4Decompile、buttercup、Marrow/revula 等 26 个仓库(25 个 clone 到 vendor/,REA 6.4.0 在本机 downloads/rea 运行)。

集成方式分三档:

  1. 直接可用:REA(本机)、Ghidra(本机 headless)、JADX/apktool(已下载)、Chrome。

  2. 注册即用:任意 MCP 服务写进 config.json 的 mcpBackends,用 rehub_mcp 调用。

  3. 需商业许可/设备:IDA Pro、Binary Ninja、JEB、真机 Frida —— 只做检测与接入说明。

6. 证据纪律

  • 每条记录 kind=observation|inference|unknown,带 target/backend/op/证据定位。

  • evidence report 输出 Markdown,按场景分组,未验证假设单列。

  • 不把"工具热度/star"当结论;不把未执行计划写成已完成。

7. 安全与边界

  • 只用于自有或已获授权的软件分析;不做未授权的绕过/破解。

  • 商业工具(IDA/Hex-Rays/Hopper/BN/JEB)需自备合法授权,REA 与本网关不提供许可。

  • 动态链(Frida/adb)会改变运行时状态,执行前确认测试设备与数据备份。

8. 已知限制

  • Windows 上 binwalk/unblob、PTY 捕获、pcap 原生解析能力受限(Linux/WSL 更完整)。

  • js-reverse-mcp 需 npm 安装 + Patchright 浏览器,尚未构建(rehub_detect 会标缺失)。

  • IDA/Binary Ninja 未安装,仅检测。

  • 本网关不复制 REA 的 229 个工具:REA 已有 mcp__rea__*,网关负责路由与编排,避免工具面翻倍。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables agents to reverse-engineer software across native binaries, managed code, Electron apps, websites, and live runtime behavior, returning findings linked to the evidence and limitations behind each conclusion. It also maintains a durable workspace where those behaviors can be inspected, questioned, compared against real execution, and exported as runnable handoffs.
    496,689 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI agents to reverse-engineering tools that inspect native binaries, JavaScript/Electron apps, .NET assemblies, websites, and runtime behavior without source code. Returns pseudocode, references, and evidence so agents can explain how a feature works or reimplement it.
    496,689 npm
    7
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables an AI agent to reverse-engineer a compiled program with Ghidra — inspecting decompiled code, instructions, callers, memory bytes, and strings — without any source code. Every reply is labelled as fact, computed, or guess, and each claim traces back to hash-checked saved evidence.
    110 PyPI
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agents to reverse engineer native binaries, JavaScript/Electron applications, .NET assemblies, web captures, EVM bytecode, and process behavior through a provider-neutral MCP interface. Every result is an evidence envelope stating what was observed, derived, unexamined, or unprovable, with all capabilities gated by a deterministic fail-closed policy engine.
    Apache 2.0