Codex 接入
OpenAI Codex(codex CLI)可调用本地命令行工具。本文给出接入 SoFixer 的方式。
一键复制提示词
把下面这段复制进 Codex 对话框发送,它会自动获取工具并配置好。
text
你现在是 SoFixer 工具的操作助手。SoFixer 修复「从内存 dump 下来的 Android SO 文件」,提供面向 AI 的结构化 JSON CLI(SoFixer-skills-CLI)。
请按以下步骤接入:
1. 访问官网了解能力:https://android-security-engineer.github.io/SoFixer-skills/ai-agent/
重点阅读 CLI 子命令 fix / info / verify,以及输出格式(默认 JSON,含 ok/error.code/退出码 0-3)。
2. 获取可执行文件:
- 优先到 https://github.com/android-security-engineer/SoFixer-skills/releases 下载对应平台的 SoFixer-skills-CLI(Windows/Linux/macOS,分 32/64 位变体)。
- 没有对应预编译包则从源码构建:git clone 后 cmake -DSO_64=ON(或 OFF)+ cmake --build。
- 放到 PATH 或记录绝对路径。
3. 位宽选择:64 位 SO 用 CLI64,32 位 SO 用 CLI32。判断方法——
先 info 子命令探测,若 error.code=load_failed 且提示 class 不符,换另一个变体重试。
4. 验证安装:运行 `<CLI> version`,应输出一行 JSON,含 "ok":true、"arch":32 或 64、"platform"。
5. 标准工作流(针对用户提供的 dump.so):
a. <CLI> info -s dump.so # 查看结构,确认位宽与架构
b. <CLI> fix -s dump.so -o fixed.so -m <dump基地址> # 修复,需 dump 时的内存基地址
c. <CLI> verify -s fixed.so # 校验,看 summary.passed/failed
6. 输出都是单行 JSON,用 JSON 解析提取字段,不要用正则猜测。
成功看 ok=true;失败看 error.code 与 error.stage;退出码 0=成功 / 1=业务失败 / 2=参数错误 / 3=内部错误。
现在请告诉我:你在哪个平台使用?是否有现成的 dump.so 需要修复?Codex 调用 CLI 的要点
- 执行权限:确保 Codex 有权执行本地 shell 命令(Codex 的默认 sandbox 可能限制执行,按需放开对 SoFixer-skills-CLI 的调用)。
- 绝对路径更稳:把可执行文件路径告诉 Codex(如
/usr/local/bin/SoFixer-skills-CLI64),避免 PATH 查找问题。 - JSON 解析:Codex 拿到单行 JSON 后,可直接解析,无需处理多行人类日志。
位宽试错自动化
把这段告诉 Codex,它就能自己选对变体:
对待修 SO,先用
info探测位宽。若返回error.code=class_mismatch,则切换到另一个位宽变体(CLI32 ↔ CLI64)重试info,直到ok=true为止。
示例对话
你:帮我修一下 dump.so,dump 时的基地址是 0x7db078b000。
Codex:
→ SoFixer-skills-CLI64 info -s dump.so
→ elf_class=ELFCLASS64,确认用 CLI64
→ SoFixer-skills-CLI64 fix -s dump.so -o fixed.so -m 0x7db078b000
→ 解析 JSON:ok=true,relocations_fixed=1234
→ SoFixer-skills-CLI64 verify -s fixed.so
→ summary.passed=8, failed=0
→ "修复完成,fixed.so 可用 IDA 打开分析。"跨工具通用性
提示词刻意写得与具体 agent 无关——只描述 CLI 调用约定与 JSON 契约。因此除了 Codex,Cursor、Cline、Aider 等能跑本地命令的 agent 都可直接套用同一提示词。