跳转到主要内容

可复用工具与证据产物

本章只登记仓库中可复用的工具和诊断入口;工具的具体参数以脚本的 --help 和对应项目文档为准。

静态分析与重编译

工具路径用途产物/注意事项
patch_nso.pydm/tools/patch_nso.pyNSO 重写、规则集和按 build ID 的 cuts原始字节校验、记录模块 build ID;游戏特例必须进入 profile/cut 表
nso2elf.pydm/tools/nso2elf.pyNSO 转 ELF 供 Ghidra/objdump 使用保留输入哈希和 image base
nso_fnmap.pydm/tools/nso_fnmap.py在版本更新后映射函数/全局地址每个映射必须回到反汇编复核
shader_split.pydm/gfx/tools/shader_split.py扫描 shader 容器、UnityFS、SARC 和内嵌 GLSLC同时保存 map/facts/pairs;不要把 hash 当作跨游戏语义
dmsh_build.pydm/gfx/tools/dmsh_build.py构建/翻译 shader 包保存失败 shader 的 VS/FS/program 组合
dmsh_chain.pydm/gfx/tools/dmsh_chain.py串联 shader 处理步骤让离线产物可重建,不依赖设备现场
c1_guard.pydm/gfx/tools/c1_guard.py检查 shader/编译器输出的回归约束适合放进 CI 或构建前检查

运行时取证

仓库已有的 DM_FS、DM_SVC、DM_THR、DM_WATCH、DM_WATCH_STALL 等开关可用于定位服务、线程和停滞。图形侧的 NX_TRACE_* 开关、pass/command/UUB/sampler/glyph 追踪应按需短时开启;高频日志可能改变竞态,必须记录“诊断开关本身可能扰动时序”。

推荐产物目录:

evidence/<date>/<experiment>/
  manifest.txt       # commit、设备、环境、输入哈希
  commands.txt       # 实际执行的命令
  logcat-or-host.log
  draws.tsv
  memory.tsv
  screenshots/
  verdict.md

设备验证

设备实验必须显式记录序列号、API 版本、GPU、驱动、页大小、安装包哈希和数据目录。多台 ADB 设备时,所有命令都使用明确的 adb -s <serial>;不要用当前默认设备替代目标设备。游戏本体、密钥、存档和用户数据不进入手册分支。

工具的边界

工具能缩短取证,不会自动证明契约。每个工具条目都应附:输入格式、输出字段、已知误报、适用游戏/SDK、最小回归用例。

手册本身的发布前检查可运行:

sh scripts/check_handbook.sh

它只检查文档相对链接、symptom-index.tsv 列数、私有标识扫描和 Git whitespace,不读取游戏数据,也不要求 设备在线。

若需要导出不带原项目源码的独立手册目录,可使用 scripts/export_handbook.sh;它不是自动推送工具,远端和 仓库可见性仍需维护者确认。