☰
dsh-purge 提示词注入原理揭秘:如何让任意大模型“破甲“
2026/10/21 10:46:57 网站建设 项目流程

dsh-purge 提示词注入原理揭秘:如何让任意大模型"破甲"

【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge

你问模型一个它明明会答的问题,它就是不答。问题可能不在模型,而在宿主 Harness 运行时悄悄改了提示词、加了审批门。dsh-purge 就是用来在本地官方 DeepSeek Harness 上做提示词注入、把「宿主策略」和「模型本身」分开的插件,让大模型安全测试变得可控。

"拒绝"到底发生在哪一层

几个典型场景,看你对得上哪个:

  • 同一个问题,一个客户端能答,另一个"拒绝"——模型没变,变的是宿主包装的提示词;
  • 拒绝口吻每轮都不同,任务做到一半还会"苏醒"——宿主每轮组装的 system prompt 是身份、记忆、审批门等多段 section 的混合体;
  • 宿主一升级,行为就"复原"——npm 升级覆盖了node_modules,之前的补丁静默消失。

一句话定位:dsh-purge 只管「本机已安装的官方 Harness」这一层——不碰模型本身、不针对第三方系统、也不扫公网,是受控评测工具。

机制拆解:三层"破甲"是怎么配合的 🔍

第 1 层到底改了什么文件?

大白话:先拍快照,再照清单改。

点「应用」时,插件把补丁写进本机@deepseek-ai包里的渲染文案与执行逻辑,每个目标文件动手前先备份为<文件>.dshpurge.bak(备份逻辑见 lib/core.js);重复应用是幂等的,原文对不上(比如宿主升级过)只标记跳过,不乱改。

补丁清单和运行参数都在 cordis.patch.yml 里声明:includeHarnessIdentity: false关掉官方身份段,postPromptOrder: 5100决定注入段在最终提示词里的排序,autoApplyOnStart控制每次启动是否自动复检应用。

为什么必须重启才生效?

大白话:补丁要先进进程,真正的改写挂在「组装」这个动作上。

宿主每轮都把多段 section 组装成最终 system prompt,lib/identity.js 的installAssembleGuard(L593-L704)用Object.defineProperty包住宿主的assemble方法——相当于排版完稿后的"校对"环节。改写函数rewritePromptAssembly(L706-L771)干三件事:

  1. 丢弃harness:identity段,再用stripHarnessPersona(L41-L102)正则抹掉「You are a coding agent powered by…」「我是 DeepSeek 的 AI 助手」等人设文案;
  2. ensureFullInject(L117-L128)保证 dsh-purge 段整份存在,并以order: -100000排到最前;
  3. 按stripMnemon: true配置移除 mnemon 记忆类插件的 section,防止别的插件把默认人设塞回来。

所以只点「应用」不重启宿主,补丁只落在磁盘、没进进程,注入自然不生效 🔁

模型"是谁"由谁定义?

大白话:最终身份由你的提示词文件说了算。

每轮新会话启动时,resolveInjectText(lib/rules.js)按三级优先级取值:$DSH_HOME/prompt-inject.md→ 进程内未保存的提示词框 → 加密槽默认值。文件非空就原样写进注入段,空则用默认人格。换句话说,换一份文件,就是换一次模型的"工牌"。

进阶玩法:多模型提示词换装 🎭

同一宿主、不同模型穿不同提示词,靠两样东西:

  • 提示词本体:prompt-inject.md(清洗页编辑或聊天/purge edit)是全局覆盖段,决定模型"是谁";
  • 规则集:lib/rules.js 的规则模块在$DSH_HOME/rules/维护多套AGENTS.md/CLAUDE.md(L20RULE_TARGETS),每套带独立 id、名称与目标文件,启用哪套就写入$DSH_HOME对应目标,原件备份为.dsh-purge-rule.bak。

两者分工很清楚:prompt-inject.md改"身份",全局生效;规则集改项目文件里的"工作手册",可按模型、按任务切换。另有工作区策略strict/fallback/always三种开关,控制是否移除 DSH workspace baseline 段。

配合授权后开放的演练台,可以在离线受控靶标上观察换装后的模型行为差异,多模型提示词配置的效果对比更直观。

最短上手路径 ⚡

  1. 安装:dsh plugin --profile web add dsh-purge(桌面端用--profile desktop;npm 上不去就git clone https://gitcode.com/GitHub_Trending/ds/dsh-purge后放入$DSH_HOME/plugins/dsh-purge);
  2. 重启:完全退出并重新打开宿主,让插件进入进程;
  3. 应用:点会话标题旁的dsh-purge→清洗→应用(或聊天/purge apply);
  4. 自动重启:应用成功后会自动重启一次,补丁才进当前进程;
  5. 验证:聊天输入/purge status,能打出DSH_HOME和补丁列表即成功。

黄金法则:只点「应用」不重启 = 没注入;只换预设不重新应用,旧进程里的补丁也不会更新。

不想用了?**「还原」或/purge revert会用.dshpurge.bak备份覆盖回去并删除备份,prompt-inject.md作为用户文件被保留;「卸载」**则先还原再彻底移除插件。

dsh-purge 是 MIT 协议的非盈利开源工具,所有注入与补丁都发生在你自己本机的官方 Harness 上,仓库内不含任何对外攻击载荷。请仅在本机、离线靶标或已书面授权的环境中使用,严禁用于未授权攻击与黑灰产场景。

一句话总结:dsh-purge 用「文件补丁 + 组装期改写 + 会话级覆盖」三层提示词注入完成破甲,再靠prompt-inject.md与多套规则集实现多模型提示词换装——把"宿主拦截"和"模型拒绝"分开看清,才是大模型安全测试的正确姿势 🛡️

【免费下载链接】dsh-purgeDeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — swap prompts per model. 求 Star 收藏 ⭐ 如要二开,请查看署名要求部分项目地址: https://gitcode.com/GitHub_Trending/ds/dsh-purge

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询