如何检测文件使用的压缩类型? (假设未指定 .zip、.gz、.xz 或任何其他扩展名)。
此信息是否存储在该文件的标头中的某个位置?
你可以确定它是likely通过查看前几个字节来确定是其中一种格式。然后你应该测试一下是否真的is其中之一,使用该格式的相关实用程序的完整性检查,或者通过实际进行解压缩。
您可以在说明中找到标头格式:
-
Zip (.zip) 格式说明,以 0x50、0x4b、0x03、0x04 开头(除非为空 — 那么最后两个是 0x05、0x06 或 0x06、0x06)
-
Gzip (.gz) 格式说明,以 0x1f、0x8b、0x08 开头
-
xz (.xz) 格式说明,以 0xfd、0x37、0x7a、0x58、0x5a、0x00 开头
Others:
-
zlib (.zz) 格式说明,以两个字节(以位为单位)0aaa1000 bbbccccc 开始,其中选择 ccccc,以便将视为 int16 的第一个字节乘以 256,加上视为 int16 的第二个字节是 31 的倍数。例如: 01111000(位) = 120( int16), 10011100(bits) = 156(int16), 120 * 256 + 156 = 30876,它是 31 的倍数
- 压缩 (.Z) 以 0x1f、0x9d 开头
- bzip2 (.bz2) 以 0x42、0x5a、0x68 开头
-
Zstandard (.zstd) 格式说明,帧以 4 字节幻数开头,使用小尾数法 format
0xFD2FB528
,可跳过的帧开始于0x184D2A5?
(问号是0到F之间的任意值),字典以0xEC30A437
.
- 还有一些格式魔法数据库来自
file
command
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)