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
羽毛球分组比赛记分
小程序二维码

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

小夜