dsh-rea:一次安装挂载 REA 的 MCP、桥接与设置页

前言

在 DeepSeek Harness(DSH)里接 REA(Reverse Engineer Anything)时,常见做法是分别在各个客户端注册 MCP、单独维护桥接目录,配置散在多处。改引擎路径或 provider 时,往往要在多个环境里重复同一套变量。dsh-rea 是维护者 yin1895 发布的工作流类 DSH 插件:安装一次,通过 bundle 同时挂上 REA 的 MCP 服务器、渐进式披露桥接,以及在设置面板里的 REA 配置页;REA 的运行时配置集中到 <REA home>/config/rea.env.json 一份文件里。

这是什么

dsh-rea 面向已在或计划在 DSH 上使用 REA 做逆向分析相关工作的开发者。插件在 Cordis 侧挂载两行:dsh-rea(宿主半侧与配置页)和 rea-mcp(REA MCP 服务器经包内桥接)。目标运行时为 DSH 0.2.1-rc.3(README 标明已验证环境为 Windows x64)。REA 本体来自 morluto/rea(npm rea-agents);本插件负责 DSH 侧的适配,仓库见 GitHub yin1895/dsh-rea,社区目录页为 skillhub.cn/plugins/yin1895/dsh-rea。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

统一 bundle 与配置

安装插件后,cordis.patch.yml 会写入 profile 的 bundle,无需在宿主层重复注册 rea-mcp(README 提醒:$DSH_HOME/cordis.patch.yml 若再注册会静默覆盖插件行)。REA 相关环境变量与开关由 config/rea.env.json 统一管理;配置页保存前会留 .bak,写入采用临时文件加原子替换,并对每个变量单独校验。

设置面板(REA 配置页)

浏览器半侧通过 settings.section 提供 Web 配置页,能力包括:

  • 总览:REA 版本、固定 Node、启动器、配置文件路径、工具目录数量、可用 provider。
  • 引擎表:对 GHIDRA_INSTALL_DIR、JAVA_HOME、REA_JADX_MCP_JAR、REA_APKTOOL_COMMAND、REA_ADB_PATH、REA_BROWSER_EXECUTABLE、REA_ILSPY_CMD_PATH 等逐项显示就绪状态。
  • 运行体检:调用 rea doctor --format json,列出未通过项、分类与修复建议。
  • 快速验证:Node / REA / Apktool / adb / 托管样本 / Ghidra headless / 原生反编译器 / JDK 共 15 步。
  • 编辑并保存:引擎路径与 REA_LOG_LEVEL、REA_ANALYSIS_PROVIDER 等;常驻工具(directTools) 可编辑每次请求都会披露的工具清单(上限 40)。
  • 同步到系统:重新生成 config\rea.env.cmd 并发布用户级环境变量。
  • 更新 REA:在 <REA home> 执行 npm install rea-agents@latest。
  • 打开目录:REA 主目录、配置、日志、样本、引擎、工具、插件等快捷入口。

MCP 与渐进式披露桥接

bridge/index.mjs 提供渐进式披露 MCP 桥接:较小的 directTools 列表,以及 rea_catalog、rea_call。README 记录在本机验证场景下可达 229 个 REA 工具;桥接层与宿主半侧分离,lib/core.js 为无 Cordis 依赖的纯逻辑(配置读写、doctor、引擎探测、更新、同步)。

传输与安全

浏览器半侧仅做同源 fetch;宿主在 webServer 上注册 /dsh-rea 前缀路由。因 webServer.register 本身无鉴权,每个请求需通过三道闸门:x-dsh-rea: 1 头必须存在;若存在 Sec-Fetch-Site,须为 same-origin 或 none;若存在 Origin,其 host 须等于 Host。POST 须为 application/json,请求体上限 64 KiB。端点包括 GET /overview,以及 POST /doctor、/verify、/save、/sync、/update、/reveal。

启动与故障行为

插件设置 failOnStartupError: false:REA 异常时工具可能缺席、配置页报错,但 Harness 仍可启动。README 说明非插件侧的 REA 注册已清除,REA 的 doctor 对其它客户端会报告 missing,DSH 侧由本插件承担。

安装与启用

目标 DSH 版本为 0.2.1-rc.3;package.json 中 dsh.compatibility 对该版本标记为 compatible。安装前请自行审阅 仓库源码 与 MIT 许可证;插件以当前 DSH 进程权限运行。

按 README 步骤,先将插件装进 profile(会自动写入 dependencies 与 dsh.profile.bundles):

# 1) 装进 profile(会自动写入 dependencies 与 dsh.profile.bundles)
dsh plugin --profile desktop add github:yin1895/dsh-rea
#    本地目录安装:dsh plugin --profile desktop add file:D:/REA-tool/plugin/dsh-rea
#    再确认 profiles\<name>\package.json 的 dsh.profile.bundles 里有 "dsh-rea"

# 2) 重启 DSH,打开 设置 → REA

从源码修改后重新投放到 profile 时,README 要求复制而非 junction,可执行:

pwsh -File scripts/rea-deploy-plugin.ps1 -Profile @('desktop')

典型用法

安装并重启后,在 DSH 设置 → REA 打开配置页,是日常入口。

  1. 在引擎表中核对 Ghidra、JDK、Apktool、adb 等路径是否就绪;未就绪项按提示补全 rea.env.json 或在页内编辑保存。
  2. 运行运行体检或快速验证,根据 rea doctor 或 15 步验证结果修复环境。
  3. 按需调整 directTools 列表,控制每次对话默认披露的 REA 工具规模(上限 40);更多工具经 rea_catalog / rea_call 渐进披露。
  4. 需要系统级环境变量时,使用同步到系统生成 rea.env.cmd 并发布用户级变量。
  5. 升级 REA 代理包时使用配置页更新 REA(等价于在 REA home 执行 npm install rea-agents@latest)。

样例配置文件可参考仓库中的 config/rea.env.example.json。

适用场景与注意

适合谁:在 DSH 0.2.1-rc.3(尤其 README 已验证的 Windows x64)上,希望用 REA 做逆向相关分析,且希望 MCP、桥接与配置 UI 一次装齐、只维护一份 rea.env.json 的开发者。

设计与兼容约束(来自 README):

  • 浏览器半侧要求 bundle 以裸包名挂载;仅挂子路径会导致 /plugins/dsh-rea/client.js 404,设置页空白。
  • lib/client.js 为提交好的手写产物,安装时不会构建;peerDependencies 仅声明 @deepseek-ai/cordis,其余为 optional,避免兼容性预检误拦。
  • 不要在 profile 的 node_modules 里对插件使用 junction;pnpm install 可能沿链接删除目标目录。

维护者提供的自检命令(需本机 REA 配置的行为测试在本地执行):

npm run check                      # 打包契约 21 项(不需要 DSH / REA)
npm run check:bridge               # 桥接 MCP initialize 握手(不需要 REA)
npm test                           # 核心与路由 29 项(需要本机 REA 配置)
npm run test:http                  # 真实 http 服务器 19 项
npm run test:client                # 浏览器半侧 17 项
npm run smoke                      # 桥接 + 真实 REA 工具往返
pwsh -File scripts/rea-selftest.ps1  # 引擎端到端 10 步

结尾

dsh-rea 把 REA 在 DSH 上的 MCP 服务、渐进式披露桥接和设置页收进同一个插件 bundle,并把配置收敛到 rea.env.json。若你在 Harness 里集中管理 REA,可从社区目录或 GitHub 获取插件并按 profile 安装后,在 设置 → REA 完成引擎配置与验证。

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

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

小夜