dsh-purge 深度指南:DeepSeek Harness 提示词注入与红队演练一次讲透
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
dsh-purge 是装在本机 DeepSeek Harness 上的开源红队评测插件。它用提示词注入把模型行为与宿主策略拆开评测,再用补丁清洗与本地靶场闸门守住安全边界。
先看清:这个项目适合谁
结论先行:它服务本机受控评测,不做公网攻击。
| 维度 | 说明 |
|---|---|
| 适合谁 | 做提示词注入鲁棒性评测、在本机或内网靶场跑受控红队演练 |
| 不适合谁 | 公网攻击场景、0.1.x 旧宿主、只想改前端界面的人 |
| 适用版本与环境 | 适配 DSH 0.2.1-rc.2,0.2.0 仍可用;要求 Node ≥ 18 |
| 与同类差异 | 改宿主文件但全量可还原;注入走加密槽不落盘;开源版攻击任务只放行私网 |
它只动使用者本机的官方@deepseek-ai包和本机$DSH_HOME配置,不碰任何外网目标。
原理总览:四步看懂数据流
先给全景,再进细节。整个流程是「登记 → 清洗 → 注入 → 闸门」:
- 安装落库:
dsh plugin add把插件写进 profile,此时只登记,不生效。 - 补丁清洗:点「应用」后备份原文件、原子写入替换项,宿主重启加载新包。
- 每轮注入:系统提示词组装时,把注入段挂到最前,四路来源按优先级取文案。
- 闸门判定:每步执行前分析本轮输入,命中攻击词就查目标是否私网。
输入是你的评测问题与补丁清单,处理是备份、原子写与提示词改写,输出是拆开宿主层后的模型真实行为。
机制拆解
🧩 注入四路优先级
一句话原理:注入文案有四个来源,按固定优先级取第一份非空值。
实际怎么运作:提示词框内的实时提交、磁盘上的$DSH_HOME/prompt-inject.md、插件内置的加密默认稿、工作区勾选的AGENTS.md/CLAUDE.md兜底。工作区策略strict/fallback/always决定宿主自带的 baseline 段保留还是丢弃。默认稿在发版时加密进代码槽,运行时只读加密槽,不读宿主磁盘上的提示词文件。你改过的稿永不被「应用」覆盖回去。改宿主磁盘也动不了注入源。
入口文件:lib/rules.js 的resolveInjectText负责按优先级取文案;lib/index.js 的rewriteLiveAssembly在组装钩子里把注入段挂回最前。
🧹 补丁清洗与幂等底线
一句话原理:每个补丁带标记注释,重复应用不叠加,随时可还原。
实际怎么运作:写前把原文件备份为<文件>.dshpurge.bak,写入走「临时文件 + 原子重命名」,断电或盘满不留半截文件。每条补丁带[dsh-purge]标记;替换产物若仍含旧文本前缀且未设skipIfMarked,就给它加上该标志,防止重复应用每次叠加字符、永不收敛。备份用独占模式占位,已存在就跳过,并发不会重建。宿主升级后原文锚点对不上时,该行显示「跳过」但不算失败,这次应用仍算完成。「还原」用备份覆盖回去并删备份;没有备份时只删插件写入的行,绝不删除目标文件。
入口文件:lib/core.js 集中补丁清单、备份与原子写逻辑。
🚪 本地靶场闸门
一句话原理:默认全拦,只放行本机回环与 RFC1918 私网目标。
实际怎么运作:闸门挂在agent/pre-step钩子,只分析本轮新用户输入,不把历史消息和工具回包叠进来误判。识别分两步。先按ATTACK正则抓攻击词,零宽断言刻意排除「渗透测试」「攻击面」这类词,超过上限的粘贴内容直接截断,防止正则回溯卡死事件循环。命中后再判目标区域:域名按后缀表初判,通用后缀先解析,解析出的每个地址都必须落在私网或回环,出现一个公网 IP 就拦,解析失败同样拦。口头说「这是我的服务器」不产生任何放行效力。
入口文件:lib/net-scope.js 含ATTACK正则与私网放行判定。
上手路径:三步装好并验证
安装:按宿主二选一,只装你正在用的那个。
dsh plugin --profile web add https://gitcode.com/GitHub_Trending/ds/dsh-purge桌面端把
web换成desktop。重启生效:完全退出宿主再重新打开。只装进 profile 还不会改官方包,旧进程读不到新补丁。
应用:会话标题旁点dsh-purge,在清洗页点「应用」。补丁全部打完才自动重启一次,没打完不重启。
验证信号看三处:聊天发/purge status,输出的DSH_HOME与插件根应是你正在用的那份;补丁清单行显示 ✓ 且 applied 计数合理;新开对话发一条评测问题,模型行为应符合注入提示词。可选插件缺失显示「跳过」是正常现象,不挡应用完成。
回滚分两档。「还原」(或/purge revert)只恢复宿主文件,prompt-inject.md作为用户文件保留。「卸载」(或/purge uninstall)先还原已应用补丁,再删除注入文件、规则库与插件本身,最后重启当前宿主。日常试错用还原即可,彻底退出用卸载。
红线声明
安全边界一句话:评测与演练只发生在你的机器上,开源版攻击任务只放行本机与私网目标。
⚠️ 本项目是 Apache-2.0 的非营利开源评测工具,严禁用于任何未授权目标或生产系统,违规使用由使用者独立承担全部法律责任;二开必须署名并注明来源仓库。
问题速查
- 现象:升级宿主后补丁行大量显示「跳过」。原因:原文锚点对不上当前版本,属设计行为,不会乱改文件。处理:确认 applied 比例后,重装宿主再应用,或更新插件版本。
- 现象:应用后新对话仍被宿主策略拦截。原因:只点了应用没重启,或宿主没完全退出就重开。处理:完全退出宿主 → 应用 → 等自动重启 → 新开对话再测。
- 现象:还原后提示词还在。原因:
prompt-inject.md是用户文件,还原刻意保留。处理:想清就手动删$DSH_HOME/prompt-inject.md。 - 现象:桌面端点「应用」报 ENOENT,或补丁写了读不到。原因:
app.asar仍密封,进程读到的是归档而非磁盘目录。处理:完全退出客户端再应用,插件会先解开归档到旁边目录再换包。 - 现象:多轮回退后退到第一条消息,重发仍带旧内容。原因:回退切点没定位到当前轮。处理:用「回退一次」或
/rewind按当前轮定位,已撤内容会同时从对话与模型请求中拿掉。
收束:三句话读完 dsh-purge
- 提示词注入把模型行为与宿主策略拆开评测,四路来源按优先级取文案。
- 补丁清洗用备份 + 原子写 + 幂等标记,保证改动随时可还原。
- 本地靶场闸门用默认全拦锁死安全边界,解析后地址必须私网或回环才放行。
想深入,从三个入口读起:
- lib/core.js:补丁清单、备份与原子写的核心实现。
- lib/net-scope.js:攻击词识别与私网放行判定。
- lib/redteam/score-rules.js:演练台唯一的计分口径。
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考