dsh-reverse-skill:把 reverse-skill 完整封裝爲 DSH Cordis 插件

前言

在 DeepSeek Harness(dsh)裏做授權滲透測試或逆向分析時,常見做法是把上游技能倉庫裏的 SKILL.md 手工拷到項目目錄,或在配置裏維護 customSkillDirs 列表。reverse-skill 上游倉庫(zhaoxuya520/reverse-skill,MIT)體量不小,領域技能與 CTF 賽道技能分散在不同目錄;社區裏也有 dsh-reverse-security 這類不完全移植,只覆蓋 45 個技能且以 preset 形態存在,沒有正式 Cordis 插件入口。

dhicoc/dsh-reverse-skill 把上游 87 個 SKILL.md 原樣打包,通過 dsh 的 skill seam(ctx.skills)註冊爲 Cordis 插件。安裝後 harness 啓動時自動注入全部技能,無需手寫候選清單。下面介紹它的定位、能力與啓用方式。

這是什麼

dsh-reverse-skill 由維護者 dhicoc 發佈,在 SkillHub 分類爲 admin-security,GitHub 倉庫約 66 stars9 forks。包名 @dhicoc/dsh-reverse-skill,當前版本 1.0.5,許可證 MIT(與上游一致)。

一句話定位:把上游 reverse-skill 的全部技能以 dsh 一等公民插件形態分發,覆蓋逆向工程、授權滲透測試與安全研究場景。倉庫內容僅用於已獲授權的目標;使用者須自行確保合法授權。

技能數量與上游一一對應,不裁剪:

  • skills/:45 個領域技能(含 reverse-skill-router 路由技能,以及 pentest-tools/reverse-engineering/ 等嵌套子技能)
  • CTF-Sandbox-Orchestrator/:42 個 CTF 賽道技能

相對社區裏只移植 45 個、且爲 preset-only 的 dsh-reverse-security,本插件補齊到 87 個並提供正式插件加載路徑。

核心功能

插件形態:自動註冊全部技能

插件在 apply(ctx) 中調用 ctx.skills.registerProvider(...),把 87 個技能註冊進 ctx.skills。模型可通過 ctx.skillstool-skill 自動調用;用戶也可按技能名手動調用,是否對用戶開放由各 SKILL.mduser-invocable 控制。

數據驅動掃描,零手寫清單

src/index.ts 不維護硬編碼列表,而是:

  1. 遞歸遍歷 skills/CTF-Sandbox-Orchestrator/,定位每個 SKILL.md
  2. 解析前導 matter(將 metadata.user-invocable 提升爲頂層 user-invocable;CRLF / BOM 在運行時歸一化)
  3. 構造 SkillCandidate(含 resourceBase: {kind:'directory', path} 與結果緩存)
  4. 註冊 SkillProviderget() 時返回完整正文

新增或刪除技能只需改目錄結構,插件自動同步。倉庫提供 npm test,會斷言 87 個技能均可被 list() 發現、名稱無重複且 get() 返回非空正文。

可選 preset 回退

除插件路徑外,倉庫同時攜帶完整 skills/CTF-Sandbox-Orchestrator/,可不構建直接當 preset 掛載。但 dsh 扁平發現只掃直接子目錄,根目錄的 SKILL.md 路由器不會被命中,因此推薦走插件路徑

安裝與啓用

1. 安裝依賴與構建(開發或本地調試)

若從源碼構建,先安裝依賴並編譯:

npm install
npm run build        # tsc → 生成 lib/ 與 lib/types/

package.json 聲明 mainlib/index.js,peer 依賴爲 @deepseek-ai/cordis(^4.0.1)與 @deepseek-ai/dsh-skill(^0.0.1-rc.1),由 dsh 運行時提供。

2. 在 dsh 中啓用插件(推薦)

倉庫已聲明 dsh.bundle manifest(cordis.patch.yml),可用一行命令安裝並激活:

dsh plugin add github:dhicoc/dsh-reverse-skill

安裝後 dsh 讀取 cordis.patch.yml,把 reverse-skill Cordis 插件插入當前 profile,啓動時自動註冊 87 個技能。

也可在 profile / package 配置裏手動引用包名:

plugins:
  - "@dhicoc/dsh-reverse-skill"

3. (可選)preset 方式掛載

skills:
  local:
    customSkillDirs:
      - "./dsh-reverse-skill/skills"
      - "./dsh-reverse-skill/CTF-Sandbox-Orchestrator"

dsh 技能發現優先級(先命中先生效):項目 .dsh → 項目 .agentscustomSkillDirs → 用戶 .dsh → 用戶 .agents

典型用法

插件加載後,技能進入 dsh 可用技能庫,無需額外維護清單。常見工作流:

  1. 執行 dsh plugin add github:dhicoc/dsh-reverse-skill 完成安裝
  2. 啓動 dsh,確認 profile 已包含該插件
  3. 在對話中讓模型通過 tool-skill 選用合適技能,或直接調用 reverse-skill-router 等具名技能做任務路由

若技能正文引用了外部 MCP server(例如 burp-mcp),需在 dsh 的 mcp.servers 中自行配置,不在本插件範圍內。

適用場景與注意

適合誰: 需要在 dsh 裏做授權逆向、滲透測試、CTF 練習或安全研究的開發者;希望一次性獲得 reverse-skill 全量技能、避免手工同步上游目錄的用戶。

已知限制(來自倉庫 README):

  • 上游 43 個 agents/*.yaml(OpenAI Agents SDK 定義)無法映射到 dsh 的 ctx.subagent,未納入插件
  • allowed-tools / disallowed-tools 當前不被 dsh 強制,工具約束需在 harness 層自行保證
  • scanner 僅讀取前導 matter 的 name / description / user-invocable 三個字段
  • 正文內相對鏈接已改寫爲 ../ 等路徑,以適配 dsh 扁平掛載

安全提示: 本插件以當前 dsh 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認技能內容與自身合規要求一致。一切未授權行爲與倉庫無關。

鏈接

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/dhicoc/dsh-reverse-skill
  • GitHub 倉庫:https://github.com/dhicoc/dsh-reverse-skill
  • 上游 reverse-skill:https://github.com/zhaoxuya520/reverse-skill
羽毛球分组比赛记分
小程序二维码

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

小夜