---
name: wowdump
description: 用 wowdump 只读调查 WoW 内存、RVA、结构布局和 Lua/native 关联，保存 EXE/DLL 与配方，或将配方迁移到指定游戏 build。支持静态分析、录制回放和恢复调查；普通游戏玩法问题不使用本 Skill。
---

# wowdump

CLI 负责读取、输入身份、归档和恢复；Agent 负责调查方向、结构推理和证据判断。普通读取无需先建配方。只读取目标进程，不注入、写入、冻结或调用游戏函数；现场读取支持 Windows x64。

首次需要执行 CLI 或升级后首次执行时，用 `wowdump describe --json` 查看当前命令。已有材料足以解释问题时，不为读取命令目录额外调用 CLI。参数不确定时查 `wowdump describe --command "memory read" --json` 或对应 `--help`；需要完整命令目录时才用 `describe --all`。`doctor` 检查环境，不验证游戏字段。

## build 的含义

- **存档 build**：配方所依据、正在归档或已经归档的游戏版本，也可以是本次正在调查的当前版本。其原件、方法和已确认结果构成迁移来源。
- **新 build**：本次迁移或兼容性验证的目标游戏版本，由用户要求和实际目标文件确定，不泛指尚未发布的未来版本。

这两个名称表示来源和目标。只调查、归档或验证当前版本时，无需提供新 build。版本身份还须核对 EXE/DLL 的精确哈希，不能只看 build 名称。

## 按任务选择入口

只读与当前任务有关的参考文档。配方保存可复用的定位方法、读取逻辑和输入身份；reader 是读取逻辑，profile 是声明式 reader，脚本 reader 则用于自定义算法。

| 用户要做什么 | 入口与按需参考 |
| --- | --- |
| 读取当前值、查对象或连续采样 | 已有配方用 `recipes run`，已有 profile 用 `query` / `observe`，自由调查用 `memory`，临时脚本用 `memory exec`。见[读取、脚本与回放](references/v2/runtime.md) |
| 静态定位、解释代码、在 RVA 与运行时地址之间转换 | 使用 `analyze`；复杂访问逻辑可调用已连接的官方 IDA MCP。见[静态分析与 IDA](references/v2/analysis.md) |
| 保存或核验配方、追溯定位、迁移到新 build、恢复操作 | 使用 `recipes save/finalize/history/migrate`，按报告恢复保存或迁移操作。执行前读[配方、保存与迁移](references/v2/recipes.md) |
| 解释已录制的读取、验证 reader 修改、比较对象快照 | 使用 `explain`、`regressions`、`memory structured/diff`。见[读取解释、回归与结构比较](references/v2/evidence.md) |
| 保存独立原件、切换资料库、导出或清理资产 | 见[Home 与资产管理](references/v2/storage.md) |
| 创建输入文档或转换旧格式 | 使用 `templates list/write`、`validate`；旧格式用 `assets migrate`。见[模板与格式迁移](references/v2/formats.md) |

## 何时完成

按用户指定的 build、对象、字段和结果验收。配方归档、磁盘规则定稿、读取验证和跨 build 迁移分别成立；只报告本次所需的结果及实际缺项。[配方完成条件](references/v2/recipes.md#按任务判断完成)说明各自依据。

已有证据足够就交付。只有矛盾、缺项或新增问题影响结论时才继续验证，并明确要解决的具体问题。没有新 build 不影响存档 build 的归档或验证；用户未询问未来兼容性时，不例行追加未来版本未验证的限制。

`semanticProof:false` 只表示该报告本身不提供字段业务含义的证明，不表示失败，也不否定独立的静态或现场证据。缺项只影响依赖它的字段和结论，不扩大为整个配方未完成。

## 调查中的关键判断

- **输入身份**：现场读取先核对当前进程实例、模块和哈希，不沿用旧会话地址。区分模块 RVA、对象字段位移和当前对象地址。调查位点时保留对应的完整 EXE/DLL 原件；运行时窗口不能替代原件，缺失时明确记录。
- **磁盘与现场**：核对当前模块身份后，可直接用 `VA = 当前模块基址 + RVA` 换算并读取，不必先采集。磁盘字节、运行时采集和当前进程是不同输入；地址对应不代表字节相同。仅在需要尚未保留的运行时字节时采集。
- **范围与缺口**：保留短读、缺页、截断、预算耗尽和重复匹配的范围。局部唯一只支持实际搜索范围；不能缩小竞争域或按旧 RVA 筛候选制造唯一。磁盘字节不能填充运行时缺页，未知值不能填成 0。
- **配方定稿与迁移**：定稿用存档 build 的精确磁盘原件核验规则，`source.value` 须有独立依据，静态证据可以满足纯静态任务。已定稿的原生方法直接搜索新 build；无需先补读存档 build 的运行时。外部分析按其明确声明的输入要求执行。
- **对象与含义**：身份、generation、backreference 或 storage 在读取中变化时，丢弃受影响采样并重新定位。字段含义结合访问代码、调用上下文、生命周期及与问题有关的观察判断；读取成功或值匹配不能单独证明所有语义。
- **解释证据**：已录制的读取优先引用 `explain`；静态结构或访问代码直接引用反汇编、源码和已有证据，无需为了说明而额外录制。区分实际读取与推断，不补造定位、指针或解码过程。

短脚本可以编排 CLI、解析和比较报告。只有现有能力无法表达实际需求时，才确定缺少的能力并考虑补工具。
