Upgrade to file-4.18.
[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 >35     byte            0               os: MS-DOS
513 >35     byte            1               os: OS/2
514 >35     byte            2               os: Win32
515 >35     byte            3               os: Unix
516 # some old version? idarc says:
517 0   string      RE\x7e\x5e  RAR archive data
518
519 # SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
520 0       string          SQSH            squished archive data (Acorn RISCOS)
521
522 # UC2 archiver (Greg Roelofs, newt@uchicago.edu)
523 # [JW] see exe section for self-extracting version
524 0       string          UC2\x1a         UC2 archive data
525
526 # ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
527 0       string          PK\003\004
528 >4      byte            0x09            Zip archive data, at least v0.9 to extract
529 >4      byte            0x0a            Zip archive data, at least v1.0 to extract
530 >4      byte            0x0b            Zip archive data, at least v1.1 to extract
531 >4      byte            0x14
532 >>30    ubelong         !0x6d696d65     Zip archive data, at least v2.0 to extract
533 >0x161  string          WINZIP          Zip archive data, WinZIP self-extracting
534
535
536 # OpenOffice.org / KOffice / StarOffice documents
537 # From: Abel Cheung <abel@oaka.org>
538 # Listed here because they are basically zip files
539 >>30    string          mimetype
540
541 # KOffice (1.2 or above) formats
542 >>>50   string  vnd.kde.                KOffice (>=1.2)
543 >>>>58  string  karbon                  Karbon document
544 >>>>58  string  kchart                  KChart document
545 >>>>58  string  kformula                KFormula document
546 >>>>58  string  kivio                   Kivio document
547 >>>>58  string  kontour                 Kontour document
548 >>>>58  string  kpresenter              KPresenter document
549 >>>>58  string  kspread                 KSpread document
550 >>>>58  string  kword                   KWord document
551
552 # OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
553 >>>50   string  vnd.sun.xml.            OpenOffice.org 1.x
554 >>>>62  string  writer                  Writer
555 >>>>>68 byte    !0x2e                   document
556 >>>>>68 string  .template               template
557 >>>>>68 string  .global                 global document
558 >>>>62  string  calc                    Calc
559 >>>>>66 byte    !0x2e                   spreadsheet
560 >>>>>66 string  .template               template
561 >>>>62  string  draw                    Draw
562 >>>>>66 byte    !0x2e                   document
563 >>>>>66 string  .template               template
564 >>>>62  string  impress                 Impress
565 >>>>>69 byte    !0x2e                   presentation
566 >>>>>69 string  .template               template
567 >>>>62  string  math                    Math document
568
569 # OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
570 # http://lists.oasis-open.org/archives/office/200505/msg00006.html
571 >>>50   string  vnd.oasis.opendocument. OpenDocument
572 >>>>73  string  text
573 >>>>>77 byte    !0x2d                   Text
574 >>>>>77 string  -template               Text Template
575 >>>>>77 string  -web                    HTML Document Template
576 >>>>>77 string  -master                 Master Document
577 >>>>73  string  graphics                Drawing
578 >>>>>81 string  -template               Template
579 >>>>73  string  presentation            Presentation
580 >>>>>85 string  -template               Template
581 >>>>73  string  spreadsheet             Spreadsheet
582 >>>>>84 string  -template               Template
583 >>>>73  string  chart                   Chart
584 >>>>>78 string  -template               Template
585 >>>>73  string  formula                 Formula
586 >>>>>80 string  -template               Template
587 >>>>73  string  database                Database
588 >>>>73  string  image                   Image
589
590 # Zoo archiver
591 20      lelong          0xfdc4a7dc      Zoo archive data
592 >4      byte            >48             \b, v%c.
593 >>6     byte            >47             \b%c
594 >>>7    byte            >47             \b%c
595 >32     byte            >0              \b, modify: v%d
596 >>33    byte            x               \b.%d+
597 >42     lelong          0xfdc4a7dc      \b,
598 >>70    byte            >0              extract: v%d
599 >>>71   byte            x               \b.%d+
600
601 # Shell archives
602 10      string          #\ This\ is\ a\ shell\ archive  shell archive text
603
604 #
605 # LBR. NB: May conflict with the questionable 
606 #          "binary Computer Graphics Metafile" format.
607 #
608 0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
609 #
610 # PMA (CP/M derivative of LHA)
611 #
612 2       string          -pm0-           PMarc archive data [pm0]
613 2       string          -pm1-           PMarc archive data [pm1]
614 2       string          -pm2-           PMarc archive data [pm2]
615 2       string          -pms-           PMarc SFX archive (CP/M, DOS)
616 5       string          -pc1-           PopCom compressed executable (CP/M)
617
618 # From Rafael Laboissiere <rafael@laboissiere.net>
619 # The Project Revision Control System (see
620 # http://prcs.sourceforge.net) generates a packaged project
621 # file which is recognized by the following entry: 
622 0       leshort         0xeb81  PRCS packaged project
623
624 # Microsoft cabinets 
625 # by David Necas (Yeti) <yeti@physics.muni.cz>
626 #0      string  MSCF\0\0\0\0    Microsoft cabinet file data,
627 #>25    byte    x               v%d
628 #>24    byte    x               \b.%d
629 # MPi: All CABs have version 1.3, so this is pointless.
630 # Better magic in debian-additions.
631
632 # GTKtalog catalogs 
633 # by David Necas (Yeti) <yeti@physics.muni.cz>
634 4       string  gtktalog\       GTKtalog catalog data,
635 >13     string  3               version 3
636 >>14    beshort 0x677a          (gzipped)
637 >>14    beshort !0x677a         (not gzipped)
638 >13     string  >3              version %s
639
640 ############################################################################
641 # Parity archive reconstruction file, the 'par' file format now used on Usenet.
642 0       string          PAR\0   PARity archive data
643 >48     leshort         =0      - Index file
644 >48     leshort         >0      - file number %d
645
646 # Felix von Leitner <felix-file@fefe.de>
647 0       string  d8:announce     BitTorrent file
648
649 # Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
650 0       beshort 0x0e0f          Atari MSA archive data
651 >2      beshort x               \b, %d sectors per track
652 >4      beshort 0               \b, 1 sided
653 >4      beshort 1               \b, 2 sided
654 >6      beshort x               \b, starting track: %d
655 >8      beshort x               \b, ending track: %d
656
657 # Alternate ZIP string (amc@arwen.cs.berkeley.edu)
658 0       string  PK00PK\003\004  Zip archive data
659
660 # ACE archive (from http://www.wotsit.org/download.asp?f=ace)
661 # by Stefan `Sec` Zehl <sec@42.org>
662 7       string          **ACE**         ACE archive data
663 >15     byte    >0              version %d
664 >16     byte    =0x00           \b, from MS-DOS
665 >16     byte    =0x01           \b, from OS/2
666 >16     byte    =0x02           \b, from Win/32
667 >16     byte    =0x03           \b, from Unix
668 >16     byte    =0x04           \b, from MacOS
669 >16     byte    =0x05           \b, from WinNT
670 >16     byte    =0x06           \b, from Primos
671 >16     byte    =0x07           \b, from AppleGS
672 >16     byte    =0x08           \b, from Atari
673 >16     byte    =0x09           \b, from Vax/VMS
674 >16     byte    =0x0A           \b, from Amiga
675 >16     byte    =0x0B           \b, from Next
676 >14     byte    x               \b, version %d to extract
677 >5      leshort &0x0080         \b, multiple volumes,
678 >>17    byte    x               \b (part %d),
679 >5      leshort &0x0002         \b, contains comment
680 >5      leshort &0x0200         \b, sfx
681 >5      leshort &0x0400         \b, small dictionary
682 >5      leshort &0x0800         \b, multi-volume
683 >5      leshort &0x1000         \b, contains AV-String
684 >>30    string  \x16*UNREGISTERED\x20VERSION*   (unregistered)
685 >5      leshort &0x2000         \b, with recovery record
686 >5      leshort &0x4000         \b, locked
687 >5      leshort &0x8000         \b, solid
688 # Date in MS-DOS format (whatever that is)
689 #>18    lelong  x               Created on
690
691 # sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
692 # <doj@cubic.org>
693 0x1A    string  sfArk           sfArk compressed Soundfont
694 >0x15   string  2
695 >>0x1   string  >\0             Version %s
696 >>0x2A  string  >\0             : %s
697
698 # DR-DOS 7.03 Packed File *.??_
699 0       string  Packed\ File\   Personal NetWare Packed File
700 >12     string  x               \b, was "%.12s"
701
702 # EET archive
703 # From: Tilman Sauerbeck <tilman@code-monkey.de>
704 0       belong  0x1ee7ff00      EET archive
705
706 # From: "Robert Dale" <robdale@gmail.com>
707 0       belong  123             dar archive,
708 >4      belong  x               label "%.8x
709 >>8     belong  x               %.8x
710 >>>12   beshort x               %.4x"
711 >14     byte    0x54            end slice
712 >14     beshort 0x4e4e          multi-part
713 >14     beshort 0x4e53          multi-part, with -S