前言¶
在 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,该文件即插件本体。
前置条件¶
- DSH 版本:
engines.dsh声明为>=0.2.0-rc.1 <0.3.0-0;作者在 0.2.0-rc.2(desktop)上验证过。声明范围与作者实测版本不是同一回事,部署时需自行对照。 - Node.js:运行 DSH 的进程 PATH 上需有 Node 与 npm;
npx会拉起rea-agents,要求 Node 22.x(>=22.19)、24.x(>=24.11)或 26+;作者曾在 Node 24 上测试。 - 可选:深度原生二进制分析需本机已安装 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 侧无需再等待下载或发现。
典型用法与验证¶
- 安装插件并重启 DSH 后,在对话中让智能体调用只读类工具,例如对你拥有的 Go 二进制调用
mcp__rea__inspect_go_binary,或做静态.NET检查(README 验证步骤)。 - 若看不到
mcp__rea__*工具:在插件目录运行npm run prewarm,失败原因通常与 Harness 内一致;常见情况是运行 DSH 的进程 PATH 上没有可用的 Node/npm(桌面快捷方式或编辑器环境与终端不同)。Harness 日志中会有mcp-client(rea)相关行。 - 原生分析报 “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)。