ZIP文件伪加密
ZIP文件伪加密
原创 已于 2026-05-08 10:57:26 修改 · 公开 · 402 阅读 · 12 · 3 · 本内容遵循CC 4.0 BY-SA版权协议 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 GEO检测 · 编辑
文章链接:https://blog.csdn.net/hacker_51/article/details/160876925
什么是 ZIP 文件
一个 ZIP 文件 由 三个部分组成:
压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

压缩源文件数据区
数据区主要记录了压缩前后文件的元数据以及存放压缩后的文件,记录格式如下:
第0~3个字节:50 4B 03 04,代表了文件头标志
第4~5个字节:14 00,代表了解压文件所需的pkware版本
第6~7个字节:00 00,代表了全局方式位标记(用来判断有没有加密)
第8~9个字节:08 00,代表了压缩方式
第10~11个字节:1D 9B,代表了最后修改文件的时间
第12~13个字节:3D 56,代表了最后修改文件的日期
第14~17个字节:5A 48 63 5C,是zip文件的crc-32校验值
第18~21个字节:77 00 00 00,是文件压缩后的尺寸
第22~25个字节:B1 00 00 00,是文件未压缩前的尺寸
第26~27个字节:10 00,代表文件名长度
第28~29个字节:00 00,代表扩展记录长度
压缩源文件目录区
压缩源文件目录区是由一系列压缩源文件目录记录所组成,一条压缩文件目录记录对应数据区中的一个压缩文件记录,压缩源文件目录记录由以下部分构成:
1、第0~3个字节:50 4B 01 02,代表了目录文件头标记
2、第4~5个字节:02 3F,代表了压缩使用的pkware版本
3、第6~7个字节:14 00,代表了解压文件所需的pkware版本
4、第8~9个字节:00 00,代表了全局方式位标记(用来判断是否为伪加密)
5、第10~11个字节:08 00,代表了压缩方式
6、第12~13个字节:1D 9B,代表了最后修改文件的时间
7、第14~15个字节:3D 56,代表了最后修改文件的日期
8、第16~19个字节:5A 48 63 5C,是zip文件的crc-32校验值
9、第16~19个字节:77 00 00 00,是文件压缩后的大小
10、第24~27个字节:B1 00 00 00,是文件未压缩前的大小
11、第28~29个字节:10 00,代表文件名长度
12、第30~31个字节:00 00,代表扩展字段长度
13、第32~33个字节:00 00,代表文件注释长度
压缩源文件目录结束标志
1、第0~3个字节:50 4B 05 06,代表目录结束标记
2、第4~5个字节:00 00,代表当前磁盘编号
3、第6~7个字节:00 00,代表目录区开始磁盘编号
4、第8~9个字节:01 00,代表本磁盘上纪录总数
5、第10~11个字节:01 00,代表目录区中纪录总数
6、第12~15个字节:62 00 00 00,代表目录区尺寸大小
7、第16~19个字节:A5 00 00 00,代表目录区对第一张磁盘的偏移量
8、第20~21个字节:00 00,代表zip文件注释长度
题目思路与题解
zip伪加密原理:
zip伪加密是在文件头的加密标志位做修改,进而再打开文件时被识别为加密压缩包。
把压缩源文件目录区(或数据区)的全局方式位标记的 01 00 或 09 00 改为 00 00 就可以去除密码
把压缩源文件目录区(或数据区)的全局方式位标记的 00 00 改为 01 00 或 09 00 就可以添加密码提示。
例子:


觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭
wechat pay
ali pay