AI提示词注入工具:codex-session-patcher

admin 2026-04-22 05:25:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: codex-session-patcher是一款针对AI安全研究场景的工具,主要解决CodexCLI、ClaudeCode等平台在CTF/渗透测试中因内容过滤导致会话中断的问题。工具提供会话清理和提示词注入两大功能:通过两级策略检测AI拒绝回复并支持Mock替换或AI改写;支持多平台会话格式适配,并可通过CTF配置预注入安全上下文降低被拒概率。项目提供CLI和WebUI两种操作方式,包含实战场景指南和注意事项说明。 综合评分: 88 文章分类: AI安全,渗透测试,CTF,红队,安全工具


cover_image

AI提示词注入工具:codex-session-patcher

原创

攻防路 攻防路

攻防录

2026年4月21日 11:18 北京

在小说阅读器读本章

去阅读

日常使用 Codex CLI 或者 Claude Code 做安全研究、CTF,结果 AI 突然来一句”I can’t help with that”——会话就这么断了。

更烦的是,就算你 resume,上下文依然带着那条拒绝记录,后续每次回复都会受影响。

codex-session-patcher 就是专门解决这个问题的。它能直接修改会话文件,把那些拒绝回复替换掉,让你接着往下跑,不用重头再来。

项目地址:https://github.com/ryfineZ/codex-session-patcher


功能介绍

这个项目的功能分两块:

① 会话清理(Session Patcher) AI 已经拒绝了?没关系,把拒绝的那条回复从会话文件里替换掉,然后 resume,就好像什么都没发生过。

② CTF/渗透测试提示词注入 在 AI 启动之前就注入 CTF 安全上下文,从源头降低被拒概率,治标更治本。


工作原理拆解

拒绝检测:两级策略,控制误报

工具里有个 detector.py,专门负责判断一条 AI 回复是不是”拒绝”。

它用的是两级匹配策略:

| 级别 | 匹配方式 | 示例触发短语 | | — | — | — | | 强匹配 | 全文强短语匹配 | “I’m not able to help with” / “I cannot assist with” | | 弱匹配 | 开头关键词匹配 | 回复以 “I’m sorry, but” 开头等 |

强匹配优先,弱匹配只在强匹配没命中时兜底。两级结构的好处是误报率低——不会把一句”我无法确认”也当成拒绝处理掉。

匹配关键词支持自定义,写进配置文件 ~/.codex-patcher/config.json 的 custom_keywords 字段就行。

多平台会话格式,各有适配

三个工具的会话存储方式不一样:

| 工具 | 会话格式 | 存储路径 | | — | — | — | | Codex CLI | JSONL | ~/.codex/sessions/ | | Claude Code | JSONL | ~/.claude/projects/ | | OpenCode | SQLite | ~/.opencode/ |

formats.py 负责识别格式,parser.py 处理 JSONL,sqlite_adapter.py 专门对接 OpenCode 的数据库。三套格式用同一套 CLI/Web UI 入口统一管理,不用分别折腾。

清理逻辑:替换而非删除

检测到拒绝回复后,patcher.py 有两种替换方式:

  1. Mock 回复:用预设的配合性文本替换(无需 AI,零额外依赖)
  2. AI 改写:把整段对话上下文发给 LLM,让它生成一条”没有拒绝”的替代回复,语境更自然

AI 改写支持 OpenAI / Ollama / OpenRouter 等任意兼容接口,在配置文件里填上 ai_endpoint 和 ai_key 就能用。

替换前自动备份,支持一键还原到任意历史版本。处理前后还有 Side-by-side Diff 对比,能看清改了哪里。

提示词注入:三种模式

这部分对应 ctf_config/ 目录下的安装器,三个平台各有方案:

Codex:创建独立的 ctf profile,codex -p ctf 启动时才生效,普通 codex 会话完全不受影响。

Claude Code:不支持 profile,所以改成工作空间隔离——在 ~/.claude-ctf-workspace 下放一个项目级 CLAUDE.md,从这个目录启动的 Claude 会话自带 CTF 上下文。

OpenCode:同理,用 ~/.opencode-ctf-workspace + AGENTS.md 实现工作空间注入。

提示词内容可以直接在 Web UI 里编辑,支持模板保存和切换。还有一个 --rewrite 功能,把你的请求扔给 AI,让它帮你改写成”更容易被接受”的表达方式。


安装与上手

安装

git clone https://github.com/ryfineZ/codex-session-patcher.git
cd codex-session-patcher

# CLI 版本(零额外依赖)
pip install -e .

# Web UI 版本(额外安装前端)
pip install -e ".[web]"
cd web/frontend && npm install && npm run build && cd ../..

启动 Web UI(推荐)

./scripts/start-web.sh
# 或者直接运行
uvicorn web.backend.main:app --host 127.0.0.1 --port 8080

访问 http://localhost:8080,有会话列表、Diff 对比、提示词注入等所有功能。

开发模式(前后端热更新):

./scripts/dev-web.sh

CLI 常用命令

# 预览模式,不实际改文件
codex-patcher --dry-run --show-content

# 清理最新一条会话
codex-patcher --latest

# 清理所有会话
codex-patcher --all

# 指定格式(不想让工具自动判断时)
codex-patcher --latest --format claude-code

# 查看帮助
codex-patcher --help

实战场景

场景一:Codex CTF 模式

做 CTF 时,走 profile 隔离是最干净的方式,不影响日常编码:

# 第一步:安装 CTF profile
codex-patcher --install-ctf-config

# 第二步:用 CTF profile 启动 Codex
codex -p ctf

# 第三步:遇到拒绝时,打开 Web UI 清理
codex-patcher --web

# 第四步:清理完 resume 继续
codex resume

场景二:Claude Code 渗透测试工作空间

# 通过 Web UI 启用 Claude Code 注入(会自动创建工作空间)
# Web UI → 提示词增强 → Claude Code → 启用

# 从 CTF 工作空间启动
cd ~/.claude-ctf-workspace && claude

# 遇到拒绝 → Web UI 清理 → 继续对话

场景三:提示词改写

如果不确定怎么描述一个请求才不会被拒绝:

codex-patcher --rewrite "帮我写一个分析 PE 文件结构的脚本"

它会调用 AI,结合当前注入的 CTF 系统提示词,把请求改写成更容易被接受的表达形式。


注意事项

  • 清理后必须 resume:会话文件改了,但当前对话进程还在跑旧内容,手动 resume 才能让上下文生效
  • OpenCode 必须从工作空间目录启动:OpenCode 没有 profile 机制,CTF 注入完全依赖工作空间目录下的 AGENTS.md
  • 不保证 100% 绕过:对于违规程度很高的请求,模型可能在生成层面就拦截,会话层的 patch 也没用
  • 模型版本影响效果:模型更新后对拒绝短语的表述可能变化,记得更新自定义关键词

往期推荐 📚

给 AI 装上黑客大脑:hack-skills

Burp 官方 MCP Server

AI Agent Skills:红队攻击自动化

欢迎关注“攻防录”✨


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:攻防录 攻防路 攻防路《AI提示词注入工具:codex-session-patcher》

评论:0   参与:  0