dsh-purge完全指南:如何给模型换破甲提示词
【免费下载链接】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 的本机评测插件。它不是公网扫描器。它也不是针对第三方系统的攻击工具。所有补丁与提示词注入只发生在你本机的文件里。
为什么需要它:模型拒绝时,这句话是谁说的
同一个问题,换个模型,开场白、人设、拒绝话术全变。因为 Harness 不只转发问题,它在运行时改提示词、加审批门、固定会话格式。只看「模型答不答」,很容易把宿主拦截误判成模型拒绝。核心矛盾就在这:壳和模型不分家,任何评测都不可信。
核心机制拆解:破甲是怎么做到的
加密槽:默认提示词锁在表里,运行时才还原
为什么提示词要绕一圈?像把一份文件装进保险箱运输:发版时内容变成密文存进表,包里不裸奔。lib/default-prompt-inject.md被明确排除在 npm 包之外,构建脚本 scripts/embed-default-prompt.mjs 把它 AES-256-GCM 加密、按 96 字符切块灌进lib/asset-table.js;运行时由 lib/table-read.js 解密还原:
const decipher = createDecipheriv("aes-256-gcm", mixKey(MASK), Buffer.from(IV, "base64")); // 表里全是密文,解密 + 解压后才是可读提示词你没自定义过,应用时写入的就是这份内置默认;改过之后,你的文件不会被覆盖。
身份清洗:宿主身份句被逐句摘除,新人设只挂一次
「破甲后不再自称 DeepSeek 的 AI 助手」,这个行为从哪来?像翻修二手房:不砸墙,只把上一任的铭牌一块块摘掉,水电(工作目录)照留。动手的是 lib/identity.js 里的stripHarnessPersona,它握着一份宿主默认身份句清单,逐条删除或降级,工作目录信息保留。
壳剥掉后要补新人设,默认值写在 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.三句话讲完:默认人设是「小码酱」(LCS),你在prompt-inject.md里另起名它就换名;被问「你是谁」只答这个名字。
还有个老坑:提示词若不去重,每轮组装都会再叠一份副本。所以装配是幂等的——leadWithInject先用去重匹配器把旧文里的既有副本抠干净,再把提示词挂到最前,多轮对话后身份句始终恰好出现一次,长度不漂移。
规则集:换模型就换一套,启用写入 rules/ 互不干扰
一套话术为什么通吃不了?国模和海外模型对人设、语气、拒绝边界的敏感度不同。插件把提示词做成可切换的多套规则集:国模默认套就是小码酱,别的模型再建一套。启用哪套写进$DSH_HOME/rules/,由 lib/rules.js 管理,聊天里三条命令就够:
/rules list # 列清单 /rules use <id> # 切换 /rules create <id> # 新建从安装到生效:一条 clone,一次应用
- 找到真正在用的
$DSH_HOME:按DSH_HOME环境变量 → 启动器旁的.dsh→~/.dsh的顺序确认。 git clone https://gitcode.com/GitHub_Trending/ds/dsh-purge "$DSH_HOME/plugins/dsh-purge",目录名必须是dsh-purge。- 给正在用的 profile 的
package.json追加两处(先备份):dependencies加"dsh-purge": "file:../../plugins/dsh-purge",dsh.profile.bundles末尾追加"dsh-purge"。 cd "$DSH_HOME/profiles/web" && pnpm install,只装依赖,别动别的文件。- 「装好」节点:完全退出宿主(托盘也要退),重开后会话标题旁出现
dsh-purge按钮。 - 点按钮 → 清洗 → 应用,成功后官方桌面端会自动重启一次。
- 「真正生效」节点:新开一轮对话,发
/purge status,能打出你的DSH_HOME和补丁列表才算注入进了会话。
多入口各一行:Web 走上面步骤,桌面把web换成desktop再走一遍,CLI 用dsh-purge --apply。完整手动步骤见 README.zh-CN.md。
三个最容易踩的坑:应用、分端、版本档
- 应用不等于生效。点应用只把补丁写进磁盘,当前进程还是旧的;重启宿主、新开一轮对话,注入才进会话。
- Web 和桌面是两份。两个 profile 分开装、分开应用,在 Web 里点应用不会动桌面,点错端只会发现按钮不出现。
- 版本要对档。1.1.78 只适配 DSH 0.2.x,宿主还是 0.1.x 就得回 Releases 找 1.1.39 及更早的版本;补丁对不上只会显示跳过,不会乱改文件。
安全边界与合规:哪些目标能碰,哪些不能
破甲的对象只限你有权管理的本机官方 Harness,演练台只用于本机、离线靶标或已书面授权的演练环境。网络侧的硬门在 lib/net-scope.js:开源版攻击任务默认全拦,只放行本机回环与 RFC1918 私网,域名先解析再判,hosts 指到公网也会拦。项目按 Apache-2.0 现状提供,全部输入输出后果由使用者独立承担。
下次模型再拒绝,别急着猜:先跑/purge status核对补丁状态,再看这轮的身份句来自壳还是模型——这是可以核对的事实。
【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考