dsh-rea-mcp:用配置把 REA 逆向分析挂进 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里做逆向或二进制分析时,常见做法是自己在对话里粘贴反汇编片段,或临时写脚本调用 Ghidra、Hopper 等工具。REA(Reverse Engineer Anything)把多种本地分析能力封装成 MCP 服务;若要在 DSH 智能体里直接调用这些工具,需要把 Harness 自带的 MCP 客户端桥接到 REA 的 stdio 服务端。dsh-rea-mcp 由维护者 sheilacraig 发布,分类为工作流,是一个仅含配置的 DSH 插件包:不写 Host 插件代码,整份集成实质是约 20 行的 cordis.patch.yml,把 DSH 内置的 @deepseek-ai/dsh-mcp-client 指向 npx -y rea-agents@6.4.0 mcp 启动的上游 REA MCP 进程。

这是什么

dsh-rea-mcp 是 DeepSeek Harness 与 morluto/rea 之间的配置桥。插件描述为:Config-only DeepSeek Harness bundle that mounts the in-box MCP client bridge against morluto/rea — reverse engineer anything with agents; no plugin code。

数据流可以概括为:

DSH agent
  └─ mcp__rea__analyze_binary / search / decompile / ...
       └─ @deepseek-ai/dsh-mcp-client        (ships with DSH)
            └─ npx -y rea-agents@6.4.0 mcp   (stdio child process)
                 └─ REA analysis engines

仓库不含 index.js,不会在 Harness 进程内执行作者编写的 JavaScript;也不新增 HTTP 路由、不读写 ~/.dsh/...state.json,dependencies 为空。npm 包版本为 1.0.0,许可证 MIT。目录页:https://www.skillhub.cn/plugins/sheilacraig/dsh-rea-mcp;源码与说明:https://github.com/sheilacraig/dsh-rea-mcp。

刻意不包含的内容(设计取舍)

README 明确列出的是设计选择,而非缺功能清单:无 Host 插件、无 Web 路由、无状态文件、无会改写 profile 的安装器;npm run prewarm 只在你自己的终端里安装并校验上游服务。桥接通过 PATH 解析 npx,不写入机器相关绝对路径。安装前建议通读 cordis.patch.yml,该文件即插件本体。

前置条件

  1. DSH 版本:engines.dsh 声明为 >=0.2.0-rc.1 <0.3.0-0;作者在 0.2.0-rc.2(desktop)上验证过。声明范围与作者实测版本不是同一回事,部署时需自行对照。
  2. Node.js:运行 DSH 的进程 PATH 上需有 Node 与 npm;npx 会拉起 rea-agents,要求 Node 22.x(>=22.19)、24.x(>=24.11)或 26+;作者曾在 Node 24 上测试。
  3. 可选:深度原生二进制分析需本机已安装 Hopper、Ghidra 或 IDA 之一;静态 JavaScript 与 .NET 检查不需要原生引擎。

核心能力

智能体侧工具名形如 mcp__rea__<Tool>;具体集合由上游 rea-agents@6.4.0 发布,插件不固定工具数量,可在安装包目录执行 npm run prewarm 查看实时列表。README 归纳的能力包括:

领域 REA 可返回的内容(摘要)
原生二进制 伪代码、汇编、字符串、符号、调用与引用
Go 二进制 编译器版本、模块、replace、构建设置等
WASM / EVM / 固件 段、WAT、调度选择器、区域提取
JavaScript / Electron 模块、导入、source map、路由、IPC、原生插件
.NET 程序集 元数据、CIL、原生依赖、构建对比
Android APK / 设备 清单、反编译方法、包、进程、dump
网站 页面结构、脚本、网络观测、截图
SQLite / 崩溃 / 抓包 表结构、寄存器与信号、请求、暴露载荷、数据包

静态 JS 与 .NET 仅读取你提供的文件;运行时捕获与设备相关流程会在你的用户权限下运行目标,启用前需阅读 REA 各指南。分析在本地进行,结论会附带证据与局限说明。

安装与启用

应用内

打开 Settings → Plugins → Add plugin,粘贴以下其一(README 原文):

dsh-rea-mcp                                  # the npm package name
github:sheilacraig/dsh-rea-mcp               # the GitHub repository

Electron 桌面版使用应用自带的 desktop profile 与插件面板,不要用 CLI 去改该 profile。

CLI profile

若使用 CLI 持有的 profile:

dsh plugin --profile <profile> add dsh-rea-mcp

添加后重启 DSH,以便启动时合并新的 patch 层。

本地开发验证(非 git clone 安装)

README 要求不要用指向外部 checkout 的 link 安装。验证本地树时,先打包再安装 tarball:

cd dsh-rea-mcp
npm pack                          # produces dsh-rea-mcp-<version>.tgz
# in the DSH plugin panel, Add plugin -> the local path of that tarball

首次启动较慢:prewarm

首次通过 npx 拉取 rea-agents@6.4.0 及依赖可能较慢,Harness 首次 MCP 连接超时往往早于下载完成。应在 Harness 外先缓存,无超时限制:

npm run prewarm

该脚本以与桥接相同的 argv 启动 npx -y rea-agents@6.4.0 mcp,完成 initialize 与 tools/list,打印服务身份、延迟与完整工具列表后退出。此处成功即表示 Harness 侧无需再等待下载或发现。

典型用法与验证

  1. 安装插件并重启 DSH 后,在对话中让智能体调用只读类工具,例如对你拥有的 Go 二进制调用 mcp__rea__inspect_go_binary,或做静态 .NET 检查(README 验证步骤)。
  2. 若看不到 mcp__rea__* 工具:在插件目录运行 npm run prewarm,失败原因通常与 Harness 内一致;常见情况是运行 DSH 的进程 PATH 上没有可用的 Node/npm(桌面快捷方式或编辑器环境与终端不同)。Harness 日志中会有 mcp-client(rea) 相关行。
  3. 原生分析报 “provider unavailable”:多为该二进制格式下未检测到 Hopper/Ghidra/IDA。

安全与权限

插件把读取与分析本机二进制的能力交给智能体;原生分析还可能驱动已安装的 Hopper/Ghidra/IDA。

  • 桥接使用 stdio 子进程管道,不监听端口。
  • 默认 failOnStartupError: false:REA 无法启动时记录原因,其余 Harness 功能仍可用。
  • Harness 文件沙箱不约束 MCP 子进程;工具调用仍受 Harness 审批策略约束,沙箱仅作用于 Harness 自带的文件与 shell 工具。
  • 上游版本固定在 rea-agents@6.4.0;若要升级需有意修改配置并重新 npm run prewarm。
  • 只分析你拥有或获授权的目标;REA 自带 responsible-use 声明。

安装前请阅读 cordis.patch.yml 与 MIT 许可证;插件以当前 DSH 进程及其 spawn 的子进程权限运行,与社区目录 SkillHub 一样,并非 DeepSeek 或幻方官方应用商店条目。

结尾

dsh-rea-mcp 适合已在 DSH 中使用智能体、并希望把 REA 的本地逆向与 inspection 能力以 MCP 工具形式接入工作流的开发者:改动面小、可审计、无自建插件代码。进一步说明与故障表见 GitHub README(含 README.zh.md)。

羽毛球分组比赛记分
小程序二维码

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

小夜