一个zip文件主要由三部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。
example:ctf中的zip伪加密
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
※※※09 00:全局方式位标记(有无加密) 头文件标记后2bytes
08 00:压缩方式
50 A3:最后修改文件时间
A5 4A:最后修改文件日期
21 38 76 65 CRC-32校验(65763821)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
08 00:文件名长度
00 00:扩展记录长度
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
※※※09 00:全局方式位标记(有无加密,伪加密的关键) 目录文件标记后4bytes
08 00:压缩方式
50 A3:最后修改文件时间
A5 4A:最后修改文件日期
21 38 76 65 CRC-32校验(65763821)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
08 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
5A 00 00 00:目录区尺寸大小
3F 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
由此可见本例为真加密???,但是题目写着伪加密,先改将09改为00
再打开修改后的压缩文件,得到flag
再对一开始的压缩包进行解密
发现没有密码???说明真是伪加密,但两个09 09却还是伪加密,这不是跟前面的知识点有矛盾吗
上网瞅瞅BUUCTF zip伪加密(发现伪加密的惊天大秘密)_伪加密linux-CSDN博客
总结:都是00 就是未加密 前一个00 后一个09 就是伪加密 都是09 一般是真加密,但是也可能是伪加密(我的愚见)。
ps:全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性!
第二个数字为奇数时 –>加密
第二个数字为偶数时 –>未加密
标签:文件,00,加密,zip,标记,压缩,09 From: https://www.cnblogs.com/smallhuang/p/17991800