嘛,先声明图一乐,不太重要
因为我常常会切换模型,但我用 CPA 反代
所以 5.3-codex 不会出现在选项中,很烦
/--------------------------- 2/27 更新 ---------------------------/
/--------------------------- 2/27 更新 ---------------------------/
刚好今天有人问
所以我就跑去翻 codex 源码看是怎么回事
原理很简单,在 API key 模式默认不包含 visibility: “hide” 的模型
然后 codex 设置这样,嗯…
我看似乎有教程?
不过我想用比较摩登的方法 → 改二进制档 ![]()
方法也很简单,定位->修改 (hide->list),没了
以下为执行脚本,不建议使用,改坏别找我 ![]()
路径需要自行找寻
patch_codex.py
#!/usr/bin/env python3
import sys
import shutil
# 这是你环境下 codex 原生二进位档的绝对路径 (路径需要自行找寻!!!)
binary_path = '/home/ubuntu/.npm-global/lib/node_modules/@openai/codex/node_modules/@openai/codex-linux-x64/vendor/x86_64-unknown-linux-musl/codex/codex'
backup_path = binary_path + '.bak'
try:
# 1. 安全备份原始档
shutil.copy2(binary_path, backup_path)
print(f"✅ 已成功备份原始二进位档至: {backup_path}")
# 2. 将整个 88MB 的档案以 bytes 载入进内存 (使用 bytearray 以支援原地修改)
with open(binary_path, 'rb') as f:
content = bytearray(f.read())
# 3. 寻找 'gpt-5.3-codex' 这个 model 的定义区块
idx = content.find(b'gpt-5.3-codex')
if idx == -1:
print("❌ 找不到 'gpt-5.3-codex' 区块,可能档案已被修改过或是版本不同。")
sys.exit(1)
# 取出后方的区段,找出这个 model 专属的 'visibility': 'hide' 设置
end = min(len(content), idx + 2000)
snippet = content[idx:end]
vis_idx = snippet.find(b'"hide"')
if vis_idx == -1:
print("❌ 在 'gpt-5.3-codex' 附近找不到 '\"hide\"' 属性。")
sys.exit(1)
# 4. 定位真实修改点 (这四个字元刚好等长,所以覆写不会破坏编译内存对齐)
abs_vis_idx = idx + vis_idx
print(f"🔍 成功定位 'hide' 属性偏移量 (Offset): {abs_vis_idx}")
print(f" 修改前状态: {content[abs_vis_idx:abs_vis_idx+6].decode('utf-8')}")
# 5. 原地精准覆写 bytearray ("hide" -> "list")
content[abs_vis_idx+1:abs_vis_idx+5] = b'list'
print(f" 修改后状态: {content[abs_vis_idx:abs_vis_idx+6].decode('utf-8')}")
# 6. 将修改后的机器码写回档案 (如果遇到权限问题,记得先关闭背景运作的 codex 服务)
with open(binary_path, 'wb') as f:
f.write(content)
print("🚀 Patch 成功!解锁隐藏版 gpt-5.3-codex。")
except PermissionError:
print("\n⚠️ 发生权限错误或档案被占用 (Text file busy)。")
print(" 请先执行 'pkill codex' 终止背景正在运作的程式,然后再试一次。")
sys.exit(1)
?
?
?
?
?
成功后就能看到选项了,感谢大家观看
Nooooooooooooooooooo!






