5

未压缩 Adob​​e 的 Flash XFL 格式仍然保持大量压缩内容。有人知道这些二进制 *.dat 文件的规范吗?

4

2 回答 2

8

*.dat 文件存储各种类型的媒体内容。到目前为止,我能说的是:

  1. 图像以 JPEG 格式存储,没有附加信息。这意味着只需重命名 *.dat 即可获得原始图像。这样的文件以 #{FFD8} 开头
  2. 图像以某种内部 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,但可以使用任何级别(但这不是必需的,因为源通常完全压缩。

  1. SOUNDS 以 RAW 格式存储在 DAT 文件中,可以使用来自 DOMSoundItem 的信息轻松制作 WAV 文件。
  2. 其余的还不得而知。

其余的 *.dat 类型尚不清楚。

DAT 文件的名称也很重要!Flash 以某种方式从名称中获取数字,使用十六进制形式的校验和等名称 (9BB551621D3E2138FECA2F04469531D7.dat) 使 Flash 崩溃!使用 [_.-] 之类的字符也会导致内容无法加载(但不会崩溃)

于 2010-11-02T23:07:17.527 回答
0

文件名本身并不重要,但您当然需要在其他(通常是 xml)文件中找到对文件名的引用。

于 2012-02-17T13:57:12.843 回答