]> CyberLeo.Net >> Repos - FreeBSD/releng/10.3.git/blob - contrib/file/magic/Magdir/compress
Update file(1) to new version with security update. [EN-18:02.file]
[FreeBSD/releng/10.3.git] / contrib / file / magic / Magdir / compress
1 #------------------------------------------------------------------------------
2 # $File: compress,v 1.68 2017/05/25 20:07:23 christos Exp $
3 # compress:  file(1) magic for pure-compression formats (no archives)
4 #
5 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
6 #
7 # Formats for various forms of compressed data
8 # Formats for "compress" proper have been moved into "compress.c",
9 # because it tries to uncompress it to figure out what's inside.
10
11 # standard unix compress
12 0       string          \037\235        compress'd data
13 !:mime  application/x-compress
14 !:apple LZIVZIVU
15 >2      byte&0x80       >0              block compressed
16 >2      byte&0x1f       x               %d bits
17
18 # gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
19 #   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
20 #       * Original filename is only at offset 10 if "extra field" absent
21 #       * Produce shorter output - notably, only report compression methods
22 #         other than 8 ("deflate", the only method defined in RFC 1952).
23 0       string          \037\213        gzip compressed data
24 !:mime  application/x-gzip
25 !:strength * 2
26 >2      byte            <8              \b, reserved method
27 >2      byte            >8              \b, unknown method
28 >3      byte            &0x01           \b, ASCII
29 >3      byte            &0x02           \b, has CRC
30 >3      byte            &0x04           \b, extra field
31 >3      byte&0xC        =0x08
32 >>10    string          x               \b, was "%s"
33 >3      byte            &0x10           \b, has comment
34 >3      byte            &0x20           \b, encrypted
35 >4      ledate          >0              \b, last modified: %s
36 >8      byte            2               \b, max compression
37 >8      byte            4               \b, max speed
38 >9      byte            =0x00           \b, from FAT filesystem (MS-DOS, OS/2, NT)
39 >9      byte            =0x01           \b, from Amiga
40 >9      byte            =0x02           \b, from VMS
41 >9      byte            =0x03           \b, from Unix
42 >9      byte            =0x04           \b, from VM/CMS
43 >9      byte            =0x05           \b, from Atari
44 >9      byte            =0x06           \b, from HPFS filesystem (OS/2, NT)
45 >9      byte            =0x07           \b, from MacOS
46 >9      byte            =0x08           \b, from Z-System
47 >9      byte            =0x09           \b, from CP/M
48 >9      byte            =0x0A           \b, from TOPS/20
49 >9      byte            =0x0B           \b, from NTFS filesystem (NT)
50 >9      byte            =0x0C           \b, from QDOS
51 >9      byte            =0x0D           \b, from Acorn RISCOS
52
53 # packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
54 0       string          \037\036        packed data
55 !:mime  application/octet-stream
56 >2      belong          >1              \b, %d characters originally
57 >2      belong          =1              \b, %d character originally
58 #
59 # This magic number is byte-order-independent.
60 0       short           0x1f1f          old packed data
61 !:mime  application/octet-stream
62
63 # XXX - why *two* entries for "compacted data", one of which is
64 # byte-order independent, and one of which is byte-order dependent?
65 #
66 0       short           0x1fff          compacted data
67 !:mime  application/octet-stream
68 # This string is valid for SunOS (BE) and a matching "short" is listed
69 # in the Ultrix (LE) magic file.
70 0       string          \377\037        compacted data
71 !:mime  application/octet-stream
72 0       short           0145405         huf output
73 !:mime  application/octet-stream
74
75 # bzip2
76 0       string          BZh             bzip2 compressed data
77 !:mime  application/x-bzip2
78 >3      byte            >47             \b, block size = %c00k
79
80 # lzip
81 0       string          LZIP            lzip compressed data
82 !:mime application/x-lzip
83 >4      byte            x               \b, version: %d
84
85 # squeeze and crunch
86 # Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
87 0       beshort         0x76FF          squeezed data,
88 >4      string          x               original name %s
89 0       beshort         0x76FE          crunched data,
90 >2      string          x               original name %s
91 0       beshort         0x76FD          LZH compressed data,
92 >2      string          x               original name %s
93
94 # Freeze
95 0       string          \037\237        frozen file 2.1
96 0       string          \037\236        frozen file 1.0 (or gzip 0.5)
97
98 # SCO compress -H (LZH)
99 0       string          \037\240        SCO compress -H (LZH) data
100
101 # European GSM 06.10 is a provisional standard for full-rate speech
102 # transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
103 # excitation/long term prediction) coding at 13 kbit/s.
104 #
105 # There's only a magic nibble (4 bits); that nibble repeats every 33
106 # bytes.  This isn't suited for use, but maybe we can use it someday.
107 #
108 # This will cause very short GSM files to be declared as data and
109 # mismatches to be declared as data too!
110 #0      byte&0xF0       0xd0            data
111 #>33    byte&0xF0       0xd0
112 #>66    byte&0xF0       0xd0
113 #>99    byte&0xF0       0xd0
114 #>132   byte&0xF0       0xd0            GSM 06.10 compressed audio
115
116 # bzip  a block-sorting file compressor
117 #       by Julian Seward <sewardj@cs.man.ac.uk> and others
118 #
119 #0      string          BZ              bzip compressed data
120 #>2     byte            x               \b, version: %c
121 #>3     string          =1              \b, compression block size 100k
122 #>3     string          =2              \b, compression block size 200k
123 #>3     string          =3              \b, compression block size 300k
124 #>3     string          =4              \b, compression block size 400k
125 #>3     string          =5              \b, compression block size 500k
126 #>3     string          =6              \b, compression block size 600k
127 #>3     string          =7              \b, compression block size 700k
128 #>3     string          =8              \b, compression block size 800k
129 #>3     string          =9              \b, compression block size 900k
130
131 # lzop from <markus.oberhumer@jk.uni-linz.ac.at>
132 0       string          \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a    lzop compressed data
133 >9      beshort         <0x0940
134 >>9     byte&0xf0       =0x00           - version 0.
135 >>9     beshort&0x0fff  x               \b%03x,
136 >>13    byte            1               LZO1X-1,
137 >>13    byte            2               LZO1X-1(15),
138 >>13    byte            3               LZO1X-999,
139 ## >>22 bedate          >0              last modified: %s,
140 >>14    byte            =0x00           os: MS-DOS
141 >>14    byte            =0x01           os: Amiga
142 >>14    byte            =0x02           os: VMS
143 >>14    byte            =0x03           os: Unix
144 >>14    byte            =0x05           os: Atari
145 >>14    byte            =0x06           os: OS/2
146 >>14    byte            =0x07           os: MacOS
147 >>14    byte            =0x0A           os: Tops/20
148 >>14    byte            =0x0B           os: WinNT
149 >>14    byte            =0x0E           os: Win32
150 >9      beshort         >0x0939
151 >>9     byte&0xf0       =0x00           - version 0.
152 >>9     byte&0xf0       =0x10           - version 1.
153 >>9     byte&0xf0       =0x20           - version 2.
154 >>9     beshort&0x0fff  x               \b%03x,
155 >>15    byte            1               LZO1X-1,
156 >>15    byte            2               LZO1X-1(15),
157 >>15    byte            3               LZO1X-999,
158 ## >>25 bedate          >0              last modified: %s,
159 >>17    byte            =0x00           os: MS-DOS
160 >>17    byte            =0x01           os: Amiga
161 >>17    byte            =0x02           os: VMS
162 >>17    byte            =0x03           os: Unix
163 >>17    byte            =0x05           os: Atari
164 >>17    byte            =0x06           os: OS/2
165 >>17    byte            =0x07           os: MacOS
166 >>17    byte            =0x0A           os: Tops/20
167 >>17    byte            =0x0B           os: WinNT
168 >>17    byte            =0x0E           os: Win32
169
170 # 4.3BSD-Quasijarus Strong Compression
171 # http://minnie.tuhs.org/Quasijarus/compress.html
172 0       string          \037\241        Quasijarus strong compressed data
173
174 # From: Cory Dikkers <cdikkers@swbell.net>
175 0       string          XPKF            Amiga xpkf.library compressed data
176 0       string          PP11            Power Packer 1.1 compressed data
177 0       string          PP20            Power Packer 2.0 compressed data,
178 >4      belong          0x09090909      fast compression
179 >4      belong          0x090A0A0A      mediocre compression
180 >4      belong          0x090A0B0B      good compression
181 >4      belong          0x090A0C0C      very good compression
182 >4      belong          0x090A0C0D      best compression
183
184 # 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
185 # http://www.7-zip.org or DOC/7zFormat.txt
186 #
187 0       string          7z\274\257\047\034      7-zip archive data,
188 >6      byte            x                       version %d
189 >7      byte            x                       \b.%d
190 !:mime  application/x-7z-compressed
191 !:ext 7z/cb7
192
193 # Type: LZMA
194 0       lelong&0xffffff =0x5d
195 >12     leshort         0xff                    LZMA compressed data,
196 !:mime  application/x-lzma
197 >>5     lequad          =0xffffffffffffffff     streamed
198 >>5     lequad          !0xffffffffffffffff     non-streamed, size %lld
199 >12     leshort         0                       LZMA compressed data,
200 >>5     lequad          =0xffffffffffffffff     streamed
201 >>5     lequad          !0xffffffffffffffff     non-streamed, size %lld
202
203 # http://tukaani.org/xz/xz-file-format.txt
204 0       ustring         \xFD7zXZ\x00            XZ compressed data
205 !:strength * 2
206 !:mime  application/x-xz
207
208 # https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt
209 0       string          LRZI                    LRZIP compressed data
210 >4      byte            x                       - version %d
211 >5      byte            x                       \b.%d
212 !:mime  application/x-lrzip
213
214 # http://fastcompression.blogspot.fi/2013/04/lz4-streaming-format-final.html
215 0       lelong          0x184d2204      LZ4 compressed data (v1.4+)
216 !:mime  application/x-lz4
217 # Added by osm0sis@xda-developers.com
218 0       lelong          0x184c2103      LZ4 compressed data (v1.0-v1.3)
219 !:mime  application/x-lz4
220 0       lelong          0x184c2102      LZ4 compressed data (v0.1-v0.9)
221 !:mime  application/x-lz4
222
223 # Zstandard/LZ4 skippable frames
224 # https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md
225 0         lelong&0xFFFFFFF0  0x184D2A50
226 >(4.l+8)  indirect      x
227
228 # Zstandard Dictionary ID subroutine
229 0     name        zstd-dictionary-id
230 # Single Segment = True
231 >0    byte        &0x20   \b, Dictionary ID:
232 >>0   byte&0x03   0       None
233 >>0   byte&0x03   1
234 >>>1  byte        x       %u
235 >>0   byte&0x03   2
236 >>>1  leshort     x       %u
237 >>0   byte&0x03   3
238 >>>1  lelong      x       %u
239 # Single Segment = False
240 >0    byte        ^0x20   \b, Dictionary ID:
241 >>0   byte&0x03   0       None
242 >>0   byte&0x03   1
243 >>>2  byte        x       %u
244 >>0   byte&0x03   2
245 >>>2  leshort     x       %u
246 >>0   byte&0x03   3
247 >>>2  lelong      x       %u
248
249 # Zstandard compressed data
250 # https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md
251 0     lelong       0xFD2FB522  Zstandard compressed data (v0.2)
252 !:mime  application/x-zstd
253 0     lelong       0xFD2FB523  Zstandard compressed data (v0.3)
254 !:mime  application/x-zstd
255 0     lelong       0xFD2FB524  Zstandard compressed data (v0.4)
256 !:mime  application/x-zstd
257 0     lelong       0xFD2FB525  Zstandard compressed data (v0.5)
258 !:mime  application/x-zstd
259 0     lelong       0xFD2FB526  Zstandard compressed data (v0.6)
260 !:mime  application/x-zstd
261 0     lelong       0xFD2FB527  Zstandard compressed data (v0.7)
262 !:mime  application/x-zstd
263 >4    use          zstd-dictionary-id
264 0     lelong       0xFD2FB528  Zstandard compressed data (v0.8+)
265 !:mime  application/x-zstd
266 >4    use          zstd-dictionary-id
267
268 # https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md
269 0  lelong    0xEC30A437  Zstandard dictionary
270 !:mime  application/x-zstd-dictionary
271 >4 lelong    x           (ID %u)
272
273 # AFX compressed files (Wolfram Kleff)
274 2       string          -afx-           AFX compressed file data
275
276 # Supplementary magic data for the file(1) command to support
277 # rzip(1).  The format is described in magic(5).
278 #
279 # Copyright (C) 2003 by Andrew Tridgell.  You may do whatever you want with
280 # this file.
281 #
282 0       string          RZIP            rzip compressed data
283 >4      byte            x               - version %d
284 >5      byte            x               \b.%d
285 >6      belong          x               (%d bytes)
286
287 0       string          ArC\x01         FreeArc archive <http://freearc.org>
288
289 # Type: DACT compressed files
290 0       long    0x444354C3      DACT compressed data
291 >4      byte    >-1             (version %i.
292 >5      byte    >-1             %i.
293 >6      byte    >-1             %i)
294 >7      long    >0              , original size: %i bytes
295 >15     long    >30             , block size: %i bytes
296
297 # Valve Pack (VPK) files
298 0       lelong  0x55aa1234      Valve Pak file
299 >0x4    lelong  x               \b, version %u
300 >0x8    lelong  x               \b, %u entries
301
302 # Snappy framing format
303 # http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt
304 0       string  \377\006\0\0sNaPpY      snappy framed data
305 !:mime  application/x-snappy-framed
306
307 # qpress, http://www.quicklz.com/
308 0       string  qpress10        qpress compressed data
309 !:mime  application/x-qpress
310
311 # Zlib https://www.ietf.org/rfc/rfc6713.txt
312 0       string/b        x
313 >0      beshort%31      =0
314 >>0     byte&0xf        =8
315 >>>0    byte&0x80       =0      zlib compressed data
316 !:mime  application/zlib