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 上的破甲插件:把宿主默认身份与模型真实能力拆开,注入一套干净提示词,还能按模型切换规则集。本文拆开加密槽、身份清洗、幂等注入三个机制,并给出安装、应用与还原的完整步骤,新手可直接照着上手。
模型拒绝,不一定是模型的错
同一个问题,换一下模型,开场白、人设、拒绝话术全跟着变。模型能力明明在那儿,外面却多包了一层壳,答出来的东西就变味了。
Harness 不是把问题原样递给模型的简单中继。它在运行时还会改提示词、加审批门、调沙箱和会话格式。只看模型回答,很容易把「宿主拦截」误判成「模型拒绝」。
dsh-purge 干的事,就是把这两层分开。宿主层带来官方默认身份、统一开场白和固定的限制话术,叫它「壳」;模型层才是模型本身能做什么。所谓破甲,不是让模型失控,而是把宿主默认策略里多余的身份包装洗掉,换一套自己能控制的干净提示词。这样评测才可信,你才有依据判断默认策略该不该收紧。
边界先说清:它只动你自己机器上已安装的官方 Harness,不是公网扫描器,也不是针对第三方系统的攻击工具。
默认提示词为什么被加密塞进一张表
小码酱的默认提示词到底存在哪?
源码在lib/default-prompt-inject.md,但 npm 发布包里没有这个文件。发版前,构建脚本 scripts/embed-default-prompt.mjs 把它 AES-256-GCM 加密、按 96 字符切块,灌进 lib/asset-table.js;运行时再解密还原成 Markdown:
const decipher = createDecipheriv("aes-256-gcm", mixKey(MASK), iv); // 表里全是密文,解密后才还原成可读提示词解表逻辑在 lib/table-read.js。为什么要绕这一圈?让默认提示词不在包里明文裸奔,避免被人随手改坏。你没自定义过,应用时写入的就是这份内置默认;自己改过的话,你的文件不会被覆盖。
生效有讲究:先应用,再重启。应用只是把提示词和补丁写进文件,当前进程还是旧的;重启后新开一轮对话,注入才真正进当前会话。
宿主身份被逐句洗掉,新人设只出现一次
破甲之后,模型不再自称「DeepSeek 的 AI 助手」。这个改变从哪来?
源头是 lib/identity.js 里的stripHarnessPersona函数。它握着一份宿主默认身份句清单,逐条从系统提示词里洗掉或降级:
- "You are a coding agent ... running on the DeepSeek Harness" → 删除
- 「我是 DeepSeek 的 AI 助手」→ 删除
- 工作目录信息 → 保留
不是整体重写,而是逐句外科手术。官方功能保留,身份包装拿掉,这套做法可以叫「身份清洗」。
壳剥掉了,新人设得补上。默认值写在 lib/core.js 的身份锁里:
You are the operator persona in prompt-inject (Little Code Sauce / LCS unless that file names someone else). When asked 你是谁 / who are you, answer with that name only.三句话把规则讲完:默认人设是「小码酱」(Little Code Sauce,简称 LCS),你在prompt-inject.md里另起名它就换名;被问「你是谁」只答这个名字,绝不报「我是 DeepSeek 的 AI 助手」——那是宿主环境的标签,不是「它」。
这段注入还有个老坑:早期版本每次 apply 都会把提示词补丁往前缀里再叠一层,约 +841 字符,像滚「雪球」一样越叠越大、永不收敛。项目为此把装配逻辑改成幂等:多轮对话后身份句始终恰好出现 1 次,长度不漂移,回归测试盯着这一条。默认提示词才敢写得这么「霸道」——最高优先级、排在最前、并要求模型别改写这段。
换模型就换提示词:规则集怎么生效
默认话术是照着国模调校的,跑海外模型,一套提示词通吃不了。
国模和海外模型对人设、语气、拒绝边界的敏感度不一样。于是插件把提示词做成可切换的多套规则集:面向国模的默认套就是「小码酱」,给别的模型再建一套,换语气、换边界。启用哪套就写进$DSH_HOME/rules/,几套之间互不干扰。
操作分两处:清洗页顶部列表负责启用或删除,下方编辑正文;聊天里/rules list列清单、/rules use <id>切换、/rules create <id>新建。逻辑在 lib/rules.js。
这就是「破甲面向国模」的落地含义:国模有一套调校好的默认话术,跑别的模型直接换一套,不用从零写。
从安装到应用,别被这三件事骗了
安装命令就一行,官方 Web 和桌面端都支持,两边分开装、分开应用:
dsh plugin --profile web add dsh-purge # 官方 dsh web dsh plugin --profile desktop add dsh-purge # 官方桌面 EXE命令行走不通时,把仓库 clone 进插件目录,再按 README 的手动步骤改 profile:
git clone https://gitcode.com/GitHub_Trending/ds/dsh-purge "$DSH_HOME/plugins/dsh-purge"装完有三件事最容易骗人:
- 应用不等于生效。应用只是文件操作,当前进程还是旧的;重启宿主、新开一轮对话,注入才进会话。
- 还原不伤你的文件。每个目标文件应用前都有
.dshpurge.bak备份,「还原」用备份覆盖回去;prompt-inject.md是用户文件,还原时保留。 - 版本要对档。最新版只适配 dsh 0.2;宿主还是 0.1.x 就回 Releases 找对应老版本,补丁对不上只会显示跳过,不会乱改文件。
破甲之后,模型交给「演练台」:授权后可查看资产、技能和本机环境,在本机、离线靶标或书面授权的环境里做受控评测。网络侧还有一道硬门:大陆、港澳地址默认禁止,只有事先登记的那一台服务器例外,这道门的代码在 lib/net-scope.js。
下次模型再拒绝,先问一句:这话是宿主说的,还是模型说的?dsh-purge 把这个问题从猜,变成了可以核对的事实。
合规提醒:dsh-purge 为非盈利开源项目,只用于你有权管理的本机官方 Harness、离线靶标或已书面授权的演练,严禁未授权攻击与违法内容生成,后果由使用者独立承担。
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考