官方差分补丁链解析:.dt 包的 12 字节头与 ADDF/MODI 段

格式解析 · 2026-11-10 · datanger.cn

给老客户端做自动更新,最省事的路是直接复用原厂更新链——前提是搞清它的补丁包格式。幸运的是格式有现成参考:原厂的打包器(MakePatch)和升级器(DTUpdate)的文档实现就在工程树里,格式全部可读。

12 字节头

offset 0  magic[4]      磁盘上是 'ZBTD'(内存里 'DTBZ',bzip2 流)
                        或 'DTUD'(LZO1X)
offset 4  payload[8]    版本/长度信息

头之后是 UpdateSec 段,逐条描述变更:

用官方真包做格式对拍

格式理解对不对,拿官方历史包验证:37 个官方真包(2.0.25~2.0.62)逐包解析通过,每一条 MODI 的 skip-size 都能精确落位。这一步做完,自产补丁和官方补丁就共用同一条升级链。

给升级器动手术

原版 DTUpdate 有两个时代包袱,手术方案:

最后一条铁律:补丁永不含 DTUpdate.exe 自身——升级器直启后写自己所在目录,文件被锁,自锁死循环。

更新链的云端接线其实非常薄:一个文本列表 + 若干 .dt 文件。客户端启动时比对版本号,提示后下载应用,全程无需人工。