前言¶
在 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 stars、9 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.skills → tool-skill 自动调用;用户也可按技能名手动调用,是否对用户开放由各 SKILL.md 的 user-invocable 控制。
数据驱动扫描,零手写清单¶
src/index.ts 不维护硬编码列表,而是:
- 递归遍历
skills/与CTF-Sandbox-Orchestrator/,定位每个SKILL.md - 解析前导 matter(将
metadata.user-invocable提升为顶层user-invocable;CRLF / BOM 在运行时归一化) - 构造
SkillCandidate(含resourceBase: {kind:'directory', path}与结果缓存) - 注册
SkillProvider,get()时返回完整正文
新增或删除技能只需改目录结构,插件自动同步。仓库提供 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 声明 main 为 lib/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 → 项目 .agents → customSkillDirs → 用户 .dsh → 用户 .agents。
典型用法¶
插件加载后,技能进入 dsh 可用技能库,无需额外维护清单。常见工作流:
- 执行
dsh plugin add github:dhicoc/dsh-reverse-skill完成安装 - 启动 dsh,确认 profile 已包含该插件
- 在对话中让模型通过
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