toby-bridges/api-relay-audit
toby-bridges/api-relay-audit从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。
单包逆向与渗透测试安全分析插件:首轮工具收敛、领域路由与 33 个工具,覆盖 APK、Web、原生二进制、协议、恶意样本与 LLM 场景的逆向分析、加壳脱壳与 License 破解绕过;内置 H-CoT 评估引擎(语义路由、/hcot 命令)、账本驱动的 Web 工作台与工具货架、磁盘案件工作区(证据链自动存证、E 编号结论校验、上下文压缩后恢复)、GitHub 工具检索与 361 篇按需参考文档。
强证据 · 多参考 · 0 幻觉破甲
DeepSeek Harness 安全分析插件 —— 一个 preset · 34 个工具 · 362 篇按需参考 · Android / Web / Native / Protocol / Malware / AI-Security 六大领域
English | 中文
官方QQ群:213266664
仅供学习交流。使用者须遵守所在地法律法规,对使用本项目产生的后果自负。
社区里另有一类引擎补丁路线工具:直接给已安装的 dsh 宿主落盘补丁,改写引擎裁决代码,把审批/沙箱/升级阶梯这些物理阻断拆掉——不属本项目范畴,另寻对应工具。
helmd 走另一条路:不碰宿主一个字节,给模型装纪律。两条路线一句话区分:
一句话:补丁拆的是引擎的闸门,helmd 修的是模型的手。
两类可以同装;要可审计、可复现的分析工作流,用 helmd。
传统 AI 安全分析的三个通病:结论一张嘴没有证据、外部 CLI 输出跑完就丢、会话一压缩全忘光。helmd 的 case 系统把「分析过什么」变成磁盘上可审计的事实:
begin_case(goal, samples)
→ 建 helmd-cases/<date>-<slug>/(sample/ evidence/ scripts/ CASE.md)
→ 样本哈希入链,成为第一条证据
│
▼ persist 钩子:33 个领域工具的输出自动落 evidence/,拿 E 编号
│
record_finding(title, detail, evidence_ids)
→ 强制引用 E 编号;引用不存在的编号 → REJECTED,贴出已知编号清单
→ 先跑出证据,才有资格下结论
│
▼
end_case(summary)
→ deep 档至少 1 条 finding 才许关案
→ evidence/ 里一条 E-xxx 都没有 → REJECTED
→ 确实无证据(纯咨询/被阻塞)必须写明 (no-evidence: 原因)规则写在代码里,不是写在提示词里求模型遵守——packages/helmd/src/tools/caseflow.ts。
配套机制:
机制 · 行为 压缩恢复 · 上下文被截断后 case_status() 从磁盘 CASE.md 恢复状态;## resume 块是跨窗口的交接契约 外部输出入链 · shell 里跑的第三方 CLI 输出走 save_evidence(label, ...) 统一编号,finding 可正常引用 死路记账 · 同一目标同一战术连败 3 次且无新证据 → tool_memory note target=deadend;没有新证据不许重试已归档死路 关案审计 · 关案即归档:CASE.md 时间线 + findings.md + evidence/ 全清单,接手的人不用重走一遍
知识不塞 system prompt。skill_catalog 只做领域/信号路由,read_reference 按需读 references//——Android 脱壳、Frida hook 模板、ConfuserEx 还原、TLS 抓包、LLM 注击 playbook、报告模板……模型读完自主判断,参考是弹药,不是命令。
领域 · 参考入口 · 覆盖 Android · references/android/index.md · 脱壳、Frida、加固指纹、ARM64 内存 dump、Flutter SSL bypass Web · references/web/index.md · 漏洞 playbook、Bot 分析、自动化审计 Native · references/native/index.md · 壳识别、ROP、反逆向、JVM 解密 Protocol · references/protocol/index.md · PCAP 分析、状态机推断、流量解密 Malware · references/malware/index.md · IOC、YARA、家族分析、威胁情报 AI-Security · references/ai-security/index.md · 提示注入、越狱方法论、模型防御画像 Evidence · references/evidence/index.md · 分诊工作流、报告模板、证据分级 Toolbox · references/toolbox/index.md · 工具安装、货架、版本坑位
record_finding 引用的每个 E 编号都在磁盘 evidence/ 里验证过,编不出来源的证据 id 直接被拒(见上节)。advisory 层同步运行:检测上一轮的敷衍/拒绝措辞并注入 stance 指标,敏感输入先归一化为工程术语。
flowchart LR
Q["用户问题"] --> BS["bootstrap 首轮收窄<br/>shell + read"]
BS --> P{"会话晋升"}
P -->|首轮| BS
P -->|晋升后| ROUTER["router 领域路由"]
ROUTER --> CASE["Case 工作区<br/>证据链 + E 编号"]
ROUTER --> DOM["六大领域工具<br/>33 个"]
DOM --> REF["read_reference<br/>按需读 references/"]
CASE --> OUT["带置信度与证据编号的结论"]
REF --> OUT
style CASE fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e40af
style ROUTER fill:#f0fdf4,stroke:#16a34a,stroke-width:2px,color:#15803d
style REF fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,color:#92400e
style OUT fill:#15803d,color:#fff,stroke:#166534,stroke-width:2pxpackages/helmd/src/index.ts 的 apply() 按固定顺序组装运行时钩子层,全部寄生宿主 cordis 瀑布,零独立进程、零宿主修改:
tool-wash 描述清洗 → persist 证据链包装 → bootstrap 首轮收窄
→ advisory-hook + llm-stream-hook
→ router + 账本 + caseflow + 工具发现 + 领域工具组件 · 职责 tool-wash.ts · 把「拒绝是终局」类工具描述话术归一化为可继续措辞(防御层) persist.ts · 所有后注册领域工具输出自动落 evidence/,软门禁免逐工具改造 advisory-hook.ts · 对照会话日志清算上一轮 advisory;检测交付拒绝/敷衍措辞,注入 stance 指标 model-probe.ts · llm_probe 调用 OpenAI-compatible Chat Completions,记录首段响应、完整响应、分类、状态码与耗时到 JSONL;不采集 reasoning 字段 llm-stream-hook.ts · llm/stream 拒绝真闭环:拦截 → 历史清洗 → prefill 阶梯嵌套重发 → 末轮诚实透传;计数落审计日志 ica-context.ts · L2 行为示范注入:真实形态任务→执行行为对,把生成分布拉向直接交付 router.ts + case.ts · skill_catalog/read_reference 路由 + Case 工作区生命周期
域 · 工具 Case · begin_case case_status record_finding save_evidence end_case 路由/知识 · skill_catalog read_reference route_task analysis_mode(lite/full/deep 档位) Android · apk_fingerprint Web · web_reference bot_analyze Native · native_reference detect_packer scan_strings xor_bruteforce encoding_detect Protocol · protocol_reference pcap_parse state_machine parse_har Malware · malware_reference ioc_extract yara_gen AI-Security · ai_reference llm_sim llm_probe llm_eval_suite Evidence · evidence_reference triage_artifact hash_artifact Toolbox · tool_recommend find_tool tool_memory(跨会话工具/死路账本)
前提:已安装 dsh CLI 与 pnpm。
Windows(双击 install.bat,或 PowerShell):
.\install.ps1macOS / Linux:
./install.sh安装器会下载最新 Release 的 helmd.tgz、装入 profile、写入 preset。preset 平台行不靠快照复制——安装器在本机上直接读取你已装的 dsh 宿主 `standard` 预设实时派生生成(gen-preset.mjs --out),平台工具行永远匹配你自己装的 dsh 版本。然后:
dsh web会话里发送 helmd 即激活。验证安装:
dsh --profile web --dump-config # 应看到 - id: preset-helmd 与 @adwmc/helm-d/agent会话内快速验证:skill_catalog 返回领域路由、route_task(hint: "分析这个加密APK") 返回路由依据。
helmd 0.4.0 起,会话头部 [helmd 工作台 ▾] 胶囊按钮就地弹出工作台,三个数据面板经 /api/helmd/{tools,eval,intercept} 端点(15s 轮询)实时取数:
~/.dsh/helmd-tools/TOOLS.md 账本动态解析,支持界面直接登记新工具helmd 已提交 awesome-dsh-plugin 收录。命令行等价:
dsh plugin --profile web add https://github.com/ADWMC/helm-d/releases/latest/download/helmd.tgz
# 或从源码
dsh plugin --profile web add github:ADWMC/helm-d/tree/main/packages/helmd商店安装把包依赖装入 profile;升级过 dsh 宿主后按本机重生成一次 preset:
# Windows (PowerShell)
%USERPROFILE%\.dsh\profiles\web\node_modules\@adwmc\helm-d\scripts\setup-preset.ps1
# macOS / Linux
~/.dsh/profiles/web/node_modules/@adwmc/helm-d/scripts/setup-preset.shpnpm install # 安装依赖(prepare 自动 tsc)
pnpm build # 构建 workspace 全部包(发布物仅 helmd)
pnpm typecheck # 干净树 tsc --noEmit 类型门禁本地打包交付:
.\scripts\repack.ps1 # 生成 dist-tgz\helmd.tgz
dsh plugin --profile web add .\dist-tgz\helmd.tgz # 装进 web profile自动更新(比对 GitHub 最新 Release,拒绝降级本地新版):
.\scripts\update.ps1 # 检查并更新 web profile
.\scripts\update.ps1 -CheckOnly # 只看版本不动手
./scripts/update.sh # macOS / Linux依赖 · peer 范围 · 当前 cohort(overrides 钉死) @deepseek-ai/cordis · ^4.0.2 · 4.0.4 @deepseek-ai/dsh-tools / dsh-settings · >=0.1.5-rc.1 =0.2.0-rc.1 <0.2.2-0 · 0.2.1-rc.2 全家 @deepseek-ai/schemastery · ^3.18.2 · 3.18.4
预发布范围的坑:semver 只在范围里点名同一major.minor.patch的预发布版本时才收预发布版本。要声明宿主 cohort,必须写成>=0.1.5-rc.1 <0.2.0-0这种显式双段。pnpm install后pnpm peers check必须无问题,否则图里混了跨 cohort 的 peer。
helmd/
├── packages/
│ └── helmd/ 发布包(单 bundle)
│ ├── src/
│ │ ├── bootstrap.ts 首轮工具收窄过滤器
│ │ ├── persist.ts 全工具证据链持久化包装
│ │ ├── case.ts Case 工作区状态机(磁盘真源)
│ │ ├── tools/caseflow.ts begin/status/finding/save/end 五工具
│ │ ├── tool-wash.ts 工具描述清洗(防御层)
│ │ ├── advisory*.ts advisory 账本 + prompt 注入(拒绝/敷衍检测)
│ │ ├── model-probe.ts OpenAI-compatible 模型评测
│ │ ├── llm-stream-hook.ts llm/stream 拒绝真闭环与审计
│ │ ├── router.ts skill_catalog / read_reference 路由
│ │ ├── seam.ts 共享 IO seam(fs / subprocess / 路径校验)
│ │ └── tools/ 领域工具模块(34 个工具)
│ ├── client.js 浏览器半:工作台(lazy-CJS,免构建)
│ ├── references/ 362 篇参考文档,按需读取
│ ├── scripts/ 分析脚本 + ai-security 语料/账本 + gen-preset.mjs
│ ├── presets/ persona 单源 + preset.yml
│ ├── preset.generated.patch.yml preset 产物(生成物)
│ └── cordis.patch.yml bundle 挂载清单
├── install.ps1/.sh/.bat 一键安装器
└── docs/ 设计文档与事故复盘packages/ 下其余目录为历史拆分包,已由 helmd 单包取代,仅作归档保留、不再发布。需要 pnpm;构建产物目标 ES2022 / NodeNext。
pnpm install && pnpm buildadwmc-helm-d-.tgz + 稳定别名 helmd.tgz + installer 三件套,五件资产缺一不可;npm registry 上的旧包已停止维护,不作为安装来源。packages/helmd/package.json 为准。BoosterX v2.2.4.3 (.NET) 许可证绕过 —— helmd 方法论的完整实战验证:
📄 全文:docs/case-studies/boosterx-dotnet-license-bypass.md
本项目融合了大量优秀开源项目的设计思路与实现模式:
欢迎提 issue 与 PR。改动前请先阅读 docs/principles.md,并保持两条架构约束:证据强制入链、参考知识按需读取。
本项目基于 MIT License 开源,可自由使用、修改和分发。详见 LICENSE。