zip解密

ZIP伪加密解析

1、zip组成

一个 ZIP 文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。

一个zip文件由这样三个部分组成_zip 文件结构_一只独孤的程序猿的博客-CSDN博客

2、实例

1715080319355-6dcd924b-4078-4eb9-a5e9-76d4f3a22d16.png

压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密) 头文件标记后2bytes
压缩源文件目录区:

50 4B 01 02:目录中文件文件头标记(0x02014b50)

3F 00:压缩使用的 pkware 版本

14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,伪加密的关键) 目录文件标记后4bytes
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记

3、全局方式位标记

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

4、辨别zip是真加密还是伪加密

1)无加密

压缩源文件数据区的全局加密应当为00 00 (504B0304两个bytes之后)
且压缩源文件目录区的全局方式位标记应当为00 00(504B0304四个bytes之后)

1715080319328-03d43b8d-5052-4baa-b2eb-195421aaf04c.png

2)伪加密

压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00

1715080319328-1e9272a7-c29d-4a5e-86d9-5b74ceb71adb.png

3)真加密

压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00 !

1715080319344-27b995e7-2657-4e8e-ac7a-8678c9e3f0fb.png

例题

把压缩包拖到winhex里打利用WinHex搜索,快速定位到目录区头文件标记处开,50 4B 03 04,这是压缩源文件数据区头文件标记,50 4B 01 02,这是压缩源文件目录区头文件标记,以50为第一处,找到第9、10处数值位置,第9处数值如果是奇数就代表有密码,偶数代表无密码

1715080159737-bf7beda1-57f9-4d7b-b94e-369cd0bab969.png

第九位是偶数属于伪加密

1715080259574-f206e589-159a-4f39-b5d5-eab6ba7198f2.png

把09 00 改成00 00保存后就能打开了

更新: 2024-11-13 10:02:41
原文: https://www.yuque.com/chaye-apqbl/vsc85q/mkm9yifo2oqfg2ak


http://example.com/2026/01/19/MISC/zip解密/index/
Author
chaye
Posted on
January 19, 2026
Licensed under