dsh-rea-powerpack

toolstested: passnpmMIT

Installs and verifies the reverse-engineering engines REA needs on Windows (Ghidra, JADX, apktool, adb, WABT, frida and more), pins the rea-agents MCP server version, and reports capability gaps in a settings card.

下载量 / Downloads
882
依赖体积 / node_modules
0.32 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-rea-powerpack

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

dsh-rea-powerpack

把 REA 在 Windows 上做到最强:补齐分析引擎、固定 MCP 版本、体检能力缺口,
并在 DSH 设置里用一张卡片把这一切说清楚。

REA 是逆向分析 MCP 服务器:原生二进制、

托管代码、Electron/JavaScript、固件、浏览器目标都能拆。但它只是适配层——

Ghidra、JADX、WABT、frida 这些引擎得在这台机器上真的能跑。

![ci](https://github.com/Zhishulo/dsh-rea-powerpack/actions/workflows/ci.yml)

![npm](https://www.npmjs.com/package/dsh-rea-powerpack)

![license](LICENSE)

![node](package.json)

![version](CHANGELOG.md)

仓库:<https://github.com/Zhishulo/dsh-rea-powerpack> · npm:<https://www.npmjs.com/package/dsh-rea-powerpack>(源码、issue 与发行版都在这里)

dsh-rea-powerpack 干三件事:

1. 引擎:按矩阵检测 / 安装 / 卸载分析引擎,合成 env 与 PATH 喂给 REA;

2. 版本:把 rea-agents 精确固定,检查新版、影子预检、可回滚;

3. 体检:调用 REA 的 doctor,把「缺什么、为什么缺、怎么修」按 reason 分组列出来。

亮点

  • 一张卡片说清全部状态:REA 版本、pin 来源、引擎就绪数、最近体检、更新策略,

以及每个引擎的 tier / 版本 / 状态徽章 / 动作按钮。

  • 安装即校验:带 sha256 的引擎强制校验,半装状态不进清单、不进环境变量。
  • 用户设置优先:你手动设的 REA_* 环境变量永远赢,被保留的变量名会列出来。
  • 更新不赌运气:新版本先在影子目录里握手体检(serverInfo 版本 + 工具数 ≥ 200),

通过了才进配置档;进配置档后复检失败自动回滚,坏版本进 withheldBuilds。

  • 失败可解释:所有错误走稳定错误码 + 中英双语文案;未知码原样显示,不吞。
  • 无构建步骤:浏览器半边是 lazy-CJS(window.__ModuleLoader__.load),

只用 React + 内联样式,配色跟随宿主主题变量。

装好之后,REA 变成什么样(本机实测)

数字来自本机握手探针(dev/verify-mcp.mjs → dev/.v2.json,REA 6.8.0,

Java 25 + Ghidra 12.1.4 + 托管引擎就位):

指标 · 实测值 · 说明

MCP 工具总数 · 229 · 装引擎不改变工具清单,改变的是「哪些组真的能用」

可用工具组 · 50 / 76 · 剩余 26 组:11 组要先 open_binary(target_required)、13 组本平台不支持(unsupported_host)、2 组缺 JEB(provider_missing)

可用组内工具 · 142 · doctor 的 toolsInAvailableGroups

引擎就绪 · 13 / 13 · 矩阵 21 行:13 项 Windows 可用(全部 verified),另 8 项 REA 本身不支持 Windows

握手耗时 · 约 0.5 s · initialize + 分页 tools/list

无引擎基线(同一台机器、未注入任何 REA_*,裸启动 REA):

42 / 77 组可用,按 reason 分布 target_required 11 / unsupported_host 13 /

provider_unavailable 7 / provider_missing 4。注入托管引擎后:

provider_unavailable 7 → 0,provider_missing 4 → 2(只剩 JEB,商业软件不预装)。

组数 77 → 76 是 JEB 相关两个组在注入后合并了一组,工具总数始终是 229。

复现基线:

REA_POWERPACK_HOME=/tmp/rea-empty node dev/verify-mcp.mjs --launcher "<repo>/lib/rea-mcp.mjs" --list-tools   # 空目录 = 不注入任何引擎

产物见 [dev/BASELINES.md](dev/BASELINES.md)(两组基线:42/77 与 50/76,附复现命令)与

dev/baseline-no-engines.json(含命令、时间戳与完整 unavailable 列表)。

dev/ 只随本仓库分发、不进 npm 包,复现命令在 clone 出来的仓库根目录执行。

一句话:powerpack 不扩充 REA 的能力清单,而是让清单里"本该能用"的组真的可用:

引擎类 provider 缺口由矩阵补齐;剩下的缺口被逐条解释成「先开目标 / 本平台不支持 /

缺某个 provider」,而不是一句"工具不可用"。JEB 不在引擎矩阵内,需要自备 JEB 客户端。

安装

要求 Node >= 22.19.0(REA 自身要求),DSH 桌面版 / web / tui 均可。

发布状态:已发布到 npm —— <https://www.npmjs.com/package/dsh-rea-powerpack>
(首版 0.1.3,当前 0.1.4)。

npm 安装(推荐)

桌面版:设置 → 插件 → 添加,来源填包名 dsh-rea-powerpack。

web / tui:

dsh plugin --profile web add dsh-rea-powerpack
dsh plugin --profile web ls
Desktop 的 profile 由 Electron 独占管理,dsh plugin --profile desktop 会被拒绝 ——
这是 DSH 的硬约束,桌面用户请走上面的 UI。

从源码安装(开发者 / 想改代码)

junction 装法:改仓库里的代码不用重装,刷新即生效。

git clone https://github.com/Zhishulo/dsh-rea-powerpack.git
cd dsh-rea-powerpack
node dev/install-plugin.mjs --repo . --dry-run   # 先看它准备改什么
node dev/install-plugin.mjs --repo .             # 真正安装
git clone 若报 schannel: failed to receive handshake,是本地代理/网络抖动,
重试 2–3 次即可,与本仓库无关。

桌面版也可以走 UI:侧栏 插件 → 添加,来源填刚 clone 下来的目录(file:<绝对路径>)。

dev/install-plugin.mjs 只做四件事(--profile <dir> 覆盖默认的

~/.dsh/profiles/desktop,--uninstall 反向执行):

1. 备份 profile 的 package.json / cordis.patch.yml / pnpm-lock.yaml 到

<profile>/.rea-powerpack-backup/<时间戳>/;

2. 在 profile 里 pnpm add "link:<repo>" --save-exact(junction 安装:改仓库代码不用重装);

3. 把 dsh-rea-powerpack 写进 dsh.profile.bundles,并把旧的 dsh-rea-agents 从 bundles 移除

(两个 bundle 都会挂一行名为 rea 的 MCP client,同时开会撞车);

4. 清掉 profile cordis.patch.yml 里残留的 - id: rea-agents* 行(原文件留在备份里)。

装完重启 DSH:bundle 列表与 patch 层在 boot 时一次性合成。

插件向配置注入两行:dsh-rea-powerpack(卡片宿主)与 rea-powerpack-mcp(名为 rea 的 MCP 服务,

所以工具仍是 mcp__rea__*)。

插件不安装分析引擎以外的任何东西,也不会改写你的全局环境变量或注册表。

首次配置

1. 打开卡片:设置 → 插件 → REA 强化 tab。

2. 装 REA 本体:卡片会显示「未安装」;点「安装」按当前 registry 最新版精确定装

(pnpm add rea-agents@x.y.z --save-exact)。

3. 装引擎:概览会告诉你「引擎就绪数 x/y」。先在矩阵里装 tier 0/1

(Java、Ghidra → adb、apktool、jadx、wabt、python、frida)。

依赖顺序见 [docs/ENGINES.md](docs/ENGINES.md#5-安装顺序与依赖)。

4. 跑一次体检:「能力体检 → 运行体检」,确认 REA 实际暴露的工具数(正常 ≥ 200)。

5. 选更新策略:默认 notify(只提示)。想随时跟进可改 auto-idle。

状态目录与引擎目录

状态目录默认 %LOCALAPPDATA%\rea-powerpack(REA_POWERPACK_HOME 可覆盖),

卡片里的「维护」区会显示当前真实路径:

文件 · 内容

engines.json · 引擎清单:每个引擎的 path/version/verified,以及 root

settings.json · updatePolicy、engineRoot、toolTimeoutMs、checkIntervalHours、locale

pin.json · 当前固定的 REA 版本、pin 来源、可回滚的上一版、被拒版本 withheldBuilds

state.json · 最近一次体检与最近一次热重载的结果(卡片"最近体检时间"读它)

logs/powerpack.log · JSONL 日志:每次安装/校验/升级/回滚/重载一条

引擎默认装在 ...\rea-powerpack\engines\<id>\;在设置里改 engineRoot 可换盘。

移动或删除引擎目录后,点一次「全部校验」,卡片会把对应行标成 missing,

不会继续引用一个不存在的路径。

引擎矩阵

id · 名称 · tier · 环境变量 · 安装

java · Java (JDK) · 0 · JAVA_HOME · 手动(外部)

ghidra · Ghidra · 0 · GHIDRA_INSTALL_DIR · 手动(外部)

adb · Android Platform Tools · 1 · REA_ADB_PATH · 托管 zip

apktool · Apktool · 1 · REA_APKTOOL_COMMAND · 托管 github-latest

jadx · JADX headless MCP · 1 · REA_JADX_MCP_JAR · 托管 file(sha256)

wabt · WABT · 1 · REA_WABT_BIN_DIRECTORY · 托管 zip

python · Python 3.12 · 1 · PATH · 托管 winget

frida · Frida tools · 1 · PATH · 托管 pip

objdump · GNU objdump · 2 · REA_OBJDUMP_COMMAND · 手动(

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::3,最后更新 2026-10-27

Links

GitHub · Homepage · npm

Same category