1 Here are the notes I made while working through the ZIP file specification.
5 local file header signature 4 bytes (0x04034b50)
6 version needed to extract 2 bytes
7 general purpose bit flag 2 bytes
8 compression method 2 bytes
9 last mod file time 2 bytes
10 last mod file date 2 bytes
12 compressed size 4 bytes
13 uncompressed size 4 bytes
14 file name length 2 bytes
15 extra field length 2 bytes
17 |sig |v |g |c |t |d |crc |csz |usz |n |x |
18 PK.. ## 00 00 ?? ?? xxxx ???? ???? ?? 00
19 <file name><file data>
23 central file header signature 4 bytes (0x02014b50)
24 version made by 2 bytes
25 version needed to extract 2 bytes *
26 general purpose bit flag 2 bytes *
27 compression method 2 bytes *
28 last mod file time 2 bytes *
29 last mod file date 2 bytes *
31 compressed size 4 bytes *
32 uncompressed size 4 bytes *
33 file name length 2 bytes *
34 extra field length 2 bytes *
35 file comment length 2 bytes
36 disk number start 2 bytes
37 internal file attributes 2 bytes
38 external file attributes 4 bytes
39 relative offset of local header 4 bytes
41 file name (variable size)
42 extra field (variable size)
43 file comment (variable size)
45 |sig |vm|vx|g |c |d |t |crc |csz |usz |n |x |cm|dn|ia|xa |roff|
46 PK.. ## ## 00 00 ?? ?? xxxx ???? ???? ?? 00 00 00 00 xxxx ????
48 End of central directory:
50 end of central dir signature 4 bytes (0x06054b50)
51 number of this disk 2 bytes
52 number of the disk with the
53 start of the central directory 2 bytes
54 total number of entries in the
55 central directory on this disk 2 bytes
56 total number of entries in
57 the central directory 2 bytes
58 size of the central directory 4 bytes
59 offset of start of central
60 directory with respect to
61 the starting disk number 4 bytes
62 .ZIP file comment length 2 bytes
63 .ZIP file comment (variable size)
65 |sig |n1|n2|e |ne|size|off |cm|
66 PK.. 00 00 ?? ?? ???? ???? 00