压缩包伪加密
zip文件格式中存在数据区和目录区的加密标志位。通过对目录区的加密标志位进行修改可实现伪加密(只修改数据区的加密标志位无法实现)。伪加密表现为该压缩文件并未加密,在解压时需要用户输入解压密码,但实际的解压密码是不存在的。
图中"50 4B 03 04"是zip文件的文件标识头,为固定值;"50 4B 01 02"是目录区文件标识头,长度固定;"08 00"和"09 00"分别为数据区和目录区的加密标志位。
解决方式
zip文件是否加密是通过标识符来显示的,在每个文件的文件目录字段有一位专门标识了文件是否加密,将其设置为00表示
该文件未加密,如果成功解压则表示文件为伪加密,如果解压出错说明文件为真加密。以目录区的加密标志位的"50"为第一位为起始,找到第9位数值,一般此处数值为奇数即可表示为加密,这道题里数值为"09",将其改为"00",修改后保存尝试进行解压,发现解压成功,得到flag。