未压缩 Adobe 的 Flash XFL 格式仍然保持大量压缩内容。有人知道这些二进制 *.dat 文件的规范吗?
问问题
3859 次
2 回答
8
*.dat 文件存储各种类型的媒体内容。到目前为止,我能说的是:
- 图像以 JPEG 格式存储,没有附加信息。这意味着只需重命名 *.dat 即可获得原始图像。这样的文件以 #{FFD8} 开头
- 图像以某种内部 RAW 格式存储。使用逆向工程,我可以说例如带有原始像素数据#{FFFFFFFF}(1x1)的位图存储为:
0305 ;原始位图标识符? 0400 ;解压后的行数据长度 0100 ;宽度 0100 ;高度 00000000 ;未知 14000000 ;宽度以缇为单位 00000000 ;未知 14000000 ;高度以缇为单位 00 ;一些标志 - 01=图像具有透明度 变体1: 01 ;压缩数据标志 0200 ;压缩块的长度 7801 ;压缩块 0A00 ;压缩块的长度 FBFFFFFF7F0009FA03FD ;压缩块 0000 ;压缩流结束 变体2: 00 ;数据未压缩 00000000 00000000 ;未知数据 - 总是零? FFFFFFFF ;原始未压缩 ARGB 数据
其中解压缩的数据是具有存储类型的像素:ARGB,因此使用大小信息应该足以从中获取图像。它使用 ZLIB 压缩 (www.zlib.net) Flash 使用压缩级别 1,但可以使用任何级别(但这不是必需的,因为源通常完全压缩。
- SOUNDS 以 RAW 格式存储在 DAT 文件中,可以使用来自 DOMSoundItem 的信息轻松制作 WAV 文件。
- 其余的还不得而知。
其余的 *.dat 类型尚不清楚。
DAT 文件的名称也很重要!Flash 以某种方式从名称中获取数字,使用十六进制形式的校验和等名称 (9BB551621D3E2138FECA2F04469531D7.dat) 使 Flash 崩溃!使用 [_.-] 之类的字符也会导致内容无法加载(但不会崩溃)
于 2010-11-02T23:07:17.527 回答
0
文件名本身并不重要,但您当然需要在其他(通常是 xml)文件中找到对文件名的引用。
于 2012-02-17T13:57:12.843 回答