dsh-rea:用一条开关同时挂载 REA MCP 与三个工作流技能

前言

在 DeepSeek Harness(DSH)里做逆向相关任务时,常见做法是单独跑 rea setup --client dsh,把 REA 的 MCP 服务写进 home patch;技能文件又要自己对齐 morluto/rea 仓库。关掉某一块时,MCP 和技能往往各管各的,还容易和插件体系里的 bundle 条目撞 id。

dsh-rea 由 BJ1919810 维护,分类为工作流插件。它把 morluto/rea 的能力包装成 DSH 插件:插件页上一个开关,同时启用或停用 REA MCP 服务(207 个逆向分析工具)以及 REA 的三个工作流技能;改开关无需重启 DSH。

这是什么

dsh-rea 是 DeepSeek Harness 插件,版本 1.0.0(MIT)。技能内容来自 morluto/rea(MIT),本仓库负责 DSH 集成与一键开关。

关掉插件时,工具和技能一起从当前 profile 消失;打开后一起恢复。插件本身不安装 Ghidra、jadx、apktool 等引擎,与 REA 一样只做适配层。

核心功能

REA MCP 服务

通过 bundle patch 拉起 rea-agents 的 MCP 子命令,对外提供 207 个逆向相关工具,覆盖 Ghidra、IDA、jadx、apktool、Frida、adb、pcap、固件、浏览器、Electron、托管代码等方向(具体可用性取决于本机是否安装对应引擎并配置环境变量)。

三个工作流技能

与 MCP 同开同关,技能 id 与 upstream 一致:

  • reverse-engineer-anything(含 6 篇 references)
  • rea-tool-design
  • rea-changelog-update

运行时由 lib/index.js 解析 frontmatter;skills/ 为 morluto/rea .agents/skills/ 的原样副本。

跨平台启动器

cordis.patch.yml 用表达式按平台选择启动方式:Windows 经 cmd.exe 调用 npx,其他平台直接 npx。作者在 Windows x64 上实测表达式会求值,207 工具可用;macOS / Linux 的 npx 分支未实测。

安装与启用

本仓库未发布到 npm。GUI 使用 --profile desktop;TUI 改为 --profile tui。

方式一:从 GitHub 安装(作者注明未单独验证 DSH 供应链是否一律放行;2026-10-16 曾实测 pnpm 安装成功且策略放行):

dsh plugin --profile desktop add github:BJ1919810/dsh-rea

方式二:clone 后按本地路径安装(作者标注为最稳,已实测环境为 Windows x64 + DSH Desktop + REA 6.5.0):

git clone https://github.com/BJ1919810/dsh-rea
dsh plugin --profile desktop add file:D:/path/to/dsh-rea

锁定版本(仓库已打 tag):

dsh plugin --profile desktop add github:BJ1919810/dsh-rea#v1.0.0

装完后在插件页会出现 dsh-rea,该开关即为总开关。

卸载:

dsh plugin --profile desktop remove dsh-rea

不会删除你自备的引擎目录。

前置环境与变量

常用组合(摘自 README):

用途 需要自备
原生 PE/ELF 静态分析 Ghidra 12.1.x + JDK 21+(或按 REA 文档自备 IDA)
APK 资源 / DEX apktool、jadx-headless-mcp 0.7.1 的 -all.jar
真机 / 模拟器 Android platform-tools(adb)

插件不写死路径。REA MCP 继承 DSH 进程环境,请先把变量设为用户或系统环境变量,再启动 DSH。示例:

GHIDRA_INSTALL_DIR   = D:\tools\ghidra_12.1.4_PUBLIC
JAVA_HOME            = D:\tools\jdk-21
REA_JADX_MCP_JAR     = D:\tools\jadx-headless-mcp-0.7.1-all.jar
REA_APKTOOL_COMMAND  = D:\tools\apktool\apktool.cmd
REA_ADB_PATH         = D:\Android\Sdk\platform-tools\adb.exe

只配置实际用到的项。检查就绪情况:

npx -y rea-agents@latest doctor --json

不设变量也能装上并启动 MCP,但对应工具会以 capability_unavailable 失败,并在提示中说明应设置哪个变量。修改环境变量后需要重启 DSH(仅在启动时读取环境)。

与 home patch 的冲突

若曾执行 rea setup --client dsh,REA 可能在 ~/.dsh/cordis.patch.yml 写入自管的 rea-mcp,与插件条目 id 冲突,且不受插件开关控制。使用本插件前,应删除 home patch 中那份配置,并将该文件恢复为:

[]

home patch 不能留空文件或纯注释,否则 DSH 启动失败;停用该层时必须写 []。

典型用法与验证

  1. 安装插件并打开开关。作者实测:ON 时 cordis.yml 出现 rea-skills / rea-mcp;OFF 时两条目消失,调用报 unknown tool。
  2. 在对话中通过 MCP 调用逆向工具(例如 inspect_apktool_client);配置正确时可返回本机 apktool 版本信息。
  3. 需要工作流引导时,依赖已启用的三个技能(如 reverse-engineer-anything 及其 references)。

维护者同步 upstream 技能:

node sync-skills.mjs D:\path\to\rea-checkout
node test/smoke.mjs

适用场景与注意

适合已在 DSH 里做逆向、希望 MCP 与技能统一开关、并愿意自备分析引擎的开发者。插件以当前 DSH 进程权限运行;安装前请阅读仓库源码、LICENSE 与 LICENSE-REA / NOTICE,确认许可与出处。

Node 要求:>=22.19.0(见 package.json)。macOS / Linux 上的完整运行路径作者未实测,若表达式启动有问题,可按 README 将 cordis.patch.yml 中启动器改为字面量(见文件内注释)。

社区目录 SkillHub 上的 dsh-rea 页 与 GitHub 仓库相互独立,并非 DeepSeek / 幻方官方应用商店;DSH 生态理念是「一切皆插件」,可按需从目录或仓库获取。

结尾

dsh-rea 把 REA 的 MCP 与三个工作流技能收成插件页上的一个开关,减少 home patch 与技能版本各管各的摩擦;引擎仍须本机自备并按文档配置环境变量。

  • 目录页:https://www.skillhub.cn/plugins/BJ1919810/dsh-rea
  • GitHub:https://github.com/BJ1919810/dsh-rea
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜