ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

dsh-purge 深度指南:DeepSeek Harness 提示词注入与红队演练一次讲透

dsh-purge 深度指南:DeepSeek Harness 提示词注入与红队演练一次讲透

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配置,不碰任何外网目标。

原理总览:四步看懂数据流

先给全景,再进细节。整个流程是「登记 → 清洗 → 注入 → 闸门」:

  1. 安装落库:dsh plugin add把插件写进 profile,此时只登记,不生效。
  2. 补丁清洗:点「应用」后备份原文件、原子写入替换项,宿主重启加载新包。
  3. 每轮注入:系统提示词组装时,把注入段挂到最前,四路来源按优先级取文案。
  4. 闸门判定:每步执行前分析本轮输入,命中攻击词就查目标是否私网。

输入是你的评测问题与补丁清单,处理是备份、原子写与提示词改写,输出是拆开宿主层后的模型真实行为。

机制拆解

🧩 注入四路优先级

一句话原理:注入文案有四个来源,按固定优先级取第一份非空值。

实际怎么运作:提示词框内的实时提交、磁盘上的$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正则与私网放行判定。

上手路径:三步装好并验证

  1. 安装:按宿主二选一,只装你正在用的那个。

    dsh plugin --profile web add https://gitcode.com/GitHub_Trending/ds/dsh-purge

    桌面端把web换成desktop。

  2. 重启生效:完全退出宿主再重新打开。只装进 profile 还不会改官方包,旧进程读不到新补丁。

  3. 应用:会话标题旁点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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进