带有PKWARE WIN32 16字节魔数头的文件属于什么格式?
排查方向与已知匹配格式说明
- 你提到的
PKWARE WIN32(十六进制0x50 0x4B 0x57 0x41 0x52 0x45 0x00 0x00 0x00 0x00 0x00 0x57 0x49 0x4E 0x33 0x32)魔数,是PKWARE公司出品的Windows平台归档/备份类工具生成的文件分片标记,最常见于以下两类场景:- 旧版PKZIP for Windows的分段归档(跨卷压缩包)的分片头部,当压缩包被拆分为多份小文件存储时,非首分片就会带有这个头部标识
- 部分使用PKWARE SDK开发的备份/同步工具生成的增量分片文件,这类工具为了实现断点续传、增量同步,会把完整文件按固定大小切分,每个分片前附加该魔数头做校验
- 针对你观察到的「几乎无压缩」的现象,匹配上述场景的特征:如果原文件已经是压缩格式(PDF本身已经是压缩封装格式、JPG/PNG等多媒体文件),PKZIP等工具的存储模式(仅归档不压缩)就会输出和原文件大小几乎一致的分片文件,仅增加少量头部标识开销
- 针对PDF分片的匹配逻辑:你看到的不带头部的PDF前半段、带该魔数头的PDF后半段,本质是完整PDF被上述分片工具按固定大小切割后的不同分片,首分片保留原始PDF的
%PDF-头部,缺失尾部%%EOF;后续分片附加工具的魔数头,保留原始PDF的后半段内容所以能看到%%EOF标识 - 验证方法:
- 先提取所有带该魔数的分片的魔数头之后的二进制内容,丢弃前16字节的魔数段
- 按分片的先后顺序(可以通过魔数前的偏移标识判断顺序,你提到的「头之前的若干字节可预判位置」就是分片序号/偏移标记)拼接首分片(无该魔数的前半段)+ 所有后续分片的有效内容
- 拼接后的文件可以直接用PDF阅读器打开验证完整性
- 非PDF文件出现该魔数的逻辑一致:都是被同一套分片工具处理过的归档分片,只要按顺序拼接后就能恢复原始文件
内容的提问来源于stack exchange,提问作者Hammer Bro.
相关产品推荐
相关产品推荐

