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)。

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

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

小夜