1%-DBreeze分析
1%-DBreeze分析
1. 基本了解
assets.resource大包,
其文件头为50 4B 03 04,即ZIP,
标准 ZIP 解压库可以处理,处理之后得到内层。
内层是DBreeze 数据库(特征 _DBreezeResources)
数据库里每条资源再按 Odin 序列化元数据 + LZ4 压缩载荷的方式存放。
2. 导出 DBreeze 内部表
需要用反射直接读取 _DBreezeResources 和 ResourceMeta 表
关键字段映射:
| 表 | 用途 |
|---|---|
_DBreezeResources |
实际资源 Blob,key 前缀一般多一个 u |
ResourceMeta |
元数据(压缩标志、长度、类型、字节数组偏移等) |
3. Odin 二进制解析
ResourceMeta 本身是 Odin,部分对象根节点是 Odin,常见 GameObjectInputData、Texture2Data、MaterialData 等。
解析时需注意:
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()即可。
至此,此包基本格式分析已经结束,后续处理分类流程不做赘述。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xingluo1909!
评论



