前言¶
在 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)。