zip伪加密

一个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:全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性! 
第二个数字为奇数时 –>加密 
第二个数字为偶数时 –>未加密

 

posted @ 2024-01-27 19:00  small黄  阅读(55)  评论(0编辑  收藏  举报