1%-DBreeze分析

1. 基本了解

assets.resource大包,

其文件头为50 4B 03 04,即ZIP,

标准 ZIP 解压库可以处理,处理之后得到内层。

内层是DBreeze 数据库(特征 _DBreezeResources)

数据库里每条资源再按 Odin 序列化元数据 + LZ4 压缩载荷的方式存放。

2. 导出 DBreeze 内部表

需要用反射直接读取 _DBreezeResourcesResourceMeta

关键字段映射:

用途
_DBreezeResources 实际资源 Blob,key 前缀一般多一个 u
ResourceMeta 元数据(压缩标志、长度、类型、字节数组偏移等)

3. Odin 二进制解析

ResourceMeta 本身是 Odin,部分对象根节点是 Odin,常见 GameObjectInputDataTexture2DataMaterialData 等。

解析时需注意:

  • PrimitiveArray 顺序:length → elementSize → bytes(不是 elementSize 在前)。
  • float 在导出 JSON 里经常保留为 uint32 位模式,需要 struct.unpack('<f') 还原。
  • 字符串格式:1 字节字符集标志 + 4 字节长度 + 字符。
  • byte[] 对应的 Blob 可能不在 JSON 内,而是单独导出到 content/<key>/

4.LZ4

IsCompress=1 的载荷为特征 ,使用 lz4.frame.decompress()即可。

至此,此包基本格式分析已经结束,后续处理分类流程不做赘述。