🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

提示词注入与宿主补丁 P4rfa1t/dsh-purge-fork

DeepSeek Harness
P4rfa1t7 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 提示词注入与清洗fork of…

40.7/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add P4rfa1t/dsh-purge-fork
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-purge-fork(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 09:41:31

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令发起外部网络请求
查看扫描证据(共 44 处,展示前 38 条)
  • 发起网络请求
    client.js:66
    const r = await fetch(apiUrl(p), Object.assign({ cache: "no-store", credentials: "same-origin", signal: ctrl.signal }, init || {}));
  • 发起网络请求
    client.js:1491
    fetch("/dsh-purge-fork/" + action, {
  • 发起网络请求
    client.js:1576
    fetch("/dsh-purge-fork/override", {
  • 发起网络请求
    client.js:1651
    fetch("/", { cache: "no-store", credentials: "same-origin" })
  • 发起网络请求
    client.js:2537
    fetch("/dsh-purge-fork/status", { cache: "no-store", credentials: "same-origin" })
  • 发起网络请求
    client.js:2582
    fetch("/dsh-purge-fork/restart", { method: "POST", headers: { "content-type": "application/json" }, body: "{}" })
  • 执行外部命令来自配置/变量
    lib/core.js:146
    return execFileSync(bin, args, HIDDEN_EXEC).trim();
  • 执行外部命令固定命令
    lib/core.js:1241
    execFileSync("schtasks", ["/Query", "/TN", "DSH Doctor Supervisor"], {
  • 执行外部命令固定命令
    lib/core.js:1251
    execFileSync("schtasks", ["/Delete", "/F", "/TN", "DSH Doctor Supervisor"], {
  • 执行外部命令来自配置/变量
    lib/core.js:8527
    const child = spawn(cmd, args, {
  • 执行外部命令固定命令
    lib/skills.js:478
    const result = spawnSync("tar", ["-tf", archivePath], {
  • 执行外部命令固定命令
    lib/skills.js:485
    const unzip = spawnSync("unzip", ["-Z1", archivePath], {
  • 执行外部命令固定命令
    lib/skills.js:516
    const result = spawnSync("tar", ["-xf", archivePath, "-C", dest], {
  • 执行外部命令固定命令
    lib/update.js:245
    execFileSync("git", ["-C", dir, "rev-parse", "--is-inside-work-tree"], HIDDEN);
  • 执行外部命令固定命令
    lib/update.js:258
    return execFileSync("git", ["-C", dir, "rev-parse", "HEAD"], HIDDEN).trim();
  • 发起网络请求
    lib/update.js:403
    const req = lib.request(parsed, {
  • 执行外部命令固定命令
    lib/update.js:810
    const out = execFileSync(
  • 执行外部命令固定命令
    lib/update.js:834
    return execFileSync("git", ["-C", dir, ...args], {
  • 执行外部命令来自配置/变量
    lib/update.js:940
    run = spawnSync(process.execPath, ["--expose-internals", cli], {
  • 执行外部命令固定命令
    lib/desktop.js:353
    text = execFileSync("powershell.exe", ["-NoProfile", "-Command", REGISTRY_INSTALL_SCRIPT], {
  • 执行外部命令固定命令
    lib/desktop.js:458
    text = execFileSync("powershell.exe", ["-NoProfile", "-Command", PROCESS_EXE_SCRIPT], {
  • 执行外部命令固定命令
    lib/desktop.js:517
    text = execFileSync("powershell.exe", ["-NoProfile", "-Command", SHORTCUT_EXE_SCRIPT], {
  • 执行外部命令来自配置/变量
    lib/desktop.js:840
    const child = spawn(process.execPath, [helper], {
  • 执行外部命令固定命令
    lib/desktop.js:1046
    const child = spawn(
  • 执行外部命令固定命令
    lib/desktop.js:1072
    const child = spawn("/bin/sh", [script, asar, exe, lock], {
  • 执行外部命令来自配置/变量
    lib/web.js:57
    const child = spawn(process.execPath, [helper], {
  • 执行外部命令来自配置/变量
    lib/zip-extract.js:103
    execFileSync(file, args, {
  • 执行外部命令固定命令
    lib/restart-desktop.js:81
    const out = execFileSync("tasklist", ["/FI", `IMAGENAME eq ${image}`, "/FO", "CSV", "/NH"], {
  • 执行外部命令固定命令
    lib/restart-desktop.js:105
    return execFileSync("defaults", ["read", path.join(bundle, "Contents", "Info"), "CFBundleName"], {
  • 执行外部命令固定命令
    lib/restart-desktop.js:113
    return execFileSync("plutil", ["-extract", "CFBundleName", "raw", infoPlist], {
  • 执行外部命令固定命令
    lib/restart-desktop.js:127
    out = execFileSync("ps", ["-Ao", "pid=,command="], {
  • 执行外部命令固定命令
    lib/restart-desktop.js:163
    out = execFileSync("ps", ["-Ao", "pid=,command="], {
  • 执行外部命令固定命令
    lib/restart-desktop.js:237
    execFileSync(
  • 执行外部命令固定命令
    lib/restart-web.js:32
    spawnSync("taskkill", ["/PID", String(pid), "/F"], { windowsHide: true, stdio: "ignore" });
  • 执行外部命令固定命令
    lib/restart-web.js:41
    spawn("cmd.exe", ["/d", "/s", "/c", "start", "", url], {
  • 执行外部命令来自配置/变量
    lib/restart-web.js:49
    spawn(opener, [url], { detached: true, stdio: "ignore" }).unref();
  • 执行外部命令来自配置/变量
    lib/restart-web.js:71
    const child = spawn(info.execPath, info.argv, {
  • 执行外部命令来自配置/变量
    lib/uninstall-restart.js:65
    const child = spawn(info.execPath, info.argv, {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(68 字)↓

DeepSeek Harness 提示词注入与清洗(fork of YuJunZhiXue/dsh-purge(本项目去除渗透相关) )

README

由 DeepSeek 最新模型翻译生成
dsh-purge-fork 🧪 DeepSeek Harness 提示词注入与宿主补丁工具 Version 1.2.2 把 Harness 的提示词、审批门、hooks 与桌面宿主行为拆开看清楚:可换提示词、可挑补丁、可随包带一个「无限制模式」预设。Prompt injection & host patching for DeepSeek Harness. 中文 · English 这个仓库是什么 dsh-purge-fork 是一个装在你自己本机 DeepSeek Harness 上的插件:它不改 Harness 源码仓库,而是对已安装的官方 @deepseek-ai/* 包做可回滚的文本级补丁,同时接管系统提示词的注入,让这两层行为都能被你看见、改掉、还原。 官方 Web(dsh web)和官方 桌面端(EXE)都支持,两边分开装、分开应用。 要理解它解决什么问题,得先分清两层: | 层 | 官方行为 | 本插件的介入点 | | 宿主层 | 改写系统提示词、审批门、沙箱、hooks、桌面端退出/更新行为 | 补丁表逐条列出、可单独开关、应用前自动备份为 <文件>.dshpurge.bak | | 模型层 | 模型答什么 | 注入你自己的提示词段 + 规则集,决定每轮追加什么 | 只看「模型答不答」,会把宿主拦截误当成模型拒绝。
展开完整文档(README 剩余 1 节)
dsh-purge-fork

🧪 DeepSeek Harness 提示词注入与宿主补丁工具

Version 1.2.2

把 Harness 的提示词、审批门、hooks 与桌面宿主行为拆开看清楚:可换提示词、可挑补丁、可随包带一个「无限制模式」预设。Prompt injection & host patching for DeepSeek Harness.

中文 · English

这个仓库是什么

dsh-purge-fork 是一个装在你自己本机 DeepSeek Harness 上的插件:它不改 Harness 源码仓库,而是对已安装的官方 @deepseek-ai/* 包做可回滚的文本级补丁,同时接管系统提示词的注入,让这两层行为都能被你看见、改掉、还原。

官方 Web(dsh web)和官方 桌面端(EXE)都支持,两边分开装、分开应用。

要理解它解决什么问题,得先分清两层:

| 层 | 官方行为 | 本插件的介入点 |
| 宿主层 | 改写系统提示词、审批门、沙箱、hooks、桌面端退出/更新行为 | 补丁表逐条列出、可单独开关、应用前自动备份为 <文件>.dshpurge.bak |
| 模型层 | 模型答什么 | 注入你自己的提示词段 + 规则集,决定每轮追加什么 |

只看「模型答不答」,会把宿主拦截误当成模型拒绝。这个插件的价值就是把两层分开:你在受控环境下评测默认策略,也看清哪些行为是宿主强制的、哪些是提示词诱导的。

本插件只处理使用者本机已安装的官方包和本机配置。它不是公网扫描器,不是针对第三方站点的攻击套件;仓库内不含木马、未授权渗透脚本或对外攻击载荷。

目录

- 功能一览
- 本仓库与原仓库的区别
- 界面入口
- 使用
- 工作原理
- 还原
- 更新
- 本地校验
- 合规声明
- 致谢与来源

功能一览

| 能力 | 说明 |
| 84 条宿主补丁 | 提示词免责/强指令、审批提示句与审批策略、hooks deny/steer、桌面端更新交接、host 退出不再弹错误框等,按分组显示,可整组开合 |
| 提示词注入 | 写入 $DSH_HOME/prompt-inject.md,可编辑、可一键恢复为插件内置的加密默认值 |
| 规则集 | 多套规则按 id 管理,可激活 / 新建 / 删除 / 重置;激活时写入 AGENTS.md / CLAUDE.md 并参与注入决策 |
| 官方 Skill 管理 | 直接操作 $DSH_HOME/skills:列表、导入压缩包或文件夹、新建、删除 |
| 随包预设 | presets/unrestricted.patch.yml —— 一个「无限制模式」预设,作为 bundle patch 一起装进 profile,不用手工维护本地 bundle |
| 回退 | 「回退一次」/「回退上一轮」/ /rewind,与官方 session.fork({ atSeq }) 对接:撤回已进行的那一轮,新会话接上之前的上下文 |
| 重试与续写 | 可配置自动重试次数、自动续写次数与续写文本 |
| hooks 放行开关 | 把被 deny 的 hooks 按选择放行,可绕过 |
| 地区与银行域名拦截 | 保留原仓库的攻击任务识别:对境外/银行域名的任务在 agent 预检阶段拦截 |
| 桌面端 asar 处理 | 桌面端安装包解包、补丁写入、官方更新后自愈重应用 |

命名与兼容:宿主补丁标记 [dsh-purge]、提示词段名前缀 dsh-purge、$DSH_HOME/dsh-purge/ 运行时状态目录保留原样,以兼容已经打过补丁的宿主;包名、插件 id、客户端资源 id、CLI 命令与仓库地址已更名为 dsh-purge-fork。

路径解析:不写死盘符,按 $DSH_HOME → dsh 启动器旁边的 .dsh → ~/.dsh 的顺序回落。Web 与桌面端各用自己那一份主目录。

本仓库与原仓库的区别

原仓库:YuJunZhiXue/dsh-purge(本项目的代码来源,见 致谢与来源)。

本仓库 不是 上游的镜像或简单同步,而是在其基础上做了明确取向的裁剪与改造。差异如下:

| 维度 | 原仓库 | 本仓库 dsh-purge-fork |
| 红队演练台 | 含一整套红队预设、技能、身份切换与相关 UI | 全部下线(1.1.73 起),预设、技能、文案、文档一并移除 |
| 右下角悬浮入口 | 有固定定位的悬浮按钮 | 已删除(1.2.0),只保留左栏「清洗」图标与侧栏面板 |
| 「自己的服务器 / 保存名单」 | 有例外主机放行名单(UI + 路由 + net-scope-allow.txt) | 整块删除(1.2.0),放行名单、相关路由与判定逻辑全部移除;地区/银行域名拦截保留 |
| 身份句剥离补丁(#4 / #76) | 强制清空官方身份句 | 补丁删除,官方身份句是否保留由你自己的预设决定 |
| unrestricted 预设 | 依赖已废弃的 $DSH_HOME/.agent-presets/ 目录 | 随包发布:presets/unrestricted.patch.yml 作为 bundle patch 安装,profile 里不再需要本地 link bundle |
| 项目名称 | dsh-purge | dsh-purge-fork:包名、插件 id、客户端资源 id、CLI(dsh-purge-fork)、仓库地址 |
| 文档 | 文档结构随上游演进,且混有功能介绍、预览与安装说明 | README 完全重写,按本仓库事实描述;另附 docs/manual-install.md / docs/manual-install.en.md 手动安装教程 |
| 发布方式 | 上游自有渠道 | 独立仓库 + GitHub Release 自动打包,MIT 许可 |
| 更新自愈 | 依赖上游实现 | 官方桌面端更新后通过 marker 检测自动重应用补丁;桌面端 asar 解包/换位流程保留 |

没有做过的改动:补丁的文本替换逻辑、提示词注入链、规则集/Skill 管理模型、备份与还原机制、桌面端 asar 处理流程,均沿用原实现,未做行为级重写。

界面入口

- 左栏「清洗」图标:点开是完整面板 —— 补丁分组、提示词注入、规则集、Skill、hooks 放行、重试续写、更新通道。
- 输入框旁:回退一次 / 回退上一轮、续写按钮。
- 会话开场提示:点「检查」走一遍合规自检。

屏幕右下角没有悬浮球(1.2.0 起已移除该入口),首页 hero 行右侧也没有「清洗」胶囊按钮(1.2.2 起已移除)。

使用

聊天命令

/purge status 显示状态 /purge apply 应用全部清洗(提示词 + 宿主补丁 + shim + override) /purge revert 回滚还原 /purge uninstall 卸载插件(已应用则先还原) /purge edit 编辑注入文件 prompt-inject.md /purge help 帮助

/rules list 列出所有规则集 /rules use <id> 激活规则(写入 AGENTS.md/CLAUDE.md 并参与注入) /rules create <id> [别名] [目标] 新建规则 /rules delete <id> 删除规则 /rules reset 重置规则 /rules help 帮助

/skills list 列出 $DSH_HOME/skills /skills import <路径> 导入压缩包或文件夹 /skills create <id> [说明] 写入 <id>/SKILL.md /skills delete <id> 删除该目录 /skills help 帮助

/rewind 回退一次

模型工具

purge_status · purge_apply · purge_revert

命令行

dsh-purge-fork --status # 查看补丁与注入状态 dsh-purge-fork --apply # 应用 dsh-purge-fork --revert # 还原 dsh-purge-fork --uninstall # 卸载 dsh-purge-fork --edit # 编辑注入文件 dsh-purge-fork --help

手动安装

不想走自动安装流程,看 docs/manual-install.md(中文)与 docs/manual-install.en.md(English)。

应用之后

设置页点「应用」成功后会自动重启宿主,以加载被改写的包文件;也可手动点「重启」。补丁标题下有正式版与测试版通道。

极简 / PTC 与标准模式行为不一致时:同一任务在标准模式能跑、在极简或 PTC 被拦,通常是 preset 里 run_code 或 plan 拦截句没洗净,或内置 minimal 缺少 agent-instructions。请完全退出宿主 → 清洗里应用 → 自动重启 → 新开一轮对话 再试;只换 preset 不重应用,旧进程里的补丁不会更新。

响应速度

DSH 会按顺序执行同一批中的 Bash 调用。补丁 #21 会把带插件标记的旧等待值恢复为官方的 60 秒。在 macOS/Linux 的 dsh web 中如需更快返回工具结果,可在 $DSH_HOME/profiles/web/cordis.patch.yml 添加:

- id: bash-sandbox
config:
timeoutMs: 10000

使用标准 jobs 服务且 promoteOnTimeout: true 时,未完成的命令会在超时后返回后台任务 id,用 job_output 读取、job_kill 停止。

目录结构

bin/dsh-purge-fork.js 命令行入口 lib/ 补丁、注入、规则、Skill、桌面端处理 presets/ 随包预设(unrestricted.patch.yml) client.js 左栏图标与面板 cordis.patch.yml 插件自身的 profile 层补丁 docs/ 手动安装教程、banner、预览图

运行时文件在 $DSH_HOME:prompt-inject.md(你的注入提示词)、rules/(规则库)、skills/(官方 Skill 目录)、dsh-purge/(状态、备份、索引)。Skill 不进注入段,也不顶替提示词。

工作原理

应用流程(启动时自动或手动点「应用」):

flowchart TD
A["启动或点应用"] --> B{"补丁已经生效?"}
B -->|是| C["跳过"]
B -->|否| D["备份原件为 .dshpurge.bak"]
D --> E["按补丁列表替换对应文件"]
E --> F["覆盖 shim"]
F --> G["注入插件加密默认(提示词框默认显示的那份)"]

每轮的提示词注入与规则集决策:

flowchart TD
L["规则库:启用某个规则集 → 写入 prompt-inject.md"]
W["本地规则:勾选当前目录的 AGENTS.md / CLAUDE.md"]
P["工作区策略:strict / fallback / always"]

A["新一轮开始"] --> B{"prompt-inject.md 非空?"}
B -->|是| C["注入 = prompt-inject.md (A)"]
B -->|否| D{"当前目录有被勾选且非空的本地 md?"}
D -->|是| E["注入 = 被勾选的 workspace md (B)"]
D -->|否| F["注入 = 插件加密 slot 默认值 (D)"]
C --> G{"Workspace baseline 策略 (C)"}
E --> G
F --> G
G -->|strict| H["去掉 DSH workspace baseline 段"]
G -->|fallback 默认| I{"上面有用户注入内容? (A 或 B)"}
G -->|always| J["保留 DSH workspace baseline 段"]
I -->|是| H
I -->|否| J
H --> K["最终系统提示词"]
J --> K

L -.-> B
W -.-> D
P -.-> G

还原

- 每个目标文件在应用前备份为 <文件>.dshpurge.bak。
- 「还原」或 /purge revert 用备份覆盖回去并删除备份;没有备份时只去掉 shim 里由本插件写入的行。
- prompt-inject.md 是用户文件,还原时保留。
- 「卸载」会先还原(若已应用),再删除注入文件、规则库和插件本身。
- 重复应用是幂等的:已标记的补丁不会被二次改写。

更新

每一版改了什么见 Releases 与 release-notes.md。发新版时把 package.json 的版本号改掉,中英文说明写进 release-notes.md(首行必须是 # <版本>),推到 master 就会自动打包并发布 zip。同一版本再推送不会重复发包。

本地校验

node --check lib/index.js
node --check lib/core.js
node --check lib/rewind.js
node --check lib/skills.js
node --check client.js
node --check bin/dsh-purge-fork.js

合规声明

免责声明: 本项目为非营利开源项目,遵守国家法律法规及所在平台的相关规范,仅供学习与研究使用。不得将本项目用于任何违法违规用途;由此产生的后果由使用者自行承担。

1. 本仓库不含违法内容:发布的代码、文档、补丁与默认提示词不是木马、后门、未授权渗透工具,也不针对公网或第三方系统。
2. 只作用于本机官方 Harness:所有补丁与注入都发生在使用者本机已安装的官方 DeepSeek Harness(@deepseek-ai 包、本机 profile / $DSH_HOME)上,对象是使用者自己的本地软件。
3. 不对外网目标发包:应用补丁、写入注入、回滚、卸载均在本机文件与本机进程内完成。插件若开启「检测更新」,仅访问本插件自己的 GitHub 仓库以核对版本。
4. 使用者独立承担全部责任:本项目依据 MIT 协议「按现状」提供,不对完整性、安全性与适用性作任何明示或暗示保证。使用者应对自身的下载、部署、运行、修改、传播行为及全部后果承担独立责任。
5. 违约即终止授权:任何将本项目用于非法攻击、恶意活动或违规行为的个人或实体,其开源软件使用许可自违法违规行为发生之日起自动终止。
6. 第三方独立性声明:本项目与 DeepSeek 官方无任何隶属、商业合作、授权或官方背书关系。文中「官方」仅指评测对象为本机安装的官方 DeepSeek Harness。
7. 必须署名:借用本项目的名称、思路、代码或提示词,必须署名并标明来源仓库。

致谢与来源

本项目不是从零起步的原创工程,代码来源如下:

- 原作者:YuJunZhiXue(叫我小杨同学) —— dsh-purge 的最初实现、宿主补丁体系、提示词注入链与面板设计均源自其仓库。来源:YuJunZhiXue/dsh-purge。

署名要求(沿用来源仓库的要求):使用本项目的名称、思路、代码或提示词,必须署名并写明来源仓库 —— YuJunZhiXue/dsh-purge。不署名、隐瞒来源、改头换面据为己有,作者保留追究权利。

许可说明:来源仓库在某一版本起改为商业许可,本仓库代码以 MIT 发布(见 LICENSE,原始版权声明保留)。来源仓库 README 中关于商业许可与使用限制的声明同样适用于来源仓库自身的代码部分;本仓库不对来源仓库的商业条款作任何变更或豁免。

感谢 LINUX DO 社区。
预览分享卡片长什么样 ↓P4rfa1t/dsh-purge-fork
分享 · DeepSeek Harness Hub
P4rfa1t/dsh-purge-fork

DeepSeek Harness 提示词注入与清洗fork of…

回到顶部