前言¶
在 DeepSeek Harness(DSH)裏直接掛載 rea 的 MCP 服務時,每一輪對話都要把兩百多個工具的完整定義發給模型。README 實測 rea 6.5.0 約 207 個工具的 name + description + inputSchema 合計約 780 KB,按常見分詞估算約 20 萬 token;6.8.0 已是 229 個工具。即便任務與逆向無關,也會承擔這份上下文成本。直接掛 MCP 還往往缺少方便的開關,卸載也不順手。
下面介紹社區插件 dsh-mcp-rea(維護者 kkk-yoyo,GitHub 倉庫 kkk-yoyo/dsh-mcp-rea,當前版本 1.2.0,MIT 許可證)。它把 rea 做成可開關的 Harness bundle:默認只向模型暴露 2 個網關工具,按需代理全部 REA 能力,並把工具定義壓到約 1.4 KB(README 標註約 400 token 量級)。
這是什麼¶
dsh-mcp-rea 是 DeepSeek Harness 的 bundle 插件(@local/dsh-mcp-rea),分類上屬於模型推理相關能力。一句話定位:讓 rea 逆向分析 MCP 在 Harness 裏可開關,並用 rea_list / rea_call 網關代替全量工具註冊。
插件不負責替代 Ghidra、IDA、JEB 等外部引擎;它解決的是 Harness 側的接入成本、路徑解析和缺失 rea 時的私有安裝。
核心功能¶
網關模式與 token 成本¶
| 狀態 | 工具數 | 每步請求的工具定義(README 表述) |
|---|---|---|
| 直接掛載 rea MCP | 200+(另加 Harness 自帶) | 約 780 KB / 20 萬 token |
| 本插件網關模式 | 2 | 約 1–2 KB / 幾百 token |
| 關掉本插件 | 0 | 0 |
默認註冊的兩個工具:
rea_list:按名字或描述搜索 REA 工具,或對單個工具取完整 input schema。rea_call:用原始工具名和參數調用對應 REA 工具。
全量能力仍在 rea 進程裏;token 主要花在真正調用時返回的結果上,而不是每一步攜帶兩百多份 schema。
零路徑與開箱安裝¶
入口由 lib/rea.js 按順序解析:環境變量 REA_ENTRY、Windows / POSIX 下常見全局 npm 安裝位置、最後兜底到 $DSH_HOME/cache/dsh-mcp-rea/rea 的私有安裝。全局已裝的 rea 優先於插件緩存。
本機沒有 rea 時,可在第一次調用時用 DSH 運行時自帶的 pnpm 裝到私有目錄(README 稱不需要 npm、也不依賴 PATH 裏的 node);首次安裝實測約 8–13 秒。默認安裝 spec 爲 rea-agents@latest(README 寫明當前 6.8.0);Node 要求與 rea-agents 一致:^22.19.0 || ^24.11.0 || >=26.0.0。
技能與開關¶
插件會向 $DSH_HOME/skills(默認 ~/.dsh/skills)安裝 reverse-engineer-anything(rea 自帶技能,鏈接或複製)和 rea-gateway(說明如何通過網關調用)。目標位置已有同名用戶技能時不會覆蓋,只報告 occupied。
側邊欄「插件」頁有 「rea MCP 服務器」 開關:關閉後工具歸零;打開後僅多上述 2 個網關工具。README 註明 Web 端「設置」裏的插件列表爲只讀,開關在側邊欄「插件」頁操作。
開箱邊界(README 表格摘要)¶
- 插件裝載、入口解析、技能安裝、網關列出 229/229 工具:支持。
- 依賴 Ghidra / IDA / JEB / apktool / frida / adb 的深層能力:需按 rea 文檔自備外部工具。
- 從 npm / 插件市場一鍵安裝:本包
private: true+@localscope,適合本地 link 安裝。 - README 標註 tested on Windows only。
安裝與啓用¶
先做安裝,再重啓 DSH,最後在側邊欄打開開關。
1. 安裝¶
在 Harness 側邊欄「插件」頁選擇本目錄的絕對路徑安裝,或執行(將 <profile> 與路徑換成你的實際值):
dsh plugin --profile <profile> add "link:<本目錄絕對路徑>"
dsh plugin add 會把聲明瞭 dsh.bundle 的包寫入 <profile>/package.json 的 dsh.profile.bundles。若曾用 pnpm add link: 手工安裝導致 bundle 未進列表,可重跑上述命令。
社區目錄頁:https://www.skillhub.cn/plugins/kkk-yoyo/dsh-mcp-rea(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。
2. 重啓 DSH¶
dsh.profile.bundles 在啓動時讀取,修改後需重啓 Harness。
3. 打開開關¶
側邊欄 「插件」 → 「rea MCP 服務器」 → 撥動開關。
典型用法¶
模型不必一次加載全部 schema。README 給出的典型流程如下:
1. rea_list({ query: "artifact" })
→ 返回名字/描述匹配的工具,例如 inspect_artifact、extract_artifact
2. rea_list({ tool: "inspect_artifact" })
→ 返回 inspect_artifact 的完整 input schema
3. rea_call({ tool: "inspect_artifact", arguments: { path: "C:\\target.exe" } })
→ 返回該工具的結果(Evidence 文本)
參數要點:
rea_list:query(搜索)、tool(精確名取 schema)、limit(默認 15,最大 50)。rea_call:tool(必填)、arguments(對象)、timeoutMs(可選,默認 120000,最大 600000)。- 單次返回超過
gatewayMaxOutputBytes(默認 200000)會截斷;可優先用工具自帶的detail: "summary"或分頁參數。
網關通過 stdio 啓動 rea mcp,每次調用爲短命子進程,不在 Harness 進程內保留分析狀態;跨調用狀態可用 REA 的 evidence_export / evidence_import。
配置(可選)¶
在 profile 的 cordis.patch.yml 中覆蓋 bundle 條目 rea-preflight,例如:
- id: rea-preflight
config:
installSkill: true
autoInstall: true
gateway: true
gatewayTimeoutMs: 120000
gatewayMaxOutputBytes: 200000
# installDir: 'D:\rea-cache'
# packageSpec: rea-agents@6.5.0
常用字段:gateway(是否註冊網關)、autoInstall(入口缺失時私有安裝)、entry(顯式路徑,嚴格使用不回退)、installSkill、verbose 等。若確需模型直接看到全部 mcp__rea__* 工具,可設 gateway: false 並手工插入 @deepseek-ai/dsh-mcp-client;README 明確這會恢復每步約 20 萬 token 的成本。
適用場景與注意¶
適合誰:在 DSH 裏偶爾或經常做二進制 / 移動應用逆向,希望用 rea 能力,又不想每輪對話揹負全量 MCP 工具定義的團隊或個人。
運行與安全:插件以當前 DSH 進程權限運行;網關會啓動子進程並可能自動下載安裝 rea-agents。安裝前應閱讀倉庫源碼與 MIT 許可證,確認網絡與磁盤路徑可接受。
故障提示(README 摘要):若能看到開關但沒有 rea_list / rea_call,檢查 dsh.profile.bundles 並重啓後撥開關;若 REA entry not found,可開啓 autoInstall、運行 node scripts/install-rea.mjs,或設置 REA_ENTRY。
結尾¶
dsh-mcp-rea 把 rea 從「常駐兩百多工具、每步約 20 萬 token」收成「可開關的 2 個網關工具 + 按需調用」,並處理入口解析與缺失時的私有安裝。需要細節、自檢命令與全量 MCP 切換方式時,以倉庫 README 爲準。