file_ex/magic/Magdir/zip
2023-08-07 17:12:06 +01:00

112 lines
3.2 KiB
Text

#------------------------------------------------------------------------------
# $File: zip,v 1.7 2021/04/26 15:56:00 christos Exp $
# zip: file(1) magic for zip files; this is not use
# Note the version of magic in archive is currently stronger, this is
# just an example until negative offsets are supported better
# Zip Central Directory record
0 name zipcd
>0 string PK\001\002 Zip archive data
!:mime application/zip
>>4 leshort x \b, made by
>>4 use zipversion
>>4 use ziphost
>>6 leshort x \b, extract using at least
>>6 use zipversion
>>12 ledate x \b, last modified %s
>>24 lelong >0 \b, uncompressed size %d
>>10 leshort x \b, method=
>>10 use zipcompression
# URL: https://en.wikipedia.org/wiki/Zip_(file_format)
# reference: https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT (Version: 6.3.9)
# Zip known compressions
0 name zipcompression
>0 leshort 0 \bstore
>0 leshort 1 \bShrinking
>0 leshort 6 \bImploding
>0 leshort 7 \bTokenizing
>0 leshort 8 \bdeflate
>0 leshort 9 \bdeflate64
>0 leshort 10 \bLibrary imploding
#>0 leshort 11 \bReserved by PKWARE
>0 leshort 12 \bbzip2
#>0 leshort 13 \bReserved by PKWARE
>0 leshort 14 \blzma
#>0 leshort 15 \bReserved by PKWARE
>0 leshort 16 \bCMPSC (IBM z/OS)
#>0 leshort 17 \bReserved by PKWARE
>0 leshort 18 \bIBM TERSE
>0 leshort 19 \bIBM LZ77 (z/Architecture)
>0 leshort 20 \bZstd (deprecated)
>0 leshort 93 \bZstd
>0 leshort 94 \bMP3
>0 leshort 95 \bxz
>0 leshort 96 \bJpeg
>0 leshort 97 \bWavPack
>0 leshort 98 \bPPMd
>0 leshort 99 \bAES Encrypted
>0 default x
>>0 leshort x \b[%#x]
# Zip known versions
0 name zipversion
# The lower byte indicates the ZIP version of this file. The value/10 indicates
# the major version number, and the value mod 10 is the minor version number.
>0 ubyte/10 x v%u
>0 ubyte%10 x \b.%u
# >0 leshort 0x09 v0.9
# >0 leshort 0x0a v1.0
# >0 leshort 0x0b v1.1
# >0 leshort 0x14 v2.0
# >0 leshort 0x15 v2.1
# >0 leshort 0x19 v2.5
# >0 leshort 0x1b v2.7
# >0 leshort 0x2d v4.5
# >0 leshort 0x2e v4.6
# >0 leshort 0x32 v5.0
# >0 leshort 0x33 v5.1
# >0 leshort 0x34 v5.2
# >0 leshort 0x3d v6.1
# >0 leshort 0x3e v6.2
# >0 leshort 0x3f v6.3
# >0 default x
# >>0 leshort x v?[%#x]
# display compatible host system name of ZIP archive
0 name ziphost
# The upper byte indicates the compatibility of the file attribute information.
# If the file is compatible with MS-DOS (v 2.04g) then this value will be zero.
#>1 ubyte 0 DOS
>1 ubyte 1 Amiga
>1 ubyte 2 OpenVMS
>1 ubyte 3 UNIX
>1 ubyte 4 VM/CMS
>1 ubyte 6 OS/2
>1 ubyte 7 Macintosh
>1 ubyte 11 MVS
>1 ubyte 13 Acorn Risc
>1 ubyte 16 BeOS
>1 ubyte 17 Tandem
# 9 untested
>1 ubyte 5 Atari ST
>1 ubyte 8 Z-System
>1 ubyte 9 CP/M
>1 ubyte 10 Windows NTFS
>1 ubyte 12 VSE
>1 ubyte 14 VFAT
>1 ubyte 15 alternate MVS
>1 ubyte 18 OS/400
>1 ubyte 19 OS X
# unused
#>1 ubyte >19 unused %#x
# Zip End Of Central Directory record
-22 string PK\005\006
#>4 leshort >1 \b, %d disks
#>6 leshort >1 \b, central directory disk %d
#>8 leshort >1 \b, %d central directories on this disk
#>10 leshort >1 \b, %d central directories
#>12 lelong x \b, %d central directory bytes
>(16.l) use zipcd
>>20 pstring/l >0 \b, %s