보안 테스트, CTF 대회, 침투 테스트 (Penetration Testing) 등의 시나리오에서 AI 코딩 도구(Codex, Claude Code, OpenCode)는 보안 작업과 관련된 요청을 빈번하게 거부하여 세션이 중단되는 문제가 발생합니다.
Codex Session Patcher는 두 가지 유형의 솔루션을 제공합니다:
1. 세션 정리 (Session Cleaning) — 이미 생성된 거부 응답을 스캔하여 협조적인 내용으로 교체함으로써 세션을 재개(resume)할 수 있도록 합니다.
2. CTF 프롬프트 주입 (CTF Prompt Injection) — 설정 단계에서 보안 테스트 컨텍스트를 주입하여 거부될 확률을 근본적으로 낮춥니다.
지능형 탐지 — 2단계 거부 탐지 전략(강한 구문 전체 일치 + 약한 키워드 시작 일치)을 통해 낮은 오탐률을 유지합니다.
AI 지능형 재작성 — LLM을 호출하여 대화 컨텍스트에 따라 문맥에 맞는 교체 응답을 생성합니다 (OpenAI / Ollama / OpenRouter 등 호환 인터페이스 지원).
일괄 정리 — 마지막 응답뿐만 아니라 세션 내의 모든 거부 응답을 처리합니다.
추론 내용 삭제 — Reasoning / Thinking 블록의 암호화된 추론 내용을 삭제합니다.
백업 및 복구 — 정리 전 자동으로 백업하며, 임의의 히스토리 버전으로 원클릭 복구를 지원합니다.
Diff 비교 — 정리 전후를 사이드 바이 사이드(Side-by-side) 비교 뷰로 보여줍니다.
Codex Profile 모드 — ctf 프로필을 생성하여, codex -p ctf로 실행 시에만 적용되며 일반 세션에는 영향을 주지 않습니다.
Codex 전역 모드 — 전역 설정에 주입하여 모든 새 세션에 자동으로 적용됩니다.
Claude Code 워크스페이스 — 전용 CTF 워크스페이스 ~/.claude-ctf-workspace를 생성하고, 프로젝트 레벨의 CLAUDE.md를 통해 주입합니다.
OpenCode 워크스페이스 — 전용 CTF 워크스페이스 ~/.opencode-ctf-workspace를 생성하고, AGENTS.md를 통해 주입합니다.
프롬프트 커스텀 — Web UI 내에서 직접 주입 프롬프트를 편집하며, 템플릿 저장 및 전환을 지원합니다.
AI 프롬프트 재작성 — 주입된 CTF 시스템 프롬프트와 결합하여, AI가 사용자의 요청을 더 잘 수용될 수 있도록 재작성합니다.
| 플랫폼 | 세션 정리 | CTF 주입 | 세션 형식 |
|---|
| Codex CLI | ✅ | ✅ Profile + 전역 | JSONL |
| Claude Code | ✅ | ✅ 전용 워크스페이스 | JSONL |
| OpenCode | ✅ | ✅ 전용 워크스페이스 | SQLite |
세션 목록 — 여러 플랫폼을 통합 관리하며, 날짜별 그룹화 및 형식/거부 상태/백업 상태별 필터링을 지원합니다.
시각화 정리 — 미리보기 패널 + Diff 비교 + 원클릭 실행을 제공합니다.
다국어 지원 — 중국어 / English 인터페이스 전환을 지원합니다.
실시간 로그 — WebSocket 푸시를 통해 작업 로그를 실시간으로 표시합니다.
git clone https://github.com/ryfineZ/codex-session-patcher.git
cd codex-session-patcher
# CLI 버전 (추가 의존성 없음)
...
# 프로덕션 모드
./scripts/start-web.sh
# 또는 직접 실행
...
http://localhost:8080에 접속하세요.
개발 모드 (프론트엔드/백엔드 핫 리로드):
./scripts/dev-web.sh
# 도움말 확인
codex-patcher --help
# 미리보기 모드 (파일을 수정하지 않음)
...
| 매개변수 | 설명 |
|---|
--session-dir | 세션 디렉터리 지정 (기본값은 자동 선택) |
--format | 세션 형식: codex / claude-code / opencode / auto |
--dry-run | 미리보기 모드, 파일을 수정하지 않음 |
--no-backup | 백업 파일을 생성하지 않음 |
--show-content | 수정된 상세 내용 표시 |
--latest | 최신 세션만 처리 |
--all | 모든 세션 처리 |
--keep-reasoning | 추론 내용 (thinking/reasoning blocks) 유지, 거절된 응답만 교체 |
--web | Web UI 실행 |
--host | Web UI 리스닝 주소 (기본값 127.0.0.1) |
--port | Web UI 포트 (기본값 8080) |
--install-ctf-config | Codex CTF 설정 설치 |
--uninstall-ctf-config | Codex CTF 설정 삭제 |
--install-claude-ctf | Claude Code CTF 설정 설치 |
--uninstall-claude-ctf | Claude Code CTF 설정 삭제 |
--install-opencode-ctf | OpenCode CTF 설정 설치 |
--uninstall-opencode-ctf | OpenCode CTF 설정 삭제 |
--ctf-status | 3개 플랫폼의 CTF 설정 상태 확인 |
--rewrite | 더 잘 수용되도록 프롬프트 (Prompt) 재작성 |
1. CTF 프로필 설치
codex-patcher --install-ctf-config
2. CTF 프로필을 사용하여 시작 (일반 세션에는 영향을 주지 않음)
...
1. Web UI → 프롬프트 강화 → Claude Code → 활성화
(~/.claude-ctf-workspace 생성)
2. 전용 워크스페이스에서 시작
...
1. Web UI → 프롬프트 강화 → OpenCode → 활성화
(~/.opencode-ctf-workspace 생성)
2. 전용 워크스페이스에서 시작
...
CLI와 Web UI는 설정 파일 ~/.codex-patcher/config.json을 공유합니다.
설정:
| 설정 항목 | 설명 | 기본값 |
|---|
mock_response | 기본 교체 텍스트 | 협조적인 응답 |
ai_enabled | AI 재작성 활성화 | false |
ai_endpoint | LLM API 주소 | — |
ai_key | API Key | — |
ai_model | 모델 이름 | — |
custom_keywords | 사용자 정의 거절 감지 키워드 | {} |
ctf_prompts | 각 플랫폼별 사용자 정의 CTF 프롬프트 | 내장 템플릿 |
ctf_templates | 사용자가 저장한 프롬프트 템플릿 | {} |
codex-session-patcher/
├── codex_session_patcher/ # 핵심 라이브러리
│ ├── cli.py # CLI 엔트리포인트
...
플랫폼의 최고 수준 보안 정책을 돌파할 수는 없음 — 명백한 규정 위반 요청은 여전히 거절될 수 있습니다. 효과는 버전에 따라 다름 — 모델 버전 업데이트가 효과에 영향을 줄 수 있습니다. OpenCode는 워크스페이스 디렉터리에서 시작해야 함 — OpenCode는 프로필 메커니즘이 없으므로, CTF 주입은 워크스페이스에 의존합니다. 정리 후에는 resume가 필요함 — 세션 정리 후에는 문맥을 이어가기 위해 수동으로 resume 해야 합니다.
이 프로젝트가 도움이 되었다면 다음을 부탁드립니다:
- ⭐ Star를 눌러주세요
- ☕ Buy me a coffee — Web UI 우측 상단에 후원 입구(WeChat / USDC)가 있습니다.
- 📢 WeChat 공식 계정 「钢之AI术师」를 팔로우하여 더 많은 AI 도구 기술을 확인하세요.