未压缩的 Adobe Flash XFL 格式仍保留大量压缩内容。有人知道这些二进制 *.dat 文件的规范吗?
*.dat 文件存储各种类型的媒体内容。到目前为止我能说的是:
- 图像存储为 JPEG,没有附加信息。这意味着只需重命名 *.dat 就足以获得原始图像。这样的文件以#{FFD8}开头
- 图像以某种内部 RAW 格式存储。使用逆向工程,我可以说,例如带有原始像素数据 #{FFFFFFFF} (1x1) 的位图存储为:
0305 ;raw bitmap identifier?
0400 ;length of decompressed row data
0100 ;width
0100 ;height
00000000 ;unknown
14000000 ;width in twips
00000000 ;unknown
14000000 ;height in twips
00 ;some flags - 01=image has transparency
variant 1.:
01 ;compressed data flag
0200 ;length of compressed chunk
7801 ;compressed chunk
0A00 ;length of compressed chunk
FBFFFFFF7F0009FA03FD ;compressed chunk
0000 ;end of compressed stream
variant 2.:
00 ;data are uncompressed
00000000
00000000 ;unknown data - always zero?
FFFFFFFF ;raw uncompressed ARGB data
其中解压缩的数据是存储类型为 ARGB 的像素,因此使用大小信息应该足以从中获取图像。它使用 ZLIB 压缩 (www.zlib.net) Flash 使用压缩级别 1,但可以使用任何级别(但这不是必需的,因为源通常是完全压缩的。
- 声音以 RAW 格式存储在 DAT 文件中,可以使用 DOMSoundItem 中的信息轻松制作 WAV 文件。
- 其余的还不得而知。
其余的 *.data 类型尚不清楚。
DAT 文件的名称也很重要!Flash 以某种方式从名称中获取数字,使用十六进制形式的校验和 (9BB551621D3E2138FECA2F04469531D7.dat) 之类的名称会使 Flash 崩溃!使用像 [_.-] 这样的字符也会导致内容无法加载(但不会崩溃)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)