最近刷隐写的时候,zip这类格式的题型还是不少的,今天打算复习一下zip的文件格式内容。
ZIP文件构成
一个ZIP文件由三部分组成:
- 压缩源文件数据区
- 压缩源文件目录区
- 压缩源文件目录结束标志
我们在winhex视图下,看一个例子:
- 第一个标记处:
- 50 4B 03 04:文件头标记 4bytes。更多文件头标识,
- 14 00:解压文件所需pkware版本 2bytes
- 00 00:全局方式位标记 2bytes,该位置为有无加密的标志09 00则为加密方式。上图为未加密所以为00 00
- 画圈处则为CRC32值,图中为8A90ABA9。
- 第二个标记处:
- 50 4B 01 02:目录中文件文件头标识 4bytes
- 1F 00:压缩使用的pkware版本 2bytes
- 14 00:解压文件所需pkware版本 2bytes
- 00 00:全局方式位标记 2bytes
那么如何判断一个文件是否加密码了呢?
未加密特征
压缩源文件数据区的全局加密应当为00 00且压缩源文件目录区的全局方式位标记应当为00 00。如上图。
假加密(伪加密)特征
压缩源文件数据区的全局加密应当为00
00且压缩源文件目录区的全局方式位标记应当为09 00。如下图:
加密特征
压缩源文件数据区的全局加密应当为09
00且压缩源文件目录区的全局方式位标记应当为09 00。如下图:
总结
全局方式位标记作用:共四个数字,前面我们看到有00 00,也有09
00。即四个数字中只有第二个数字对其有影响,为奇数时加密,偶数时未加密。其他无论为何值都不影响它的加密属性。放两张图以供参考。来源:
参考文章
https://blog.csdn.net/moxiajuzi/article/details/52752027
https://blog.csdn.net/wclxyn/article/details/7288994