Merge from vendor branch FILE:
[dragonfly.git] / contrib / file-4 / magic / Magdir / archive
1
2 #------------------------------------------------------------------------------
3 # archive:  file(1) magic for archive formats (see also "msdos" for self-
4 #           extracting compressed archives)
5 #
6 # cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
7 # pre-POSIX "tar" archives are handled in the C code.
8
9 # POSIX tar archives
10 257     string          ustar\0         POSIX tar archive
11 257     string          ustar\040\040\0 GNU tar archive
12
13 # cpio archives
14 #
15 # Yes, the top two "cpio archive" formats *are* supposed to just be "short".
16 # The idea is to indicate archives produced on machines with the same
17 # byte order as the machine running "file" with "cpio archive", and
18 # to indicate archives produced on machines with the opposite byte order
19 # from the machine running "file" with "byte-swapped cpio archive".
20 #
21 # The SVR4 "cpio(4)" hints that there are additional formats, but they
22 # are defined as "short"s; I think all the new formats are
23 # character-header formats and thus are strings, not numbers.
24 0       short           070707          cpio archive
25 0       short           0143561         byte-swapped cpio archive
26 0       string          070707          ASCII cpio archive (pre-SVR4 or odc)
27 0       string          070701          ASCII cpio archive (SVR4 with no CRC)
28 0       string          070702          ASCII cpio archive (SVR4 with CRC)
29
30 # Debian package (needs to go before regular portable archives)
31 #
32 0       string          =!<arch>\ndebian
33 >8      string          debian-split    part of multipart Debian package
34 >8      string          debian-binary   Debian binary package
35 >68     string          >\0             (format %s)
36 # These next two lines do not work, because a bzip2 Debian archive
37 # still uses gzip for the control.tar (first in the archive).  Only
38 # data.tar varies, and the location of its filename varies too.
39 # file/libmagic does not current have support for ascii-string based
40 # (offsets) as of 2005-09-15.
41 #>81    string          bz2             \b, uses bzip2 compression
42 #>84    string          gz              \b, uses gzip compression
43 #>136   ledate          x               created: %s
44
45 # other archives
46 0       long            0177555         very old archive
47 0       short           0177555         very old PDP-11 archive
48 0       long            0177545         old archive
49 0       short           0177545         old PDP-11 archive
50 0       long            0100554         apl workspace
51 0       string          =<ar>           archive
52
53 # MIPS archive (needs to go before regular portable archives)
54 #
55 0       string  =!<arch>\n__________E   MIPS archive
56 >20     string  U                       with MIPS Ucode members
57 >21     string  L                       with MIPSEL members
58 >21     string  B                       with MIPSEB members
59 >19     string  L                       and an EL hash table
60 >19     string  B                       and an EB hash table
61 >22     string  X                       -- out of date
62
63 0       string          -h-             Software Tools format archive text
64
65 #
66 # XXX - why are there multiple <ar> thingies?  Note that 0x213c6172 is
67 # "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
68 #
69 # 0     string          =!<arch>                current ar archive
70 # 0     long            0x213c6172      archive file
71 #
72 # and for SVR1 archives, we have:
73 #
74 # 0     string          \<ar>           System V Release 1 ar archive
75 # 0     string          =<ar>           archive
76 #
77 # XXX - did Aegis really store shared libraries, breakpointed modules,
78 # and absolute code program modules in the same format as new-style
79 # "ar" archives?
80 #
81 0       string          =!<arch>                current ar archive
82 >8      string          __.SYMDEF       random library
83 >0      belong          =65538          - pre SR9.5
84 >0      belong          =65539          - post SR9.5
85 >0      beshort         2               - object archive
86 >0      beshort         3               - shared library module
87 >0      beshort         4               - debug break-pointed module
88 >0      beshort         5               - absolute code program module
89 0       string          \<ar>           System V Release 1 ar archive
90 0       string          =<ar>           archive
91 #
92 # XXX - from "vax", which appears to collect a bunch of byte-swapped
93 # thingies, to help you recognize VAX files on big-endian machines;
94 # with "leshort", "lelong", and "string", that's no longer necessary....
95 #
96 0       belong          0x65ff0000      VAX 3.0 archive
97 0       belong          0x3c61723e      VAX 5.0 archive
98 #
99 0       long            0x213c6172      archive file
100 0       lelong          0177555         very old VAX archive
101 0       leshort         0177555         very old PDP-11 archive
102 #
103 # XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
104 # be a random library (it said 0xff65 rather than 0177545).
105 #
106 0       lelong          0177545         old VAX archive
107 >8      string          __.SYMDEF       random library
108 0       leshort         0177545         old PDP-11 archive
109 >8      string          __.SYMDEF       random library
110 #
111 # From "pdp" (but why a 4-byte quantity?)
112 #
113 0       lelong          0x39bed         PDP-11 old archive
114 0       lelong          0x39bee         PDP-11 4.0 archive
115
116 # ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
117 #
118 # The first byte is the magic (0x1a), byte 2 is the compression type for
119 # the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
120 # filename of the first file (null terminated).  Since some types collide
121 # we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
122 # 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
123 0       lelong&0x8080ffff       0x0000081a      ARC archive data, dynamic LZW
124 0       lelong&0x8080ffff       0x0000091a      ARC archive data, squashed
125 0       lelong&0x8080ffff       0x0000021a      ARC archive data, uncompressed
126 0       lelong&0x8080ffff       0x0000031a      ARC archive data, packed
127 0       lelong&0x8080ffff       0x0000041a      ARC archive data, squeezed
128 0       lelong&0x8080ffff       0x0000061a      ARC archive data, crunched
129 # [JW] stuff taken from idarc, obviously ARC successors:
130 0       lelong&0x8080ffff       0x00000a1a      PAK archive data
131 0       lelong&0x8080ffff       0x0000141a      ARC+ archive data
132 0       lelong&0x8080ffff       0x0000481a      HYP archive data
133
134 # Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
135 # I can't create either SPARK or ArcFS archives so I have not tested this stuff
136 # [GRR:  the original entries collide with ARC, above; replaced with combined
137 #  version (not tested)]
138 #0      byte            0x1a            RISC OS archive (spark format)
139 0       string          \032archive     RISC OS archive (ArcFS format)
140 0       string          Archive\000     RISC OS archive (ArcFS format)
141
142 # All these were taken from idarc, many could not be verified. Unfortunately,
143 # there were many low-quality sigs, i.e. easy to trigger false positives.
144 # Please notify me of any real-world fishy/ambiguous signatures and I'll try
145 # to get my hands on the actual archiver and see if I find something better. [JW]
146 # probably many can be enhanced by finding some 0-byte or control char near the start
147
148 # idarc calls this Crush/Uncompressed... *shrug*
149 0       string  CRUSH Crush archive data
150 # Squeeze It (.sqz)
151 0       string  HLSQZ Squeeze It archive data
152 # SQWEZ
153 0       string  SQWEZ SQWEZ archive data
154 # HPack (.hpk)
155 0       string  HPAK HPack archive data
156 # HAP
157 0       string  \x91\x33HF HAP archive data
158 # MD/MDCD
159 0       string  MDmd MDCD archive data
160 # LIM
161 0       string  LIM\x1a LIM archive data
162 # SAR
163 3       string  LH5 SAR archive data
164 # BSArc/BS2
165 0       string  \212\3SB \0 BSArc/BS2 archive data
166 # MAR
167 2       string  =-ah MAR archive data
168 # ACB
169 0       belong&0x00f800ff       0x00800000 ACB archive data
170 # CPZ
171 # TODO, this is what idarc says: 0      string  \0\0\0 CPZ archive data
172 # JRC
173 0       string  JRchive JRC archive data
174 # Quantum
175 0       string  DS\0 Quantum archive data
176 # ReSOF
177 0       string  PK\3\6 ReSOF archive data
178 # QuArk
179 0       string  7\4 QuArk archive data
180 # YAC
181 14      string  YC YAC archive data
182 # X1
183 0       string  X1 X1 archive data
184 0       string  XhDr X1 archive data
185 # CDC Codec (.dqt)
186 0       belong&0xffffe000       0x76ff2000 CDC Codec archive data
187 # AMGC
188 0       string  \xad6" AMGC archive data
189 # NuLIB
190 0       string  NõFélå NuLIB archive data
191 # PakLeo
192 0       string  LEOLZW PAKLeo archive data
193 # ChArc
194 0       string  SChF ChArc archive data
195 # PSA
196 0       string  PSA PSA archive data
197 # CrossePAC
198 0       string  DSIGDCC CrossePAC archive data
199 # Freeze
200 0       string  \x1f\x9f\x4a\x10\x0a Freeze archive data
201 # KBoom
202 0       string  ¨MP¨ KBoom archive data
203 # NSQ, must go after CDC Codec
204 0       string  \x76\xff NSQ archive data
205 # DPA
206 0       string  Dirk\ Paehl DPA archive data
207 # BA
208 # TODO: idarc says "bytes 0-2 == bytes 3-5"
209 # TTComp
210 0       string  \0\6 TTComp archive data
211 # ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
212 0       string  ESP ESP archive data
213 # ZPack
214 0       string  \1ZPK\1 ZPack archive data
215 # Sky
216 0       string  \xbc\x40 Sky archive data
217 # UFA
218 0       string  UFA UFA archive data
219 # Dry
220 0       string  =-H2O DRY archive data
221 # FoxSQZ
222 0       string  FOXSQZ FoxSQZ archive data
223 # AR7
224 0       string  ,AR7 AR7 archive data
225 # PPMZ
226 0       string  PPMZ PPMZ archive data
227 # MS Compress
228 4       string  \x88\xf0\x27 MS Compress archive data
229 # updated by Joerg Jenderek
230 >9      string  \0              
231 >>0     string  KWAJ            
232 >>>7    string  \321\003        MS Compress archive data
233 >>>>14  ulong   >0              \b, original size: %ld bytes
234 >>>>18          ubyte   >0x65   
235 >>>>>18         string  x       \b, was %.8s
236 >>>>>(10.b-4)   string  x       \b.%.3s
237 # MP3 (archiver, not lossy audio compression)
238 0       string  MP3\x1a MP3-Archiver archive data
239 # ZET
240 0       string  OZÝ ZET archive data
241 # TSComp
242 0       string  \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
243 # ARQ
244 0       string  gW\4\1 ARQ archive data
245 # Squash
246 3       string  OctSqu Squash archive data
247 # Terse
248 0       string  \5\1\1\0 Terse archive data
249 # PUCrunch
250 0       string  \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
251 # UHarc
252 0       string  UHA UHarc archive data
253 # ABComp
254 0       string  \2AB ABComp archive data
255 0       string  \3AB2 ABComp archive data
256 # CMP
257 0       string  CO\0 CMP archive data
258 # Splint
259 0       string  \x93\xb9\x06 Splint archive data
260 # InstallShield
261 0       string   \x13\x5d\x65\x8c InstallShield Z archive Data
262 # Gather
263 1       string  GTH Gather archive data
264 # BOA
265 0       string  BOA BOA archive data
266 # RAX
267 0       string  ULEB\xa RAX archive data
268 # Xtreme
269 0       string  ULEB\0 Xtreme archive data
270 # Pack Magic
271 0       string  @â\1\0 Pack Magic archive data
272 # BTS
273 0       belong&0xfeffffff       0x1a034465 BTS archive data
274 # ELI 5750
275 0       string  Ora\  ELI 5750 archive data
276 # QFC
277 0       string  \x1aFC\x1a QFC archive data
278 0       string  \x1aQF\x1a QFC archive data
279 # PRO-PACK
280 0       string  RNC PRO-PACK archive data
281 # 777
282 0       string  777 777 archive data
283 # LZS221
284 0       string  sTaC LZS221 archive data
285 # HPA
286 0       string  HPA HPA archive data
287 # Arhangel
288 0       string  LG Arhangel archive data
289 # EXP1, uses bzip2
290 0       string  0123456789012345BZh EXP1 archive data
291 # IMP
292 0       string  IMP\xa IMP archive data
293 # NRV
294 0       string  \x00\x9E\x6E\x72\x76\xFF NRV archive data
295 # Squish
296 0       string  \x73\xb2\x90\xf4 Squish archive data
297 # Par
298 0       string  PHILIPP Par archive data
299 0       string  PAR Par archive data
300 # HIT
301 0       string  UB HIT archive data
302 # SBX
303 0       belong&0xfffff000       0x53423000 SBX archive data
304 # NaShrink
305 0       string  NSK NaShrink archive data
306 # SAPCAR
307 0       string  #\ CAR\ archive\ header SAPCAR archive data
308 0       string  CAR\ 2.00RG SAPCAR archive data
309 # Disintegrator
310 0       string  DST Disintegrator archive data
311 # ASD
312 0       string  ASD ASD archive data
313 # InstallShield CAB
314 0       string  ISc( InstallShield CAB
315 # TOP4
316 0       string  T4\x1a TOP4 archive data
317 # BatComp left out: sig looks like COM executable
318 # so TODO: get real 4dos batcomp file and find sig
319 # BlakHole
320 0       string  BH\5\7 BlakHole archive data
321 # BIX
322 0       string  BIX0 BIX archive data
323 # ChiefLZA
324 0       string  ChfLZ ChiefLZA archive data
325 # Blink
326 0       string  Blink Blink archive data
327 # Logitech Compress
328 0       string  \xda\xfa Logitech Compress archive data
329 # ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
330 1       string  (C)\ STEPANYUK ARS-Sfx archive data
331 # AKT/AKT32
332 0       string  AKT32 AKT32 archive data
333 0       string  AKT AKT archive data
334 # NPack
335 0       string  MSTSM NPack archive data
336 # PFT
337 0       string  \0\x50\0\x14 PFT archive data
338 # SemOne
339 0       string  SEM SemOne archive data
340 # PPMD
341 0       string  \x8f\xaf\xac\x84 PPMD archive data
342 # FIZ
343 0       string  FIZ FIZ archive data
344 # MSXiE
345 0       belong&0xfffff0f0       0x4d530000 MSXiE archive data
346 # DeepFreezer
347 0       belong&0xfffffff0       0x797a3030 DeepFreezer archive data
348 # DC
349 0       string  =<DC- DC archive data
350 # TPac
351 0       string  \4TPAC\3 TPac archive data
352 # Ai
353 0       string  Ai\1\1\0 Ai archive data
354 0       string  Ai\1\0\0 Ai archive data
355 # Ai32
356 0       string  Ai\2\0 Ai32 archive data
357 0       string  Ai\2\1 Ai32 archive data
358 # SBC
359 0       string  SBC SBC archive data
360 # Ybs
361 0       string  YBS Ybs archive data
362 # DitPack
363 0       string  \x9e\0\0 DitPack archive data
364 # DMS
365 0       string  DMS! DMS archive data
366 # EPC
367 0       string  \x8f\xaf\xac\x8c EPC archive data
368 # VSARC
369 0       string  VS\x1a VSARC archive data
370 # PDZ
371 0       string  PDZ PDZ archive data
372 # ReDuq
373 0       string  rdqx ReDuq archive data
374 # GCA
375 0       string  GCAX GCA archive data
376 # PPMN
377 0       string  pN PPMN archive data
378 # WinImage
379 3       string  WINIMAGE WinImage archive data
380 # Compressia
381 0       string  CMP0CMP Compressia archive data
382 # UHBC
383 0       string  UHB UHBC archive data
384 # WinHKI
385 0       string  \x61\x5C\x04\x05 WinHKI archive data
386 # WWPack data file
387 0       string  WWP WWPack archive data
388 # BSN (BSA, PTS-DOS)
389 0       string  \xffBSG BSN archive data
390 1       string  \xffBSG BSN archive data
391 3       string  \xffBSG BSN archive data
392 1       string  \0\xae\2 BSN archive data
393 1       string  \0\xae\3 BSN archive data
394 1       string  \0\xae\7 BSN archive data
395 # AIN
396 0       string  \x33\x18 AIN archive data
397 0       string  \x33\x17 AIN archive data
398 # XPA32
399 0       string  xpa\0\1 XPA32 archive data
400 # SZip (TODO: doesn't catch all versions)
401 0       string  SZ\x0a\4 SZip archive data
402 # XPack DiskImage
403 0       string  jm XPack DiskImage archive data
404 # XPack Data
405 0       string  xpa XPack archive data
406 # XPack Single Data
407 0       string  Í\ jm XPack single archive data
408
409 # TODO: missing due to unknown magic/magic at end of file:
410 #DWC
411 #ARG
412 #ZAR
413 #PC/3270
414 #InstallIt
415 #RKive
416 #RK
417 #XPack Diskimage
418
419 # These were inspired by idarc, but actually verified
420 # Dzip archiver (.dz)
421 0       string  DZ Dzip archive data
422 >2      byte    x \b, version %i
423 >3      byte    x \b.%i
424 # ZZip archiver (.zz)
425 0       string  ZZ\ \0\0 ZZip archive data
426 0       string  ZZ0 ZZip archive data
427 # PAQ archiver (.paq)
428 0       string  \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
429 0       string  PAQ PAQ archive data
430 >3      byte&0xf0       0x30
431 >>3     byte    x (v%c)
432 # JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
433 0xe     string  \x1aJar\x1b JAR (ARJ Software, Inc.) archive data
434 0       string  JARCS JAR (ARJ Software, Inc.) archive data
435
436 # ARJ archiver (jason@jarthur.Claremont.EDU)
437 0       leshort         0xea60          ARJ archive data
438 >5      byte            x               \b, v%d,
439 >8      byte            &0x04           multi-volume,
440 >8      byte            &0x10           slash-switched,
441 >8      byte            &0x20           backup,
442 >34     string          x               original name: %s,
443 >7      byte            0               os: MS-DOS
444 >7      byte            1               os: PRIMOS
445 >7      byte            2               os: Unix
446 >7      byte            3               os: Amiga
447 >7      byte            4               os: Macintosh
448 >7      byte            5               os: OS/2
449 >7      byte            6               os: Apple ][ GS
450 >7      byte            7               os: Atari ST
451 >7      byte            8               os: NeXT
452 >7      byte            9               os: VAX/VMS
453 >3      byte            >0              %d]
454 # [JW] idarc says this is also possible
455 2       leshort         0xea60          ARJ archive data
456
457 # HA archiver (Greg Roelofs, newt@uchicago.edu)
458 # This is a really bad format. A file containing HAWAII will match this...
459 #0      string          HA              HA archive data,
460 #>2     leshort         =1              1 file,
461 #>2     leshort         >1              %u files,
462 #>4     byte&0x0f       =0              first is type CPY
463 #>4     byte&0x0f       =1              first is type ASC
464 #>4     byte&0x0f       =2              first is type HSC
465 #>4     byte&0x0f       =0x0e           first is type DIR
466 #>4     byte&0x0f       =0x0f           first is type SPECIAL
467 # suggestion: at least identify small archives (<1024 files)
468 0  belong&0xffff00fc 0x48410000 HA archive data
469 >2      leshort         =1              1 file,
470 >2      leshort         >1              %u files,
471 >4      byte&0x0f       =0              first is type CPY
472 >4      byte&0x0f       =1              first is type ASC
473 >4      byte&0x0f       =2              first is type HSC
474 >4      byte&0x0f       =0x0e           first is type DIR
475 >4      byte&0x0f       =0x0f           first is type SPECIAL
476
477 # HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
478 0       string          HPAK            HPACK archive data
479
480 # JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
481 0       string          \351,\001JAM\           JAM archive,
482 >7      string          >\0                     version %.4s
483 >0x26   byte            =0x27                   -
484 >>0x2b  string          >\0                     label %.11s,
485 >>0x27  lelong          x                       serial %08x,
486 >>0x36  string          >\0                     fstype %.8s
487
488 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
489 2       string          -lh0-           LHarc 1.x/ARX archive data [lh0]
490 2       string          -lh1-           LHarc 1.x/ARX archive data [lh1]
491 2       string          -lz4-           LHarc 1.x archive data [lz4]
492 2       string          -lz5-           LHarc 1.x archive data [lz5]
493 #       [never seen any but the last; -lh4- reported in comp.compression:]
494 2       string          -lzs-           LHa/LZS archive data [lzs]
495 2       string          -lh\40-         LHa 2.x? archive data [lh ]
496 2       string          -lhd-           LHa 2.x? archive data [lhd]
497 2       string          -lh2-           LHa 2.x? archive data [lh2]
498 2       string          -lh3-           LHa 2.x? archive data [lh3]
499 2       string          -lh4-           LHa (2.x) archive data [lh4]
500 2       string          -lh5-           LHa (2.x) archive data [lh5]
501 2       string          -lh6-           LHa (2.x) archive data [lh6]
502 2       string          -lh7-           LHa (2.x)/LHark archive data [lh7]
503 >20     byte            x               - header level %d
504 # taken from idarc [JW]
505 2   string      -lZ         PUT archive data
506 2   string      -lz         LZS archive data 
507 2   string      -sw1-       Swag archive data
508
509 # RAR archiver (Greg Roelofs, newt@uchicago.edu)
510 0       string          Rar!            RAR archive data,
511 >44     byte            x               v%0x,
512 >10     byte            >0              flags:
513 >>10    byte            &0x01           Archive volume,
514 >>10    byte            &0x02           Commented,
515 >>10    byte            &0x04           Locked,
516 >>10    byte            &0x08           Solid,
517 >>10    byte            &0x20           Authenticated,
518 >35     byte            0               os: MS-DOS
519 >35     byte            1               os: OS/2
520 >35     byte            2               os: Win32
521 >35     byte            3               os: Unix
522 # some old version? idarc says:
523 0   string      RE\x7e\x5e  RAR archive data
524
525 # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
526 0       string          SQSH            squished archive data (Acorn RISCOS)
527
528 # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
529 # [JW] see exe section for self-extracting version
530 0       string          UC2\x1a         UC2 archive data
531
532 # ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
533 0       string          PK\003\004
534 >4      byte            0x00            Zip archive data
535 >4      byte            0x09            Zip archive data, at least v0.9 to extract
536 >4      byte            0x0a            Zip archive data, at least v1.0 to extract
537 >4      byte            0x0b            Zip archive data, at least v1.1 to extract
538 >4      byte            0x14
539 >>30    ubelong         !0x6d696d65     Zip archive data, at least v2.0 to extract
540 >0x161  string          WINZIP          Zip archive data, WinZIP self-extracting
541
542
543 # OpenOffice.org / KOffice / StarOffice documents
544 # From: Abel Cheung <abel@oaka.org>
545 # Listed here because they are basically zip files
546 >>30    string          mimetype
547
548 # KOffice (1.2 or above) formats
549 >>>50   string  vnd.kde.                KOffice (>=1.2)
550 >>>>58  string  karbon                  Karbon document
551 >>>>58  string  kchart                  KChart document
552 >>>>58  string  kformula                KFormula document
553 >>>>58  string  kivio                   Kivio document
554 >>>>58  string  kontour                 Kontour document
555 >>>>58  string  kpresenter              KPresenter document
556 >>>>58  string  kspread                 KSpread document
557 >>>>58  string  kword                   KWord document
558
559 # OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
560 >>>50   string  vnd.sun.xml.            OpenOffice.org 1.x
561 >>>>62  string  writer                  Writer
562 >>>>>68 byte    !0x2e                   document
563 >>>>>68 string  .template               template
564 >>>>>68 string  .global                 global document
565 >>>>62  string  calc                    Calc
566 >>>>>66 byte    !0x2e                   spreadsheet
567 >>>>>66 string  .template               template
568 >>>>62  string  draw                    Draw
569 >>>>>66 byte    !0x2e                   document
570 >>>>>66 string  .template               template
571 >>>>62  string  impress                 Impress
572 >>>>>69 byte    !0x2e                   presentation
573 >>>>>69 string  .template               template
574 >>>>62  string  math                    Math document
575
576 # OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
577 # http://lists.oasis-open.org/archives/office/200505/msg00006.html
578 >>>50   string  vnd.oasis.opendocument. OpenDocument
579 >>>>73  string  text
580 >>>>>77 byte    !0x2d                   Text
581 >>>>>77 string  -template               Text Template
582 >>>>>77 string  -web                    HTML Document Template
583 >>>>>77 string  -master                 Master Document
584 >>>>73  string  graphics                Drawing
585 >>>>>81 string  -template               Template
586 >>>>73  string  presentation            Presentation
587 >>>>>85 string  -template               Template
588 >>>>73  string  spreadsheet             Spreadsheet
589 >>>>>84 string  -template               Template
590 >>>>73  string  chart                   Chart
591 >>>>>78 string  -template               Template
592 >>>>73  string  formula                 Formula
593 >>>>>80 string  -template               Template
594 >>>>73  string  database                Database
595 >>>>73  string  image                   Image
596
597 # Zoo archiver
598 20      lelong          0xfdc4a7dc      Zoo archive data
599 >4      byte            >48             \b, v%c.
600 >>6     byte            >47             \b%c
601 >>>7    byte            >47             \b%c
602 >32     byte            >0              \b, modify: v%d
603 >>33    byte            x               \b.%d+
604 >42     lelong          0xfdc4a7dc      \b,
605 >>70    byte            >0              extract: v%d
606 >>>71   byte            x               \b.%d+
607
608 # Shell archives
609 10      string          #\ This\ is\ a\ shell\ archive  shell archive text
610
611 #
612 # LBR. NB: May conflict with the questionable 
613 #          "binary Computer Graphics Metafile" format.
614 #
615 0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
616 #
617 # PMA (CP/M derivative of LHA)
618 #
619 2       string          -pm0-           PMarc archive data [pm0]
620 2       string          -pm1-           PMarc archive data [pm1]
621 2       string          -pm2-           PMarc archive data [pm2]
622 2       string          -pms-           PMarc SFX archive (CP/M, DOS)
623 5       string          -pc1-           PopCom compressed executable (CP/M)
624
625 # From Rafael Laboissiere <rafael@laboissiere.net>
626 # The Project Revision Control System (see
627 # http://prcs.sourceforge.net) generates a packaged project
628 # file which is recognized by the following entry: 
629 0       leshort         0xeb81  PRCS packaged project
630
631 # Microsoft cabinets 
632 # by David Necas (Yeti) <yeti@physics.muni.cz>
633 #0      string  MSCF\0\0\0\0    Microsoft cabinet file data,
634 #>25    byte    x               v%d
635 #>24    byte    x               \b.%d
636 # MPi: All CABs have version 1.3, so this is pointless.
637 # Better magic in debian-additions.
638
639 # GTKtalog catalogs 
640 # by David Necas (Yeti) <yeti@physics.muni.cz>
641 4       string  gtktalog\       GTKtalog catalog data,
642 >13     string  3               version 3
643 >>14    beshort 0x677a          (gzipped)
644 >>14    beshort !0x677a         (not gzipped)
645 >13     string  >3              version %s
646
647 ############################################################################
648 # Parity archive reconstruction file, the 'par' file format now used on Usenet.
649 0       string          PAR\0   PARity archive data
650 >48     leshort         =0      - Index file
651 >48     leshort         >0      - file number %d
652
653 # Felix von Leitner <felix-file@fefe.de>
654 0       string  d8:announce     BitTorrent file
655
656 # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
657 0       beshort 0x0e0f          Atari MSA archive data
658 >2      beshort x               \b, %d sectors per track
659 >4      beshort 0               \b, 1 sided
660 >4      beshort 1               \b, 2 sided
661 >6      beshort x               \b, starting track: %d
662 >8      beshort x               \b, ending track: %d
663
664 # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
665 0       string  PK00PK\003\004  Zip archive data
666
667 # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
668 # by Stefan `Sec` Zehl <sec@42.org>
669 7       string          **ACE**         ACE archive data
670 >15     byte    >0              version %d
671 >16     byte    =0x00           \b, from MS-DOS
672 >16     byte    =0x01           \b, from OS/2
673 >16     byte    =0x02           \b, from Win/32
674 >16     byte    =0x03           \b, from Unix
675 >16     byte    =0x04           \b, from MacOS
676 >16     byte    =0x05           \b, from WinNT
677 >16     byte    =0x06           \b, from Primos
678 >16     byte    =0x07           \b, from AppleGS
679 >16     byte    =0x08           \b, from Atari
680 >16     byte    =0x09           \b, from Vax/VMS
681 >16     byte    =0x0A           \b, from Amiga
682 >16     byte    =0x0B           \b, from Next
683 >14     byte    x               \b, version %d to extract
684 >5      leshort &0x0080         \b, multiple volumes,
685 >>17    byte    x               \b (part %d),
686 >5      leshort &0x0002         \b, contains comment
687 >5      leshort &0x0200         \b, sfx
688 >5      leshort &0x0400         \b, small dictionary
689 >5      leshort &0x0800         \b, multi-volume
690 >5      leshort &0x1000         \b, contains AV-String
691 >>30    string  \x16*UNREGISTERED\x20VERSION*   (unregistered)
692 >5      leshort &0x2000         \b, with recovery record
693 >5      leshort &0x4000         \b, locked
694 >5      leshort &0x8000         \b, solid
695 # Date in MS-DOS format (whatever that is)
696 #>18    lelong  x               Created on
697
698 # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
699 # <doj@cubic.org>
700 0x1A    string  sfArk           sfArk compressed Soundfont
701 >0x15   string  2
702 >>0x1   string  >\0             Version %s
703 >>0x2A  string  >\0             : %s
704
705 # DR-DOS 7.03 Packed File *.??_
706 0       string  Packed\ File\   Personal NetWare Packed File
707 >12     string  x               \b, was "%.12s"
708
709 # EET archive
710 # From: Tilman Sauerbeck <tilman@code-monkey.de>
711 0       belong  0x1ee7ff00      EET archive
712
713 # rzip archives
714 0       string  RZIP            rzip compressed data
715 >4      byte    x               - version %d
716 >5      byte    x               \b.%d
717 >6      belong  x               (%d bytes)
718
719 # From: "Robert Dale" <robdale@gmail.com>
720 0       belong  123             dar archive,
721 >4      belong  x               label "%.8x
722 >>8     belong  x               %.8x
723 >>>12   beshort x               %.4x"
724 >14     byte    0x54            end slice
725 >14     beshort 0x4e4e          multi-part
726 >14     beshort 0x4e53          multi-part, with -S
727
728 # Symbian installation files
729 #  http://www.thouky.co.uk/software/psifs/sis.html
730 #  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
731 8       lelong  0x10000419      Symbian installation file
732 >4      lelong  0x1000006D      (EPOC release 3/4/5)
733 >4      lelong  0x10003A12      (EPOC release 6)
734 0       lelong  0x10201A7A      Symbian installation file (Symbian OS 9.x)
735
736 # Pack200 Java archives, http://jcp.org/en/jsr/detail?id=200
737 0       belong  0xcafed00d      Pack200 Java archive
738
739 # From "Nelson A. de Oliveira" <naoliv@gmail.com>
740 0       string  MPQ\032         MoPaQ (MPQ) archive
741
742 # From: Dirk Jagdmann <doj@cubic.org>
743 # xar archive format: http://code.google.com/p/xar/
744 0       string  xar!            xar archive
745 >6      beshort x               - version %ld
746
747 # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
748 # .kgb
749 0       string KGB_arch         KGB Archiver file
750 >10     string x                with compression level %.1s