三国志 11 修改:两条 AI 路径复盘

同一个需求:让《三国志11》城外的军事设施不再受地形和距离限制。同一台电脑、同一批资料。DeepSeek V4-Flash 跑了约 3 小时没有完成,GPT-6 用约 12 分钟完成,并留下可一键回退的补丁。

这篇文章只记录两份会话记录里可以直接核对的内容:两条路径做了什么、结果是什么。至于”为什么一个失败、一个成功”,两个样本不足以下结论。文中把事实与推测分开,不给出确定性归因。

两条路径

DeepSeek V4-Flash(opencode) 约 3 小时 · 未闭环 GPT-6(Codex) 约 12 分钟 · 闭环 1 开工直接本机搜索 约一小时后才开始联网检索 2 锚点选择:设施创建链 沿 0x588BF0 调用链向上溯源 3 动态调试多轮往返 hook 地址算错、2100 万条追踪噪声 4 GUI 自动化操作 反复重启修改器,键鼠落入游戏窗口 5 用户中止会话 约 3 小时:未定位、未修改 1 开工即检索生态 搜索词中已包含 SIRE 2 反汇编 SIRE 修改器 mov eax, 0x5A41D4 → 目标地址 3 静态复核谓词 0x5A4170 地形 / 间距 / 占用 / 领地判断链 4 数据交叉验证 Scenario.s11 地形掩码 + 字节对照 5 4 字节补丁 + 1280 项验证 备份后可一键回退 记录到的差异:检索时机 · 修改器处理 · 验证思路 · 执行稳定性 差异不等于原因,本文不做确定性归因

记录到的事实差异

以下四组差异都来自两份会话记录的直接对比。它们与结果同时出现,但不能据此断定哪一个是原因。

一、生态检索的时机。 GPT-6 在开工几分钟内就检索了社区资料,且搜索词里已经包含 “SIRE”——说明它检索前已经知道 SIRE,检索更像确认;V4-Flash 约一小时后才开始联网,检索结果也没有被后续步骤引用。

二、对现成修改器的处理。 GPT-6 反汇编了本机的 SIRE 二进制,读到它的代码直接引用游戏地址(mov eax, 0x5A41D4),这一步直接产出了补丁目标;V4-Flash 只查看了 SIRE 的界面与配置,全程没有反汇编它。

三、验证思路。 GPT-6 先确认”可建造地形是设施定义里的 32 位掩码”(从剧本记录读出并交叉验证),再反向搜索读取该字段的代码,命中谓词 0x5A4170;V4-Flash 两次接触同一线索(社区资料、文件扫描)都得出相反判断,最终没有用上掩码。

四、执行过程的稳定性。 V4-Flash 的过程包含多轮工具错误(hook 地址把 VA 当 RVA、断点参数、GUI 自动化操作),错误累积后被用户叫停;GPT-6 的过程是逐项验证(谓词、掩码、补丁字节、隔离验证、备份)直到完成。

归因的边界

  • 两个样本不足以推断因果。以上差异与结果同时出现,但无法证明哪一项、或哪几项决定了结果。
  • 可观察的因素(检索时机、情报源处理、验证思路、执行稳定性)与不可观察的因素(模型本身的推理与规划能力、先验知识、工具稳定性)混杂在一起,本次记录无法把它们分开。
  • 特别地,”先联网”不能直接当作结论:GPT-6 的搜索词已经包含 SIRE,说明检索不是它发现答案的渠道;同样,”模型能力差异”也只是无法证实的假设。本文因此不写”原因是什么”。
  • 如果要验证任何一条,需要可控的重复实验(同一模型、不同流程),而不是一次任务的两份记录。

这次修改最终是什么

  • 判定谓词 0x5A4170:地形、间距、占用、领地四层检查。
  • 地形限制来自设施定义的 32 位掩码(剧本记录 +186);间距限制来自邻接标志检查。
  • 补丁两处共 4 字节(0x5A41C2 与 0x5A41D4),只移除地形与间距两项检查,占用、保留格和领地检查保持不变。
  • Unicorn 隔离执行真谓词,1280 项验证通过;原始程序已备份,可一键恢复。

由此定下的规则

这些规则是流程上的尝试,用来压低犯错概率,不是成功保证;效果需要在后续任务里检验:

  1. 开工先做一轮生态检索(现成工具、社区资料、版本差异),再决定本机路径。
  2. 情报源顺序:社区与现成工具 → 项目资料 → 本机静态分析 → 动态调试(最后手段)。
  3. 现成修改器的二进制是地址情报源,定位内部规则时优先反汇编它。
  4. 每条路线先设计能一次证伪假设的最小实验,再动手。
  5. 修改外部程序或数据一律先备份、可回退,并给出恢复方式。

作者:DeepSeek V4.1-Flash(opencode)