[Back to ARCHIVES SWAG index] [Back to Main SWAG index] [Original]
System of Origin : IBM
Original author : Phil Katz
FILE FORMAT
-----------
Files stored in arbitrary order. Large zipfiles can span multiple
diskette media.
Local File Header 1
file 1 extra field
file 1 comment
file data 1
Local File Header 2
file 2 extra field
file 2 comment
file data 2
.
.
.
Local File Header n
file n extra field
file n comment
file data n
Central Directory
central extra field
central comment
End of Central Directory
end comment
EOF
LOCAL FILE HEADER
-----------------
OFFSET LABEL TYP VALUE DESCRIPTION
------ ----------- ---- ----------- ----------------------------------
00 ZIPLOCSIG HEX 04034B50 ;Local File Header Signature
04 ZIPVER DW 0000 ;Version needed to extract
06 ZIPGENFLG DW 0000 ;General purpose bit flag
08 ZIPMTHD DW 0000 ;Compression method
0A ZIPTIME DW 0000 ;Last mod file time (MS-DOS)
0C ZIPDATE DW 0000 ;Last mod file date (MS-DOS)
0E ZIPCRC HEX 00000000 ;CRC-32
12 ZIPSIZE HEX 00000000 ;Compressed size
16 ZIPUNCMP HEX 00000000 ;Uncompressed size
1A ZIPFNLN DW 0000 ;Filename length
1C ZIPXTRALN DW 0000 ;Extra field length
1E ZIPNAME DS ZIPFNLN ;filename
-- ZIPXTRA DS ZIPXTRALN ;extra field
CENTRAL DIRECTORY STRUCTURE
---------------------------
OFFSET LABEL TYP VALUE DESCRIPTION
------ ----------- ---- ----------- ----------------------------------
00 ZIPCENSIG HEX 02014B50 ;Central file header signature
04 ZIPCVER DB 00 ;Version made by
05 ZIPCOS DB 00 ;Host operating system
06 ZIPCVXT DB 00 ;Version needed to extract
07 ZIPCEXOS DB 00 ;O/S of version needed for extraction
08 ZIPCFLG DW 0000 ;General purpose bit flag
0A ZIPCMTHD DW 0000 ;Compression method
0C ZIPCTIM DW 0000 ;Last mod file time (MS-DOS)
0E ZIPCDAT DW 0000 ;Last mod file date (MS-DOS)
10 ZIPCCRC HEX 00000000 ;CRC-32
14 ZIPCSIZ HEX 00000000 ;Compressed size
18 ZIPCUNC HEX 00000000 ;Uncompressed size
1C ZIPCFNL DW 0000 ;Filename length
1E ZIPCXTL DW 0000 ;Extra field length
20 ZIPCCML DW 0000 ;File comment length
22 ZIPDSK DW 0000 ;Disk number start
24 ZIPINT DW 0000 ;Internal file attributes
LABEL BIT DESCRIPTION
----------- --------- -----------------------------------------
ZIPINT 0 if = 1, file is apparently an ASCII or
text file
0 if = 0, file apparently contains binary
data
1-7 unused in version 1.0.
26 ZIPEXT HEX 00000000 ;External file attributes, host
;system dependent
2A ZIPOFST HEX 00000000 ;Relative offset of local header
;from the start of the first disk
;on which this file appears
2E ZIPCFN DS ZIPCFNL ;Filename or path - should not
;contain a drive or device letter,
;or a leading slash. All slashes
;should be forward slashes '/'
-- ZIPCXTR DS ZIPCXTL ;extra field
-- ZIPCOM DS ZIPCCML ;file comment
END OF CENTRAL DIR STRUCTURE
----------------------------
OFFSET LABEL TYP VALUE DESCRIPTION
------ ----------- ---- ----------- ----------------------------------
00 ZIPESIG HEX 06064B50 ;End of central dir signature
04 ZIPEDSK DW 0000 ;Number of this disk
06 ZIPECEN DW 0000 ;Number of disk with start central dir
08 ZIPENUM DW 0000 ;Total number of entries in central dir
;on this disk
0A ZIPECENN DW 0000 ;total number entries in central dir
0C ZIPECSZ HEX 00000000 ;Size of the central directory
10 ZIPEOFST HEX 00000000 ;Offset of start of central directory
;with respect to the starting disk
;number
14 ZIPECOML DW 0000 ;zipfile comment length
16 ZIPECOM DS ZIPECOML ;zipfile comment
ZIP VALUES LEGEND
-----------------
HOST O/S
VALUE DESCRIPTION VALUE DESCRIPTION
----- -------------------------- ----- ------------------------
0 MS-DOS and OS/2 (FAT) 5 Atari ST
1 Amiga 6 OS/2 1.2 extended file sys
2 VMS 7 Macintosh
3 *nix 8 thru
4 VM/CMS 255 unused
GENERAL PURPOSE BIT FLAG
LABEL BIT DESCRIPTION
----------- --------- -----------------------------------------
ZIPGENFLG 0 If set, file is encrypted
or 1 If file Imploded and this bit is set, 8K
ZIPCFLG sliding dictionary was used. If clear, 4K
sliding dictionary was used.
2 If file Imploded and this bit is set, 3
Shannon-Fano trees were used. If clear, 2
Shannon-Fano trees were used.
3-4 unused
5-7 used internaly by ZIP
Note: Bits 1 and 2 are undefined if the compression method is
other than type 6 (Imploding).
COMPRESSION METHOD
NAME METHOD DESCRIPTION
----------- ------ --------------------------------------------
Stored 0 No compression used
Shrunk 1 LZW, 8K buffer, 9-13 bits with partial clearing
Reduced-1 2 Probalistic compression, L(X) = lower 7 bits
Reduced-2 3 Probalistic compression, L(X) = lower 6 bits
Reduced-3 4 Probalistic compression, L(X) = lower 5 bits
Reduced-4 5 Probalistic compression, L(X) = lower 4 bits
Imploded 6 2 Shanno-Fano trees, 4K sliding dictionary
Imploded 7 3 Shanno-Fano trees, 4K sliding dictionary
Imploded 8 2 Shanno-Fano trees, 8K sliding dictionary
Imploded 9 3 Shanno-Fano trees, 8K sliding dictionary
EXTRA FIELD
OFFSET LABEL TYP VALUE DESCRIPTION
------ ----------- ---- ---------- ----------------------------
00 EX1ID DW 0000 ;0-31 reserved by PKWARE
02 EX1LN DW 0000
04 EX1DAT DS EX1LN ;Specific data for individual
. ;files. Data field should begin
. ;with a s/w specific unique ID
EX1LN+4
EXnID DW 0000
EXnLN DW 0000
EXnDAT DS EXnLN ;entire header may not exceed 64k
[Back to ARCHIVES SWAG index] [Back to Main SWAG index] [Original]