zip文件协议解析

说明

未加密的ZIP压缩包
工具:360压缩
压缩文件:
文件夹:folder, 文件夹folder下:test.txt、favicon.ico
字节序:小端(压缩包都是以小端字节序存储)

二进制打开压缩包如下
50 4B 03 04 14 00 00 00 08 00 17 53 A7 54 18 4C
49 51 7A 01 00 00 7E 04 00 00 12 00 00 00 66 6F
6C 64 65 72 2F 66 61 76 69 63 6F 6E 2E 69 63 6F
8D 94 3D 4B 03 41 10 86 C7 18 34 58 C4 10 42 B0
D2 60 65 2D 62 9D DA D2 5A 2C 72 16 22 FE 02 B1
48 23 22 6A 6D 21 22 62 61 11 24 D8 5E 2A 09 36
77 95 88 88 A4 B0 B4 B2 10 91 20 7E C4 67 EE 83
DC AD 77 26 1B 1E 66 33 3B EF EC CE 4C 88 C8 08
9F 42 41 6D 45 D6 B3 22 65 11 99 03 5C 78 7C BF
B7 38 1B 76 B5 5C 4B 5A 8E 55 C4 56 02 72 83 34
D1 45 7C 15 1E E0 93 3C 1F 2D B7 76 94 96 03 7F
16 16 60 05 16 A1 84 46 B5 BD 08 6F 9A 33 41 5B
26 B6 61 BB 7A 87 F5 0D 5D 68 7A F7 C6 F5 CA B6
D6 65 E8 CF 12 E2 D2 38 86 8C A1 7F 19 42 17 D2
E1 9D A7 B6 63 ED D9 6E AD CA BB B5 EE EB 84 B8
57 38 87 43 B8 45 A3 75 F5 CF 9D 9A DA 2E FE 7D
F6 B3 EC AF D8 87 F5 6A EC 1A 84 EF 2B C1 5D CA
7B F4 9E 69 66 D3 8C E8 D5 2E 85 7A FC 39 F6 37
FF E8 2F A3 3E DB 7F DB 13 6C C0 32 5C 04 39 4D
AD CE 73 87 BB 75 5E 69 FD 8A E3 58 CF 58 FD 1D
6D C1 3C B5 67 B0 EF 03 75 7D EE 21 6F CC AF 61
C4 68 FF 1E A9 3B 29 6F 07 8A 86 7E 0A 4E 82 DC
6D 66 BB 89 2D 40 AC 2F 01 6D E6 3E 11 D5 07 39
B4 8E 3C 8C 45 7C 3A 57 ED 7B 38 7B ED D7 2A 98
F2 C4 45 5F 35 87 E6 D4 3C 0A 73 B6 FE FC 03 F4
7A 22 3F 33 22 5F 50 07 99 84 51 FF 6C B7 EE E3
7D 1D 0F CE E0 00 54 A3 DA 5F 50 4B 03 04 0A 00
00 00 00 00 89 50 03 55 8C E5 65 BF 05 00 00 00
05 00 00 00 0F 00 00 00 66 6F 6C 64 65 72 2F 74
65 73 74 2E 74 78 74 45 55 4C 41 52 50 4B 03 04
14 00 00 00 00 00 CE 44 04 55 00 00 00 00 00 00
00 00 00 00 00 00 07 00 00 00 66 6F 6C 64 65 72
2F 50 4B 01 02 3F 00 14 00 00 00 08 00 17 53 A7
54 18 4C 49 51 7A 01 00 00 7E 04 00 00 12 00 24
00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 66
6F 6C 64 65 72 2F 66 61 76 69 63 6F 6E 2E 69 63
6F 0A 00 20 00 00 00 00 00 01 00 18 00 00 2B 4B
9E B9 61 D8 01 AD 03 ED B9 9A A7 D8 01 B2 84 5B
83 9A A7 D8 01 50 4B 01 02 3F 00 0A 00 00 00 00
00 89 50 03 55 8C E5 65 BF 05 00 00 00 05 00 00
00 0F 00 24 00 00 00 00 00 00 00 20 00 00 00 AA
01 00 00 66 6F 6C 64 65 72 2F 74 65 73 74 2E 74
78 74 0A 00 20 00 00 00 00 00 01 00 18 00 C8 2B
F5 55 DD A6 D8 01 3F 2A ED B9 9A A7 D8 01 BA 0D
AB 4A DD A6 D8 01 50 4B 01 02 3F 00 14 00 00 00
00 00 CE 44 04 55 00 00 00 00 00 00 00 00 00 00
00 00 07 00 24 00 00 00 00 00 00 00 10 00 00 00
DC 01 00 00 66 6F 6C 64 65 72 2F 0A 00 20 00 00
00 00 00 01 00 18 00 B2 84 5B 83 9A A7 D8 01 03
D1 8F CE 9A A7 D8 01 81 02 E9 5A 9A A7 D8 01 50
4B 05 06 00 00 00 00 03 00 03 00 1E 01 00 00 01
02 00 00 0C 00 48 65 6C 6C 6F 20 57 6F 72 6C 64
00
解析
50 4B 03 04     -> 本地文件头标识符 (0x04034b50)
14 00           -> 提取所需要的版本
00 00           -> 通用位标志 (未加密)
08 00           -> 压缩方法 (0x08)
17 53           -> 最后修改文件时间 时分秒(0x5317)
A7 54           -> 最后修改文件日期 年月日(0x54A7)
18 4C 49 51     -> CRC32 (0x51494C18)
7A 01 00 00     -> 压缩大小 (0x017A)(378)
7E 04 00 00     -> 未压缩大小 (0x047E)(1150)
12 00           -> 文件名长度 (0x12)(18)
00 00           -> 额外字段长度 (0x0)
66 6F 6C 64 65 72 2F 66 61 76 69 63 6F 6E 2E 69 63 6F
                -> 文件名 (folder/favicon.ico)
8D 94 3D 4B 03 41 10 86 C7 18 34 58 C4 10 42 B0
D2 60 65 2D 62 9D DA D2 5A 2C 72 16 22 FE 02 B1
48 23 22 6A 6D 21 22 62 61 11 24 D8 5E 2A 09 36
77 95 88 88 A4 B0 B4 B2 10 91 20 7E C4 67 EE 83
DC AD 77 26 1B 1E 66 33 3B EF EC CE 4C 88 C8 08
9F 42 41 6D 45 D6 B3 22 65 11 99 03 5C 78 7C BF
B7 38 1B 76 B5 5C 4B 5A 8E 55 C4 56 02 72 83 34
D1 45 7C 15 1E E0 93 3C 1F 2D B7 76 94 96 03 7F
16 16 60 05 16 A1 84 46 B5 BD 08 6F 9A 33 41 5B
26 B6 61 BB 7A 87 F5 0D 5D 68 7A F7 C6 F5 CA B6
D6 65 E8 CF 12 E2 D2 38 86 8C A1 7F 19 42 17 D2
E1 9D A7 B6 63 ED D9 6E AD CA BB B5 EE EB 84 B8
57 38 87 43 B8 45 A3 75 F5 CF 9D 9A DA 2E FE 7D
F6 B3 EC AF D8 87 F5 6A EC 1A 84 EF 2B C1 5D CA
7B F4 9E 69 66 D3 8C E8 D5 2E 85 7A FC 39 F6 37
FF E8 2F A3 3E DB 7F DB 13 6C C0 32 5C 04 39 4D
AD CE 73 87 BB 75 5E 69 FD 8A E3 58 CF 58 FD 1D
6D C1 3C B5 67 B0 EF 03 75 7D EE 21 6F CC AF 61
C4 68 FF 1E A9 3B 29 6F 07 8A 86 7E 0A 4E 82 DC
6D 66 BB 89 2D 40 AC 2F 01 6D E6 3E 11 D5 07 39
B4 8E 3C 8C 45 7C 3A 57 ED 7B 38 7B ED D7 2A 98
F2 C4 45 5F 35 87 E6 D4 3C 0A 73 B6 FE FC 03 F4
7A 22 3F 33 22 5F 50 07 99 84 51 FF 6C B7 EE E3
7D 1D 0F CE E0 00 54 A3 DA 5F
                -> 压缩后的文件数据

50 4B 03 04     -> 本地文件头标识符 (0x04034b50)
0A 00           -> 提取所需要的版本
00 00           -> 通用位标志 (未加密)
00 00           -> 压缩方法 (未压缩)
89 50           -> 最后修改文件时间 时分秒(0x5089)
03 55           -> 最后修改文件日期 年月日(0x5503)
8C E5 65 BF     -> CRC32 (0xBF65E58C)
05 00 00 00     -> 压缩前大小 (0x05)
05 00 00 00     -> 压缩后大小 (0x05)
0F 00           -> 文件名长度 (0x0F)(15)
00 00           -> 额外字段长度
66 6F 6C 64 65 72 2F 74 65 73 74 2E 74 78 74
                -> 文件名 (folder/test.txt)
45 55 4C 41 52  -> 文件内容 (EULAR)

// 以下是文件夹的文件头
50 4B 03 04     -> 本地文件头标识符 (0x04034b50)
14 00           -> 提取所需要的版本
00 00           -> 通用位标志 (未加密)
00 00           -> 压缩方法 (未压缩)
CE 44           -> 最后修改文件时间 时分秒(0x44CE)
04 55           -> 最后修改文件日期 年月日(0x5504)
00 00 00 00     -> CRC32
00 00 00 00     -> 压缩前大小 (0x00)
00 00 00 00     -> 压缩后大小 (0x00)
07 00           -> 文件名长度 (0x07)
00 00           -> 额外字段长度
66 6F 6C 64 65 72 2F
                -> 文件名 (folder/)
                -> 无文件数据


50 4B 01 02     -> 中央文件头标识符 (0x02014b50)
3F 00           -> 版本
14 00           -> 提取所需的版本
00 00           -> 通用位标志
08 00           -> 压缩方法
17 53           -> 最后修改文件时间 时分秒
A7 54           -> 最后修改文件日期 年月日
18 4C 49 51     -> CRC32
7A 01 00 00     -> 压缩大小
7E 04 00 00     -> 压缩前大小
12 00           -> 文件名长度
24 00           -> 额外字段长度
00 00           -> 文件注释长度
00 00           -> 磁盘号
00 00           -> 内部文件属性
20 00 00 00     -> 外部文件属性
00 00 00 00     -> 本地头的相对偏移量
66 6F 6C 64 65 72 2F 66 61 76 69 63 6F 6E 2E 69 63 6F
                -> 文件名 (folder/favicon.ico)
0A 00 20 00 00 00 00 00 01 00 18 00 00 2B 4B 9E B9 61
D8 01 AD 03 ED B9 9A A7 D8 01 B2 84 5B 83 9A A7 D8 01
                -> 额外字段内容
                -> 无文件注释

50 4B 01 02     -> 中央文件头标识符 (0x02014b50)
3F 00           -> 版本
0A 00           -> 提取所需的版本
00 00           -> 通用位标志
00 00           -> 压缩方法
89 50           -> 最后修改文件时间 时分秒
03 55           -> 最后修改文件日期 年月日
8C E5 65 BF     -> CRC32
05 00 00 00     -> 压缩大小
05 00 00 00     -> 压缩前大小
0F 00           -> 文件名长度
24 00           -> 额外字段长度
00 00           -> 文件注释长度
00 00           -> 磁盘号
00 00           -> 内部文件属性
20 00 00 00     -> 外部文件属性
AA 01 00 00     -> 本地头的相对偏移量 (0x01AA)(426)
66 6F 6C 64 65 72 2F 74 65 73 74 2E 74 78 74
                -> 文件名 (folder/test.txt)
0A 00 20 00 00 00 00 00 01 00 18 00 C8 2B F5 55 DD A6
D8 01 3F 2A ED B9 9A A7 D8 01 BA 0D AB 4A DD A6 D8 01
                -> 额外字段内容
                -> 无文件注释

// 此处省略另一个中央目录头

50 4B 05 06     -> 中心目录结尾标识符 (0x06054b50)
00 00           -> 当前磁盘编号
00 00           -> 目录区开始磁盘编号
03 00           -> 本磁盘上纪录总数 (0x03)
03 00           -> 目录区中纪录总数 (0x03)
1E 01 00 00     -> 目录区尺寸大小 (0x011E(286)) (中央目录总的字节数)
01 02 00 00     -> 目录区对第一张磁盘的偏移量 (0x0201) (第一个目录区在此文件的位置)
0C 00           -> ZIP文件注释长度 (12)
48 65 6C 6C 6F 20 57 6F 72 6C 64 00
                -> ZIP 文件注释内容 (Hello World\0)

ZIP协议
链接给出的是zip协议的各个版本说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值