xref: /dflybsd-src/contrib/file/magic/Magdir/archive (revision 739f0ef867128a933e021db3d831e906fcafd825)
1327e51cbSPeter Avalos#------------------------------------------------------------------------------
2*3b9cdfa3SAntonio Huete Jimenez# $File: archive,v 1.169 2022/09/12 13:13:28 christos Exp $
3327e51cbSPeter Avalos# archive:  file(1) magic for archive formats (see also "msdos" for self-
4327e51cbSPeter Avalos#           extracting compressed archives)
5327e51cbSPeter Avalos#
6327e51cbSPeter Avalos# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc.
76fca56fbSSascha Wildner# pre-POSIX "tar" archives are also handled in the C code ../../src/is_tar.c.
8327e51cbSPeter Avalos
9327e51cbSPeter Avalos# POSIX tar archives
106fca56fbSSascha Wildner# URL: https://en.wikipedia.org/wiki/Tar_(computing)
116fca56fbSSascha Wildner# Reference: https://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5&manpath=FreeBSD+8-current
126fca56fbSSascha Wildner# header mainly padded with nul bytes
136fca56fbSSascha Wildner500	quad		0
146fca56fbSSascha Wildner!:strength /2
156fca56fbSSascha Wildner# filename or extended attribute printable strings in range space null til umlaut ue
166fca56fbSSascha Wildner>0	ubeshort	>0x1F00
176fca56fbSSascha Wildner>>0	ubeshort	<0xFCFD
186fca56fbSSascha Wildner# last 4 header bytes often null but tar\0 in gtarfail2.tar gtarfail.tar-bad
196fca56fbSSascha Wildner# at https://sourceforge.net/projects/s-tar/files/testscripts/
206fca56fbSSascha Wildner>>>508	ubelong&0x8B9E8DFF	0
216fca56fbSSascha Wildner# nul, space or ascii digit 0-7 at start of mode
226fca56fbSSascha Wildner>>>>100	ubyte&0xC8	=0
236fca56fbSSascha Wildner>>>>>101 ubyte&0xC8	=0
246fca56fbSSascha Wildner# nul, space at end of check sum
256fca56fbSSascha Wildner>>>>>>155 ubyte&0xDF	=0
266fca56fbSSascha Wildner# space or ascii digit 0 at start of check sum
276fca56fbSSascha Wildner>>>>>>>148	ubyte&0xEF	=0x20
28*3b9cdfa3SAntonio Huete Jimenez# FOR DEBUGGING:
29*3b9cdfa3SAntonio Huete Jimenez#>>>>>>>>0	regex		\^[0-9]{2,4}[.](png|jpg|jpeg|tif|tiff|gif|bmp)	NAME "%s"
30*3b9cdfa3SAntonio Huete Jimenez# check for 1st image main name with digits used for sorting
31*3b9cdfa3SAntonio Huete Jimenez# and for name extension case insensitive like: PNG JPG JPEG TIF TIFF GIF BMP
32*3b9cdfa3SAntonio Huete Jimenez>>>>>>>>0	regex		\^[0-9]{2,4}[.](png|jpg|jpeg|tif|tiff|gif|bmp)
33*3b9cdfa3SAntonio Huete Jimenez#foo
34*3b9cdfa3SAntonio Huete Jimenez>>>>>>>>>0	use	tar-cbt
35*3b9cdfa3SAntonio Huete Jimenez# if 1st member name without digits and without used image suffix then it is a TAR archive
36*3b9cdfa3SAntonio Huete Jimenez>>>>>>>>0	default		x
37*3b9cdfa3SAntonio Huete Jimenez>>>>>>>>>0	use	tar-file
386fca56fbSSascha Wildner#	minimal check and then display tar archive information which can also be
396fca56fbSSascha Wildner#	embedded inside others like Android Backup, Clam AntiVirus database
406fca56fbSSascha Wildner0	name		tar-file
416fca56fbSSascha Wildner>257	string		!ustar
426fca56fbSSascha Wildner# header padded with nuls
436fca56fbSSascha Wildner>>257	ulong		=0
446fca56fbSSascha Wildner# GNU tar version 1.29 with non pax format option without refusing
456fca56fbSSascha Wildner# creates misleading V7 header for Long path, Multi-volume, Volume type
466fca56fbSSascha Wildner>>>156	ubyte		0x4c		GNU tar archive
476fca56fbSSascha Wildner!:mime	application/x-gtar
486fca56fbSSascha Wildner!:ext	tar/gtar
496fca56fbSSascha Wildner>>>156	ubyte		0x4d		GNU tar archive
506fca56fbSSascha Wildner!:mime	application/x-gtar
516fca56fbSSascha Wildner!:ext	tar/gtar
526fca56fbSSascha Wildner>>>156	ubyte		0x56		GNU tar archive
536fca56fbSSascha Wildner!:mime	application/x-gtar
546fca56fbSSascha Wildner!:ext	tar/gtar
556fca56fbSSascha Wildner>>>156	default		x		tar archive (V7)
566fca56fbSSascha Wildner!:mime	application/x-tar
576fca56fbSSascha Wildner!:ext	tar
586fca56fbSSascha Wildner# other stuff in padding
596fca56fbSSascha Wildner# some implementations add new fields to the blank area at the end of the header record
606fca56fbSSascha Wildner# created for example by DOS TAR 3.20g 1994 Tim V.Shapore with -j option
616fca56fbSSascha Wildner>>257	ulong		!0		tar archive (old)
626fca56fbSSascha Wildner!:mime	application/x-tar
636fca56fbSSascha Wildner!:ext	tar
646fca56fbSSascha Wildner# magic in newer, GNU, posix variants
656fca56fbSSascha Wildner>257	string		=ustar
666fca56fbSSascha Wildner# 2 last char of magic and UStar version because string expression does not work
676fca56fbSSascha Wildner# 2 space characters followed by a null for GNU variant
686fca56fbSSascha Wildner>>261	ubelong		=0x72202000	POSIX tar archive (GNU)
696fca56fbSSascha Wildner!:mime	application/x-gtar
706fca56fbSSascha Wildner!:ext	tar/gtar
716fca56fbSSascha Wildner# UStar version with ASCII "00"
726fca56fbSSascha Wildner>>261	ubelong		0x72003030	POSIX
736fca56fbSSascha Wildner# gLOBAL and ExTENSION type only found in POSIX.1-2001 format
746fca56fbSSascha Wildner>>>156	ubyte		0x67		\b.1-2001
756fca56fbSSascha Wildner>>>156	ubyte		0x78		\b.1-2001
766fca56fbSSascha Wildner>>>156	ubyte		x		tar archive
776fca56fbSSascha Wildner!:mime	application/x-ustar
786fca56fbSSascha Wildner!:ext	tar/ustar
796fca56fbSSascha Wildner# version with 2 binary nuls embedded in Android Backup like com.android.settings.ab
806fca56fbSSascha Wildner>>261	ubelong		0x72000000	tar archive (ustar)
816fca56fbSSascha Wildner!:mime	application/x-ustar
826fca56fbSSascha Wildner!:ext	tar/ustar
836fca56fbSSascha Wildner# not seen ustar variant with garbish version
846fca56fbSSascha Wildner>>261	default		x		tar archive (unknown ustar)
856fca56fbSSascha Wildner!:mime	application/x-ustar
866fca56fbSSascha Wildner!:ext	tar/ustar
876fca56fbSSascha Wildner# type flag of 1st tar archive member
886fca56fbSSascha Wildner#>156	ubyte		x		\b, %c-type
896fca56fbSSascha Wildner>156	ubyte		x
906fca56fbSSascha Wildner>>156	ubyte		0		\b, file
916fca56fbSSascha Wildner>>156	ubyte		0x30		\b, file
926fca56fbSSascha Wildner>>156	ubyte		0x31		\b, hard link
936fca56fbSSascha Wildner>>156	ubyte		0x32		\b, symlink
946fca56fbSSascha Wildner>>156	ubyte		0x33		\b, char device
956fca56fbSSascha Wildner>>156	ubyte		0x34		\b, block device
966fca56fbSSascha Wildner>>156	ubyte		0x35		\b, directory
976fca56fbSSascha Wildner>>156	ubyte		0x36		\b, fifo
986fca56fbSSascha Wildner>>156	ubyte		0x37		\b, reserved
996fca56fbSSascha Wildner>>156	ubyte		0x4c		\b, long path
1006fca56fbSSascha Wildner>>156	ubyte		0x4d		\b, multi volume
1016fca56fbSSascha Wildner>>156	ubyte		0x56		\b, volume
1026fca56fbSSascha Wildner>>156	ubyte		0x67		\b, global
1036fca56fbSSascha Wildner>>156	ubyte		0x78		\b, extension
1046fca56fbSSascha Wildner>>156	default		x		\b, type
1056fca56fbSSascha Wildner>>>156	ubyte		x		'%c'
1066fca56fbSSascha Wildner# name[100]
1076fca56fbSSascha Wildner>0	string		>\0		%-.60s
1086fca56fbSSascha Wildner# mode mainly stored as an octal number in ASCII null or space terminated
1096fca56fbSSascha Wildner>100	string		>\0		\b, mode %-.7s
1106fca56fbSSascha Wildner# user id mainly as octal numbers in ASCII null or space terminated
1116fca56fbSSascha Wildner>108	string		>\0		\b, uid %-.7s
1126fca56fbSSascha Wildner# group id mainly as octal numbers in ASCII null or space terminated
1136fca56fbSSascha Wildner>116	string		>\0		\b, gid %-.7s
1146fca56fbSSascha Wildner# size mainly as octal number in ASCII
1156fca56fbSSascha Wildner>124	ubyte		<0x38
1166fca56fbSSascha Wildner>>124	string		>\0		\b, size %-.12s
1176fca56fbSSascha Wildner# coding indicated by setting the high-order bit of the leftmost byte
1186fca56fbSSascha Wildner>124	ubyte		>0xEF		\b, size 0x
1196fca56fbSSascha Wildner>>124	ubyte		!0xff		\b%2.2x
1206fca56fbSSascha Wildner>>125	ubyte		!0xff		\b%2.2x
1216fca56fbSSascha Wildner>>126	ubyte		!0xff		\b%2.2x
1226fca56fbSSascha Wildner>>127	ubyte		!0xff		\b%2.2x
1236fca56fbSSascha Wildner>>128	ubyte		!0xff		\b%2.2x
1246fca56fbSSascha Wildner>>129	ubyte		!0xff		\b%2.2x
1256fca56fbSSascha Wildner>>130	ubyte		!0xff		\b%2.2x
1266fca56fbSSascha Wildner>>131	ubyte		!0xff		\b%2.2x
1276fca56fbSSascha Wildner>>132	ubyte		!0xff		\b%2.2x
1286fca56fbSSascha Wildner>>133	ubyte		!0xff		\b%2.2x
1296fca56fbSSascha Wildner>>134	ubyte		!0xff		\b%2.2x
1306fca56fbSSascha Wildner>>135	ubyte		!0xff		\b%2.2x
1316fca56fbSSascha Wildner# seconds since 0:0:0 1 jan 1970 UTC as octal number mainly in ASCII null or space terminated
1326fca56fbSSascha Wildner>136	string		>\0		\b, seconds %-.11s
1336fca56fbSSascha Wildner# header checksum stored as an octal number in ASCII null or space terminated
1346fca56fbSSascha Wildner#>148	string		x		\b, cksum %.7s
1356fca56fbSSascha Wildner# linkname[100]
1366fca56fbSSascha Wildner>157	string		>\0		\b, linkname %-.40s
1376fca56fbSSascha Wildner# additional fields for ustar
1386fca56fbSSascha Wildner>257	string		=ustar
1396fca56fbSSascha Wildner# owner user name null terminated
1406fca56fbSSascha Wildner>>265	string		>\0		\b, user %-.32s
1416fca56fbSSascha Wildner# group name null terminated
1426fca56fbSSascha Wildner>>297	string		>\0		\b, group %-.32s
1436fca56fbSSascha Wildner# device major minor if not zero
1446fca56fbSSascha Wildner>>329	ubequad&0xCFCFCFCFcFcFcFdf	!0
1456fca56fbSSascha Wildner>>>329	string		x		\b, devmaj %-.7s
1466fca56fbSSascha Wildner>>337	ubequad&0xCFCFCFCFcFcFcFdf	!0
1476fca56fbSSascha Wildner>>>337	string		x		\b, devmin %-.7s
1486fca56fbSSascha Wildner# prefix[155]
1496fca56fbSSascha Wildner>>345	string		>\0		\b, prefix %-.155s
1506fca56fbSSascha Wildner# old non ustar/POSIX tar
1516fca56fbSSascha Wildner>257	string		!ustar
1526fca56fbSSascha Wildner>>508	string		=tar\0
1536fca56fbSSascha Wildner# padding[255] in old star
1546fca56fbSSascha Wildner>>>257	string		>\0		\b, padding: %-.40s
1556fca56fbSSascha Wildner>>508	default		x
1566fca56fbSSascha Wildner# padding[255] in old tar sometimes comment field
1576fca56fbSSascha Wildner>>>257	string		>\0		\b, comment: %-.40s
158*3b9cdfa3SAntonio Huete Jimenez# Summary:	Comic Book Archive *.CBT with TAR format
159*3b9cdfa3SAntonio Huete Jimenez# URL:		https://en.wikipedia.org/wiki/Comic_book_archive
160*3b9cdfa3SAntonio Huete Jimenez#		http://fileformats.archiveteam.org/wiki/Comic_Book_Archive
161*3b9cdfa3SAntonio Huete Jimenez# Note:		there exist also RAR, ZIP, ACE and 7Z packed variants
162*3b9cdfa3SAntonio Huete Jimenez0	name		tar-cbt
163*3b9cdfa3SAntonio Huete Jimenez>0	string		x		Comic Book archive, tar archive
164*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/x-tar
165*3b9cdfa3SAntonio Huete Jimenez!:mime	application/vnd.comicbook
166*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/vnd.comicbook+tar
167*3b9cdfa3SAntonio Huete Jimenez!:ext	cbt
168*3b9cdfa3SAntonio Huete Jimenez# name[100] probably like: 19.jpg 0001.png 0002.png
169*3b9cdfa3SAntonio Huete Jimenez# or maybe like ComicInfo.xml
170*3b9cdfa3SAntonio Huete Jimenez>0	string		>\0		\b, 1st image %-.60s
171327e51cbSPeter Avalos
1729f86ab30SPeter Avalos# Incremental snapshot gnu-tar format from:
1736fca56fbSSascha Wildner# https://www.gnu.org/software/tar/manual/html_node/Snapshot-Files.html
1749f86ab30SPeter Avalos0	string		GNU\ tar-	GNU tar incremental snapshot data
175*3b9cdfa3SAntonio Huete Jimenez>&0	regex		[0-9]\\.[0-9]+-[0-9]+	version %s
1769f86ab30SPeter Avalos
177327e51cbSPeter Avalos# cpio archives
178327e51cbSPeter Avalos#
179327e51cbSPeter Avalos# Yes, the top two "cpio archive" formats *are* supposed to just be "short".
180327e51cbSPeter Avalos# The idea is to indicate archives produced on machines with the same
181327e51cbSPeter Avalos# byte order as the machine running "file" with "cpio archive", and
182327e51cbSPeter Avalos# to indicate archives produced on machines with the opposite byte order
183327e51cbSPeter Avalos# from the machine running "file" with "byte-swapped cpio archive".
184327e51cbSPeter Avalos#
185327e51cbSPeter Avalos# The SVR4 "cpio(4)" hints that there are additional formats, but they
186327e51cbSPeter Avalos# are defined as "short"s; I think all the new formats are
187327e51cbSPeter Avalos# character-header formats and thus are strings, not numbers.
188327e51cbSPeter Avalos0	short		070707		cpio archive
18979343712SPeter Avalos!:mime	application/x-cpio
190327e51cbSPeter Avalos0	short		0143561		byte-swapped cpio archive
19179343712SPeter Avalos!:mime	application/x-cpio # encoding: swapped
192327e51cbSPeter Avalos0	string		070707		ASCII cpio archive (pre-SVR4 or odc)
193614728caSSascha Wildner!:mime	application/x-cpio
194327e51cbSPeter Avalos0	string		070701		ASCII cpio archive (SVR4 with no CRC)
195614728caSSascha Wildner!:mime	application/x-cpio
196327e51cbSPeter Avalos0	string		070702		ASCII cpio archive (SVR4 with CRC)
197614728caSSascha Wildner!:mime	application/x-cpio
198327e51cbSPeter Avalos
199e8af9738SPeter Avalos#
200e8af9738SPeter Avalos# Various archive formats used by various versions of the "ar"
201e8af9738SPeter Avalos# command.
202e8af9738SPeter Avalos#
203e8af9738SPeter Avalos
204e8af9738SPeter Avalos#
205e8af9738SPeter Avalos# Original UNIX archive formats.
206e8af9738SPeter Avalos# They were written with binary values in host byte order, and
207e8af9738SPeter Avalos# the magic number was a host "int", which might have been 16 bits
208e8af9738SPeter Avalos# or 32 bits.  We don't say "PDP-11" or "VAX", as there might have
209e8af9738SPeter Avalos# been ports to little-endian 16-bit-int or 32-bit-int platforms
210e8af9738SPeter Avalos# (x86?) using some of those formats; if none existed, feel free
211e8af9738SPeter Avalos# to use "PDP-11" for little-endian 16-bit and "VAX" for little-endian
212e8af9738SPeter Avalos# 32-bit.  There might have been big-endian ports of that sort as
213e8af9738SPeter Avalos# well.
214e8af9738SPeter Avalos#
215e8af9738SPeter Avalos0	leshort		0177555		very old 16-bit-int little-endian archive
216e8af9738SPeter Avalos0	beshort		0177555		very old 16-bit-int big-endian archive
217e8af9738SPeter Avalos0	lelong		0177555		very old 32-bit-int little-endian archive
218e8af9738SPeter Avalos0	belong		0177555		very old 32-bit-int big-endian archive
219e8af9738SPeter Avalos
220e8af9738SPeter Avalos0	leshort		0177545		old 16-bit-int little-endian archive
221e8af9738SPeter Avalos>2	string		__.SYMDEF	random library
222e8af9738SPeter Avalos0	beshort		0177545		old 16-bit-int big-endian archive
223e8af9738SPeter Avalos>2	string		__.SYMDEF	random library
224e8af9738SPeter Avalos0	lelong		0177545		old 32-bit-int little-endian archive
225e8af9738SPeter Avalos>4	string		__.SYMDEF	random library
226e8af9738SPeter Avalos0	belong		0177545		old 32-bit-int big-endian archive
227e8af9738SPeter Avalos>4	string		__.SYMDEF	random library
228e8af9738SPeter Avalos
229e8af9738SPeter Avalos#
230e8af9738SPeter Avalos# From "pdp" (but why a 4-byte quantity?)
231e8af9738SPeter Avalos#
232e8af9738SPeter Avalos0	lelong		0x39bed		PDP-11 old archive
233e8af9738SPeter Avalos0	lelong		0x39bee		PDP-11 4.0 archive
234e8af9738SPeter Avalos
235e8af9738SPeter Avalos#
236e8af9738SPeter Avalos# XXX - what flavor of APL used this, and was it a variant of
237e8af9738SPeter Avalos# some ar archive format?  It's similar to, but not the same
238e8af9738SPeter Avalos# as, the APL workspace magic numbers in pdp.
239e8af9738SPeter Avalos#
240e8af9738SPeter Avalos0	long		0100554		apl workspace
241e8af9738SPeter Avalos
242e8af9738SPeter Avalos#
243e8af9738SPeter Avalos# System V Release 1 portable(?) archive format.
244e8af9738SPeter Avalos#
245e8af9738SPeter Avalos0	string		=<ar>		System V Release 1 ar archive
246e8af9738SPeter Avalos!:mime	application/x-archive
247e8af9738SPeter Avalos
248e8af9738SPeter Avalos#
249e8af9738SPeter Avalos# Debian package; it's in the portable archive format, and needs to go
250e8af9738SPeter Avalos# before the entry for regular portable archives, as it's recognized as
251e8af9738SPeter Avalos# a portable archive whose first member has a name beginning with
252e8af9738SPeter Avalos# "debian".
253327e51cbSPeter Avalos#
2546fca56fbSSascha Wildner# Update: Joerg Jenderek
2556fca56fbSSascha Wildner# URL: https://en.wikipedia.org/wiki/Deb_(file_format)
256327e51cbSPeter Avalos0	string		=!<arch>\ndebian
2576fca56fbSSascha Wildner# https://manpages.debian.org/testing/dpkg/dpkg-split.1.en.html
2586fca56fbSSascha Wildner>14	string		-split	part of multipart Debian package
25982c5fa3eSPeter Avalos!:mime	application/vnd.debian.binary-package
2606fca56fbSSascha Wildner# udeb is used for stripped down deb file
2616fca56fbSSascha Wildner!:ext	deb/udeb
2626fca56fbSSascha Wildner>14	string		-binary	Debian binary package
26382c5fa3eSPeter Avalos!:mime	application/vnd.debian.binary-package
264c990e5baSDaniel Fojt# For ipk packager see also https://en.wikipedia.org/wiki/Opkg
265c990e5baSDaniel Fojt!:ext	deb/udeb/ipk
2666fca56fbSSascha Wildner# This should not happen
2676fca56fbSSascha Wildner>14	default		x	Unknown Debian package
268970935fdSSascha Wildner# NL terminated version; for most Debian cases this is 2.0 or 2.1 for split
269327e51cbSPeter Avalos>68	string		>\0		(format %s)
2706fca56fbSSascha Wildner#>68	string		!2.0\n
2716fca56fbSSascha Wildner#>>68	string		x		(format %.3s)
2726fca56fbSSascha Wildner>68	string		=2.0\n
2736fca56fbSSascha Wildner# 2nd archive name=control archive name like control.tar.gz or control.tar.xz
2746fca56fbSSascha Wildner>>72	string		>\0		\b, with %.14s
2756fca56fbSSascha Wildner# look for 3rd archive name=data archive name like data.tar.{gz,xz,bz2,lzma}
2766fca56fbSSascha Wildner>>0	search/0x93e4f	data.tar.	\b, data compression
2776fca56fbSSascha Wildner# the above line only works if FILE_BYTES_MAX in ../../src/file.h is raised
2786fca56fbSSascha Wildner# for example like libreoffice-dev-doc_1%3a5.2.7-1+rpi1+deb9u3_all.deb
279c990e5baSDaniel Fojt>>>&0	string		x		%.2s
280c990e5baSDaniel Fojt# skip space (0x20 BSD) and slash (0x2f System V) character marking end of name
281c990e5baSDaniel Fojt>>>&2	ubyte		!0x20
282c990e5baSDaniel Fojt>>>>&-1	ubyte		!0x2f
283c990e5baSDaniel Fojt# display 3rd character of file name extension like 2 of bz2 or m of lzma
284c990e5baSDaniel Fojt>>>>>&-1	ubyte	x		\b%c
285c990e5baSDaniel Fojt>>>>>>&0	ubyte	!0x20
286c990e5baSDaniel Fojt>>>>>>>&-1	ubyte	!0x2f
287c990e5baSDaniel Fojt# display 4th character of file name extension like a of lzma
288c990e5baSDaniel Fojt>>>>>>>>&-1	ubyte	x		\b%c
289970935fdSSascha Wildner# split debian package case
2906fca56fbSSascha Wildner>68	string		=2.1\n
2916fca56fbSSascha Wildner# dpkg-1.18.25/dpkg-split/info.c
2926fca56fbSSascha Wildner# NL terminated ASCII package name like ckermit
2936fca56fbSSascha Wildner>>&0	string		x		\b, %s
2946fca56fbSSascha Wildner# NL terminated package version like 302-5.3
2956fca56fbSSascha Wildner>>>&1	string		x		%s
2966fca56fbSSascha Wildner# NL terminated MD5 checksum
2976fca56fbSSascha Wildner>>>>&1	string		x		\b, MD5 %s
2986fca56fbSSascha Wildner# NL terminated original package length
2996fca56fbSSascha Wildner>>>>>&1	string		x		\b, unsplitted size %s
3006fca56fbSSascha Wildner# NL terminated part length
3016fca56fbSSascha Wildner>>>>>>&1	string	x		\b, part length %s
3026fca56fbSSascha Wildner# NL terminated package part like n/m
3036fca56fbSSascha Wildner>>>>>>>&1	string	x		\b, part %s
3046fca56fbSSascha Wildner# NL terminated package architecture like armhf since dpkg 1.16.1 or later
3056fca56fbSSascha Wildner>>>>>>>>&1	string	x		\b, %s
306327e51cbSPeter Avalos
307e8af9738SPeter Avalos#
308e8af9738SPeter Avalos# MIPS archive; they're in the portable archive format, and need to go
309e8af9738SPeter Avalos# before the entry for regular portable archives, as it's recognized as
310e8af9738SPeter Avalos# a portable archive whose first member has a name beginning with
311e8af9738SPeter Avalos# "__________E".
312327e51cbSPeter Avalos#
313327e51cbSPeter Avalos0	string	=!<arch>\n__________E	MIPS archive
314e8af9738SPeter Avalos!:mime	application/x-archive
315327e51cbSPeter Avalos>20	string	U			with MIPS Ucode members
316327e51cbSPeter Avalos>21	string	L			with MIPSEL members
317327e51cbSPeter Avalos>21	string	B			with MIPSEB members
318327e51cbSPeter Avalos>19	string	L			and an EL hash table
319327e51cbSPeter Avalos>19	string	B			and an EB hash table
320327e51cbSPeter Avalos>22	string	X			-- out of date
321327e51cbSPeter Avalos
322327e51cbSPeter Avalos#
323e8af9738SPeter Avalos# BSD/SVR2-and-later portable archive formats.
324327e51cbSPeter Avalos#
3256fca56fbSSascha Wildner# Update: Joerg Jenderek
3266fca56fbSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/AR
3276fca56fbSSascha Wildner# Reference:	https://www.unix.com/man-page/opensolaris/3HEAD/ar.h/
3286fca56fbSSascha Wildner# Note:		Mach-O universal binary in ./cafebabe is dependent
3296fca56fbSSascha Wildner# TODO:		unify current ar archive, MIPS archive, Debian package
3306fca56fbSSascha Wildner#		distinguish BSD, SVR; 32, 64 bit; HP from other 32-bit SVR;
3316fca56fbSSascha Wildner#		*.ar packages from *.a libraries. handle empty archive
3326fca56fbSSascha Wildner0	string		=!<arch>\n		current ar archive
3336fca56fbSSascha Wildner# print first and possibly second ar_name[16] for debugging purpose
3346fca56fbSSascha Wildner#>8			string	x	\b, 1st "%.16s"
3356fca56fbSSascha Wildner#>68			string	x	\b, 2nd "%.16s"
33679343712SPeter Avalos!:mime	application/x-archive
3376fca56fbSSascha Wildner# a in most case for libraries; lib for Microsoft libraries; ar else cases
3386fca56fbSSascha Wildner!:ext	a/lib/ar
339327e51cbSPeter Avalos>8	string		__.SYMDEF	random library
3406fca56fbSSascha Wildner# first member with long marked name __.SYMDEF SORTED implies BSD library
341e8af9738SPeter Avalos>68	string		__.SYMDEF\ SORTED	random library
3426fca56fbSSascha Wildner# Reference: https://parisc.wiki.kernel.org/images-parisc/b/b2/Rad_11_0_32.pdf
3436fca56fbSSascha Wildner# "archive file" entry moved from ./hp
3446fca56fbSSascha Wildner# LST header system_id 0210h~PA-RISC 1.1,... identifies the target architecture
3456fca56fbSSascha Wildner# LST header a_magic 0619h~relocatable library
3466fca56fbSSascha Wildner>68	belong 		0x020b0619	- PA-RISC1.0 relocatable library
3476fca56fbSSascha Wildner>68	belong	 	0x02100619	- PA-RISC1.1 relocatable library
3486fca56fbSSascha Wildner>68	belong 		0x02110619	- PA-RISC1.2 relocatable library
3496fca56fbSSascha Wildner>68	belong 		0x02140619	- PA-RISC2.0 relocatable library
3506fca56fbSSascha Wildner#EOF for common ar archives
351e8af9738SPeter Avalos
352327e51cbSPeter Avalos#
353e8af9738SPeter Avalos# "Thin" archive, as can be produced by GNU ar.
354327e51cbSPeter Avalos#
355e8af9738SPeter Avalos0	string		=!<thin>\n	thin archive with
356e8af9738SPeter Avalos>68	belong		0		no symbol entries
357e8af9738SPeter Avalos>68	belong		1		%d symbol entry
358e8af9738SPeter Avalos>68	belong		>1		%d symbol entries
359327e51cbSPeter Avalos
3606fca56fbSSascha Wildner0	search/1	-h-		Software Tools format archive text
3616fca56fbSSascha Wildner
362327e51cbSPeter Avalos# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com)
363327e51cbSPeter Avalos#
364327e51cbSPeter Avalos# The first byte is the magic (0x1a), byte 2 is the compression type for
365327e51cbSPeter Avalos# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS
366327e51cbSPeter Avalos# filename of the first file (null terminated).  Since some types collide
367327e51cbSPeter Avalos# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%),
368327e51cbSPeter Avalos# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%).  0x01 collides with terminfo.
369327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000081a	ARC archive data, dynamic LZW
37079343712SPeter Avalos!:mime	application/x-arc
371327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000091a	ARC archive data, squashed
37279343712SPeter Avalos!:mime	application/x-arc
373327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000021a	ARC archive data, uncompressed
37479343712SPeter Avalos!:mime	application/x-arc
375327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000031a	ARC archive data, packed
37679343712SPeter Avalos!:mime	application/x-arc
377327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000041a	ARC archive data, squeezed
37879343712SPeter Avalos!:mime	application/x-arc
379327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000061a	ARC archive data, crunched
38079343712SPeter Avalos!:mime	application/x-arc
381327e51cbSPeter Avalos# [JW] stuff taken from idarc, obviously ARC successors:
382327e51cbSPeter Avalos0	lelong&0x8080ffff	0x00000a1a	PAK archive data
38379343712SPeter Avalos!:mime	application/x-arc
384327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000141a	ARC+ archive data
38579343712SPeter Avalos!:mime	application/x-arc
386327e51cbSPeter Avalos0	lelong&0x8080ffff	0x0000481a	HYP archive data
38779343712SPeter Avalos!:mime	application/x-arc
388327e51cbSPeter Avalos
389327e51cbSPeter Avalos# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk)
390327e51cbSPeter Avalos# I can't create either SPARK or ArcFS archives so I have not tested this stuff
391327e51cbSPeter Avalos# [GRR:  the original entries collide with ARC, above; replaced with combined
392327e51cbSPeter Avalos#  version (not tested)]
393327e51cbSPeter Avalos#0	byte		0x1a		RISC OS archive (spark format)
394327e51cbSPeter Avalos0	string		\032archive	RISC OS archive (ArcFS format)
395327e51cbSPeter Avalos0       string          Archive\000     RISC OS archive (ArcFS format)
396327e51cbSPeter Avalos
397327e51cbSPeter Avalos# All these were taken from idarc, many could not be verified. Unfortunately,
398327e51cbSPeter Avalos# there were many low-quality sigs, i.e. easy to trigger false positives.
399327e51cbSPeter Avalos# Please notify me of any real-world fishy/ambiguous signatures and I'll try
400327e51cbSPeter Avalos# to get my hands on the actual archiver and see if I find something better. [JW]
401327e51cbSPeter Avalos# probably many can be enhanced by finding some 0-byte or control char near the start
402327e51cbSPeter Avalos
403327e51cbSPeter Avalos# idarc calls this Crush/Uncompressed... *shrug*
404327e51cbSPeter Avalos0	string	CRUSH Crush archive data
405327e51cbSPeter Avalos# Squeeze It (.sqz)
406327e51cbSPeter Avalos0	string	HLSQZ Squeeze It archive data
407327e51cbSPeter Avalos# SQWEZ
408327e51cbSPeter Avalos0	string	SQWEZ SQWEZ archive data
409327e51cbSPeter Avalos# HPack (.hpk)
410327e51cbSPeter Avalos0	string	HPAK HPack archive data
411327e51cbSPeter Avalos# HAP
412327e51cbSPeter Avalos0	string	\x91\x33HF HAP archive data
413327e51cbSPeter Avalos# MD/MDCD
414327e51cbSPeter Avalos0	string	MDmd MDCD archive data
415327e51cbSPeter Avalos# LIM
416327e51cbSPeter Avalos0	string	LIM\x1a LIM archive data
417327e51cbSPeter Avalos# SAR
418327e51cbSPeter Avalos3	string	LH5 SAR archive data
419327e51cbSPeter Avalos# BSArc/BS2
420e8af9738SPeter Avalos0	string	\212\3SB\020\0	BSArc/BS2 archive data
421e8af9738SPeter Avalos# Bethesda Softworks Archive (Oblivion)
422e8af9738SPeter Avalos0	string	BSA\0 		BSArc archive data
423e8af9738SPeter Avalos>4	lelong	x		version %d
424327e51cbSPeter Avalos# MAR
425327e51cbSPeter Avalos2	string	=-ah MAR archive data
426327e51cbSPeter Avalos# ACB
4279f86ab30SPeter Avalos#0	belong&0x00f800ff	0x00800000 ACB archive data
428327e51cbSPeter Avalos# CPZ
429327e51cbSPeter Avalos# TODO, this is what idarc says: 0	string	\0\0\0 CPZ archive data
430327e51cbSPeter Avalos# JRC
431327e51cbSPeter Avalos0	string	JRchive JRC archive data
432327e51cbSPeter Avalos# Quantum
433327e51cbSPeter Avalos0	string	DS\0 Quantum archive data
434327e51cbSPeter Avalos# ReSOF
435327e51cbSPeter Avalos0	string	PK\3\6 ReSOF archive data
436327e51cbSPeter Avalos# QuArk
437327e51cbSPeter Avalos0	string	7\4 QuArk archive data
438327e51cbSPeter Avalos# YAC
439327e51cbSPeter Avalos14	string	YC YAC archive data
440327e51cbSPeter Avalos# X1
441327e51cbSPeter Avalos0	string	X1 X1 archive data
442327e51cbSPeter Avalos0	string	XhDr X1 archive data
443327e51cbSPeter Avalos# CDC Codec (.dqt)
444327e51cbSPeter Avalos0	belong&0xffffe000	0x76ff2000 CDC Codec archive data
445327e51cbSPeter Avalos# AMGC
446327e51cbSPeter Avalos0	string	\xad6" AMGC archive data
447327e51cbSPeter Avalos# NuLIB
448e8af9738SPeter Avalos0	string	N\xc3\xb5F\xc3\xa9lx\xc3\xa5 NuLIB archive data
449327e51cbSPeter Avalos# PakLeo
450327e51cbSPeter Avalos0	string	LEOLZW PAKLeo archive data
451327e51cbSPeter Avalos# ChArc
452327e51cbSPeter Avalos0	string	SChF ChArc archive data
453327e51cbSPeter Avalos# PSA
454327e51cbSPeter Avalos0	string	PSA PSA archive data
455327e51cbSPeter Avalos# CrossePAC
456327e51cbSPeter Avalos0	string	DSIGDCC CrossePAC archive data
457327e51cbSPeter Avalos# Freeze
458327e51cbSPeter Avalos0	string	\x1f\x9f\x4a\x10\x0a Freeze archive data
459327e51cbSPeter Avalos# KBoom
460e8af9738SPeter Avalos0	string	\xc2\xa8MP\xc2\xa8 KBoom archive data
461327e51cbSPeter Avalos# NSQ, must go after CDC Codec
462327e51cbSPeter Avalos0	string	\x76\xff NSQ archive data
463327e51cbSPeter Avalos# DPA
464327e51cbSPeter Avalos0	string	Dirk\ Paehl DPA archive data
465327e51cbSPeter Avalos# BA
466327e51cbSPeter Avalos# TODO: idarc says "bytes 0-2 == bytes 3-5"
467327e51cbSPeter Avalos# TTComp
468c30bd091SSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/TTComp_archive
469c30bd091SSascha Wildner# Update: Joerg Jenderek
470c30bd091SSascha Wildner# GRR: line below is too general as it matches also Panorama database "TCDB 2003-10 demo.pan", others
471c30bd091SSascha Wildner0	string	\0\6
472c30bd091SSascha Wildner# look for first keyword of Panorama database *.pan
473c30bd091SSascha Wildner>12	search/261	DESIGN
474c30bd091SSascha Wildner# skip keyword with low entropy
475614728caSSascha Wildner>12	default		x
476614728caSSascha Wildner# skip DOS 2.0 backup id file, sequence 6 with many nils like BACKUPID_xx6.@@@ handled by ./msdos
477614728caSSascha Wildner>>8	quad		!0
478614728caSSascha Wildner>>>0	use	ttcomp
479614728caSSascha Wildner# variant ASCII, 4K dictionary (strength=48=50-2). With strength=49 wrong order! WHY?
480614728caSSascha Wildner0	string	\1\6
481614728caSSascha Wildner# TODO:
482614728caSSascha Wildner# skip VAX-order 68k Blit mpx/mux executable (strength=50) handled by ./blit
483614728caSSascha Wildner!:strength	-2
484614728caSSascha Wildner>0	use	ttcomp
485614728caSSascha Wildner0	string	\0\5
486614728caSSascha Wildner# skip some DOS 2.0 backup id file, sequence 5 with many nils like BACKUPID_075.@@@ handled by ./msdos
487614728caSSascha Wildner>8	quad	!0
488614728caSSascha Wildner>>0	use	ttcomp
489614728caSSascha Wildner0	string	\1\5
490614728caSSascha Wildner# TODO:
491614728caSSascha Wildner# variant ASCII, 2K dictionary (strength=48=50-2). With strength=49 wrong order! WHY?
492614728caSSascha Wildner# skip ctab data (strength=50) handled by ./ibm6000
493614728caSSascha Wildner# skip locale data table (strength=50) handled by ./digital
494614728caSSascha Wildner!:strength	-2
495614728caSSascha Wildner>0	use	ttcomp
496614728caSSascha Wildner0	string	\0\4
497614728caSSascha Wildner# skip many Maple help database *.hdb with version tag handled by ./maple
498614728caSSascha Wildner>1028	string	!version
499614728caSSascha Wildner# skip veclib maple.hdb by looking for Mable keyword
500614728caSSascha Wildner>>4	search/1091	Maple\040
501614728caSSascha Wildner#>4	search/34090	Maple\040
502614728caSSascha Wildner>>4	default		x
503614728caSSascha Wildner# skip DOS 2.0-3.2 backed up sequence 4 with many nils like LOTUS5.RAR handled by ./msdos
504614728caSSascha Wildner# skip xBASE Compound Index file *.CDX with many nils
505614728caSSascha Wildner>>>0x54	quad		!0
506614728caSSascha Wildner>>>>0	use	ttcomp
507614728caSSascha Wildner0	string	\1\4
508614728caSSascha Wildner# TODO:
509614728caSSascha Wildner# skip Commodore PET BASIC 4.0 program *.prg
510614728caSSascha Wildner# variant ASCII, 1K dictionary (strength=48=50-2). With strength=49 wrong order! WHY?
511614728caSSascha Wildner# skip shared library (strength=50) handled by ./ibm6000
512614728caSSascha Wildner!:strength	-2
513614728caSSascha Wildner>0	use	ttcomp
514614728caSSascha Wildner#	display information of TTComp archive
515614728caSSascha Wildner0	name	ttcomp
516614728caSSascha Wildner# (version 5.25) labeled the entry as "TTComp archive data"
517614728caSSascha Wildner>0	ubyte	x	TTComp archive data
518614728caSSascha Wildner!:mime	application/x-compress-ttcomp
519614728caSSascha Wildner# PBACKSCR.PI1
520614728caSSascha Wildner!:ext	$xe/$ts/pi1/__d
521614728caSSascha Wildner# compression type: 0~binary compression 1~ASCII compression
522614728caSSascha Wildner>0	ubyte	0	\b, binary
523614728caSSascha Wildner>0	ubyte	1	\b, ASCII
524614728caSSascha Wildner# size of the dictionary:  4~1024 bytes 5~2048 bytes 6~4096 bytes
525614728caSSascha Wildner>1	ubyte	4	\b, 1K
526614728caSSascha Wildner>1	ubyte	5	\b, 2K
527614728caSSascha Wildner>1	ubyte	6	\b, 4K
528614728caSSascha Wildner>1	ubyte	x	dictionary
529614728caSSascha Wildner#	https://mark0.net/forum/index.php?topic=848
530614728caSSascha Wildner# last 3 bytes probably have only 8 possible bit sequences
531614728caSSascha Wildner# xxxxxxxx 0000000x 11111111	____FFh
532614728caSSascha Wildner# xxxxxxxx 10000000 01111111	__807Fh
533614728caSSascha Wildner# 0xxxxxxx 11000000 00111111	__C03Fh
534614728caSSascha Wildner# 00xxxxxx 11100000 00011111	__E01Fh
535614728caSSascha Wildner# 000xxxxx 11110000 00001111	__F00Fh
536614728caSSascha Wildner# 0000xxxx 11111000 00000111	__F807h
537614728caSSascha Wildner# 00000xxx 11111100 00000011	__FC03h
538614728caSSascha Wildner# 000000xx 11111110 00000001	__FE01h
539614728caSSascha Wildner# but for quickgif.__d 0A7DD4h
540614728caSSascha Wildner#>-3	ubyte		x	\b, last 3 bytes 0x%2.2x
541614728caSSascha Wildner#>-2	ubeshort	x	\b%4.4x
5426fca56fbSSascha Wildner# From:		Joerg Jenderek
543*3b9cdfa3SAntonio Huete Jimenez# URL:		https://en.wikipedia.org/wiki/Disk_Copy
5446fca56fbSSascha Wildner# reference:	http://nulib.com/library/FTN.e00005.htm
5456fca56fbSSascha Wildner0x52	ubeshort	0x0100
546970935fdSSascha Wildner# test for disk image size equal or above 400k
547970935fdSSascha Wildner>0x40	ubelong		>409599
548970935fdSSascha Wildner# test also for disk image size equal or below 1440k to skip
549970935fdSSascha Wildner# windows7en.mbr UNICODE.DAT
550*3b9cdfa3SAntonio Huete Jimenez#>>0x40	ubelong		<1474561
551*3b9cdfa3SAntonio Huete Jimenez# test now for "low" disk image size equal or below 64 MiB to skip
552*3b9cdfa3SAntonio Huete Jimenez# windows7en.mbr (B441BBAAh) UNICODE.DAT (0400AF05h)
553*3b9cdfa3SAntonio Huete Jimenez>>0x40	ubelong		<0x04000001
554*3b9cdfa3SAntonio Huete Jimenez# To skip Flags$StringJoiner.class with size 00106A61h test also for valid disk image sizes
555*3b9cdfa3SAntonio Huete Jimenez# 00064000 for  400k GCR disks	dc42-400k-gcr.trid.xml
556*3b9cdfa3SAntonio Huete Jimenez# 000c8000 for  800k GCR disks	dc42-800k-gcr.trid.xml
557*3b9cdfa3SAntonio Huete Jimenez# 000b4000 for  720k MFM disks	dc42-720k-mfm.trid.xml
558*3b9cdfa3SAntonio Huete Jimenez# 00168000 for 1440k MFM disks	dc42-1440k-mfm.trid.xml
559*3b9cdfa3SAntonio Huete Jimenez#	https://lisaem.sunder.net/LisaProjectDocs.txt
560*3b9cdfa3SAntonio Huete Jimenez# 00500000	05M	available
561*3b9cdfa3SAntonio Huete Jimenez# 00A00000	10M	available
562*3b9cdfa3SAntonio Huete Jimenez# 01800000	24M	possible
563*3b9cdfa3SAntonio Huete Jimenez# 02000000	32M	uncertain
564*3b9cdfa3SAntonio Huete Jimenez# 04000000	64M	uncertain
565*3b9cdfa3SAntonio Huete Jimenez>>>0x40	ubelong&0xf8003fFF	0
566*3b9cdfa3SAntonio Huete Jimenez# skip samples with invalid disk name length like:
567*3b9cdfa3SAntonio Huete Jimenez# 181 (biosmd80.rom) 202 (Flags$StringJoiner.class) 90 (UNICODE.DAT)
568*3b9cdfa3SAntonio Huete Jimenez>>>>0x0	ubyte			<64
569*3b9cdfa3SAntonio Huete Jimenez>>>>>0	use			dc42-floppy
570970935fdSSascha Wildner#	display information of Apple DiskCopy 4.2 floppy image
571970935fdSSascha Wildner0	name		dc42-floppy
572*3b9cdfa3SAntonio Huete Jimenez# disk name length; maximal 63
573*3b9cdfa3SAntonio Huete Jimenez#>0	ubyte	    	x	DISK NAME LENGTH %u
574*3b9cdfa3SAntonio Huete Jimenez# ASCII image pascal (maximal 63 bytes) name padded with NULs like:
575*3b9cdfa3SAntonio Huete Jimenez# "Microsoft Mail" "Disquette 2" "IIe Installer Disk"
576*3b9cdfa3SAntonio Huete Jimenez# "-lisaem.sunder.net hd-" (dc42-lisaem.trid.xml) "-not a Macintosh disk" (dc42-nonmac.trid.xml)
577970935fdSSascha Wildner>00	pstring/B	x	Apple DiskCopy 4.2 image %s
5786fca56fbSSascha Wildner#!:mime	application/octet-stream
579970935fdSSascha Wildner!:mime	application/x-dc42-floppy-image
5806fca56fbSSascha Wildner!:apple	dCpydImg
581*3b9cdfa3SAntonio Huete Jimenez# probably also img like: "Utilitaires 2.img" "Installation 7.img"
582*3b9cdfa3SAntonio Huete Jimenez!:ext	image/dc42/img
583*3b9cdfa3SAntonio Huete Jimenez# data size in bytes like: 409600 737280 819200 1474560
584970935fdSSascha Wildner>0x40	ubelong		x	\b, %u bytes
585970935fdSSascha Wildner# for debugging purpose size in hexadecimal
586614728caSSascha Wildner#>0x40	ubelong		x	(%#8.8x)
587*3b9cdfa3SAntonio Huete Jimenez# tag size in bytes like: 0 (often) 2580h (PUID fmt/625) 4B00h (Microsoft Mail.image)
588614728caSSascha Wildner>0x44	ubelong		>0	\b, %#x tag size
5896fca56fbSSascha Wildner# data checksum
590614728caSSascha Wildner#>0x48	ubelong		x	\b, %#x checksum
5916fca56fbSSascha Wildner# tag checksum
592614728caSSascha Wildner#>0x4c	ubelong		x	\b, %#x tag checksum
593*3b9cdfa3SAntonio Huete Jimenez# disk encoding like: 0 1 2 3 (PUID: fmt/625)
594970935fdSSascha Wildner>0x50	ubyte		0	\b, GCR CLV ssdd (400k)
595970935fdSSascha Wildner>0x50	ubyte		1	\b, GCR CLV dsdd (800k)
596970935fdSSascha Wildner>0x50	ubyte		2	\b, MFM CAV dsdd (720k)
597970935fdSSascha Wildner>0x50	ubyte		3	\b, MFM CAV dshd (1440k)
598614728caSSascha Wildner>0x50	ubyte		>3	\b, %#x encoding
599*3b9cdfa3SAntonio Huete Jimenez# format byte like: 12h (Lisa 400K) 24h (400K Macintosh) 96h (800K Apple II disk)
600*3b9cdfa3SAntonio Huete Jimenez# 2 (Mac 400k "Disquette Installation 13.image")
601*3b9cdfa3SAntonio Huete Jimenez# 22h (double-sided MFM or Mac 800k "Disco 12.image" "IIe Installer Disk.image")
602614728caSSascha Wildner>0x51	ubyte		x	\b, %#x format
603614728caSSascha Wildner#>0x54	ubequad		x	\b, data %#16.16llx
604327e51cbSPeter Avalos# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation?
605327e51cbSPeter Avalos0	string	ESP ESP archive data
606327e51cbSPeter Avalos# ZPack
607327e51cbSPeter Avalos0	string	\1ZPK\1 ZPack archive data
608327e51cbSPeter Avalos# Sky
609327e51cbSPeter Avalos0	string	\xbc\x40 Sky archive data
610327e51cbSPeter Avalos# UFA
611327e51cbSPeter Avalos0	string	UFA UFA archive data
612327e51cbSPeter Avalos# Dry
613327e51cbSPeter Avalos0	string	=-H2O DRY archive data
614327e51cbSPeter Avalos# FoxSQZ
615327e51cbSPeter Avalos0	string	FOXSQZ FoxSQZ archive data
616327e51cbSPeter Avalos# AR7
617327e51cbSPeter Avalos0	string	,AR7 AR7 archive data
618327e51cbSPeter Avalos# PPMZ
619327e51cbSPeter Avalos0	string	PPMZ PPMZ archive data
620327e51cbSPeter Avalos# MS Compress
6216fca56fbSSascha Wildner# Update: Joerg Jenderek
6226fca56fbSSascha Wildner# URL: http://fileformats.archiveteam.org/wiki/MS-DOS_installation_compression
6236fca56fbSSascha Wildner# Reference: https://hwiegman.home.xs4all.nl/fileformats/compress/szdd_kwaj_format.html
6246fca56fbSSascha Wildner# Note: use correct version of extracting tool like EXPAND, UNPACK, DECOMP or 7Z
6256fca56fbSSascha Wildner4	string	\x88\xf0\x27
6266fca56fbSSascha Wildner#		KWAJ variant
6276fca56fbSSascha Wildner>0	string	KWAJ		MS Compress archive data, KWAJ variant
6286fca56fbSSascha Wildner!:mime	application/x-ms-compress-kwaj
6296fca56fbSSascha Wildner# extension not working in version 5.32
6306fca56fbSSascha Wildner# magic/Magdir/archive, 284: Warning: EXTENSION type ` ??_' has bad char '?'
6316fca56fbSSascha Wildner# file: line 284: Bad magic entry '   ??_'
6326fca56fbSSascha Wildner!:ext	??_
6336fca56fbSSascha Wildner# compression method (0-4)
6346fca56fbSSascha Wildner>>8	uleshort	x	\b, %u method
6356fca56fbSSascha Wildner# offset of compressed data
636614728caSSascha Wildner>>10	uleshort	x	\b, %#x offset
6376fca56fbSSascha Wildner#>>(10.s)	uleshort	x
6386fca56fbSSascha Wildner#>>>&-6		string	x	\b, TEST extension %-.3s
6396fca56fbSSascha Wildner# header flags to mark header extensions
640614728caSSascha Wildner>>12	uleshort	>0	\b, %#x flags
6416fca56fbSSascha Wildner# 4 bytes: decompressed length of file
6426fca56fbSSascha Wildner>>12	uleshort	&0x01
6436fca56fbSSascha Wildner>>>14	ulelong		x	\b, original size: %u bytes
6446fca56fbSSascha Wildner# 2 bytes: unknown purpose
6456fca56fbSSascha Wildner# 2 bytes: length of unknown data + mentioned bytes
6466fca56fbSSascha Wildner# 1-9 bytes: null-terminated file name
6476fca56fbSSascha Wildner# 1-4 bytes: null-terminated file extension
6486fca56fbSSascha Wildner>>12	uleshort	&0x08
6496fca56fbSSascha Wildner>>>12	uleshort				^0x01
6506fca56fbSSascha Wildner>>>>12		uleshort			^0x02
6516fca56fbSSascha Wildner>>>>>12			uleshort		^0x04
6526fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6536fca56fbSSascha Wildner>>>>>>>14				string	x	\b, %-.8s
6546fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6556fca56fbSSascha Wildner>>>>>>>14				string	x	\b, %-.8s
6566fca56fbSSascha Wildner>>>>>>>>&1				string	x	\b.%-.3s
6576fca56fbSSascha Wildner>>>>>12			uleshort		&0x04
6586fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6596fca56fbSSascha Wildner>>>>>>>(14.s)			uleshort	x
6606fca56fbSSascha Wildner>>>>>>>>&14				string	x	\b, %-.8s
6616fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6626fca56fbSSascha Wildner>>>>>>>(14.s)			uleshort	x
6636fca56fbSSascha Wildner>>>>>>>>&14				string	x	\b, %-.8s
6646fca56fbSSascha Wildner>>>>>>>>>&1				string	x	\b.%-.3s
6656fca56fbSSascha Wildner>>>>12		uleshort			&0x02
6666fca56fbSSascha Wildner>>>>>12			uleshort		^0x04
6676fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6686fca56fbSSascha Wildner>>>>>>>16				string	x	\b, %-.8s
6696fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6706fca56fbSSascha Wildner>>>>>>>16				string	x	\b, %-.8s
6716fca56fbSSascha Wildner>>>>>>>>&1				string	x	\b.%-.3s
6726fca56fbSSascha Wildner>>>>>12			uleshort		&0x04
6736fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6746fca56fbSSascha Wildner>>>>>>>(16.s)			uleshort	x
6756fca56fbSSascha Wildner>>>>>>>>&16				string	x	\b, %-.8s
6766fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6776fca56fbSSascha Wildner>>>>>>>(16.s)			uleshort	x
6786fca56fbSSascha Wildner>>>>>>>&16				string	x	%-.8s
6796fca56fbSSascha Wildner>>>>>>>>&1				string	x	\b.%-.3s
6806fca56fbSSascha Wildner>>>12	uleshort				&0x01
6816fca56fbSSascha Wildner>>>>12		uleshort			^0x02
6826fca56fbSSascha Wildner>>>>>12			uleshort		^0x04
6836fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6846fca56fbSSascha Wildner>>>>>>>18				string	x	\b, %-.8s
6856fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6866fca56fbSSascha Wildner>>>>>>>18				string	x	\b, %-.8s
6876fca56fbSSascha Wildner>>>>>>>>&1				string	x	\b.%-.3s
6886fca56fbSSascha Wildner>>>>>12			uleshort		&0x04
6896fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6906fca56fbSSascha Wildner>>>>>>>(18.s)			uleshort	x
6916fca56fbSSascha Wildner>>>>>>>>&18				string	x	\b, %-.8s
6926fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
6936fca56fbSSascha Wildner>>>>>>>(18.s)			uleshort	x
6946fca56fbSSascha Wildner>>>>>>>>&18				string	x	\b, %-.8s
6956fca56fbSSascha Wildner>>>>>>>>>&1				string	x	\b.%-.3s
6966fca56fbSSascha Wildner>>>>12		uleshort			&0x02
6976fca56fbSSascha Wildner>>>>>12			uleshort		^0x04
6986fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
6996fca56fbSSascha Wildner>>>>>>>20				string	x	\b, %-.8s
7006fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
7016fca56fbSSascha Wildner>>>>>>>20				string	x	\b, %-.8s
7026fca56fbSSascha Wildner>>>>>>>>&1				string	x	\b.%-.3s
7036fca56fbSSascha Wildner>>>>>12			uleshort		&0x04
7046fca56fbSSascha Wildner>>>>>>12			uleshort	^0x10
7056fca56fbSSascha Wildner>>>>>>>(20.s)			uleshort	x
7066fca56fbSSascha Wildner>>>>>>>>&20				string	x	\b, %-.8s
7076fca56fbSSascha Wildner>>>>>>12			uleshort	&0x10
7086fca56fbSSascha Wildner>>>>>>>(20.s)			uleshort	x
7096fca56fbSSascha Wildner>>>>>>>>&20				string	x	\b, %-.8s
7106fca56fbSSascha Wildner>>>>>>>>>&1				string	x	\b.%-.3s
7116fca56fbSSascha Wildner# 2 bytes: length of data + mentioned bytes
7126fca56fbSSascha Wildner#
7136fca56fbSSascha Wildner#		SZDD variant Haruhiko Okumura's LZSS or 7z type MsLZ
714*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/MS-DOS_installation_compression
715*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://www.cabextract.org.uk/libmspack/doc/szdd_kwaj_format.html
716*3b9cdfa3SAntonio Huete Jimenez#		http://mark0.net/download/triddefs_xml.7z/defs/s/szdd.trid.xml
717*3b9cdfa3SAntonio Huete Jimenez# Note:		called "Microsoft SZDD compressed (Haruhiko Okumura's LZSS)" by TrID
718*3b9cdfa3SAntonio Huete Jimenez#		verfied by 7-Zip `7z l -tMsLZ -slt *.??_` as MsLZ
719*3b9cdfa3SAntonio Huete Jimenez#		`deark -l -m lzss_oku -d2 setup-1-41.bin` as "LZSS.C by Haruhiko Okumura"
7206fca56fbSSascha Wildner>0	string	SZDD		MS Compress archive data, SZDD variant
721*3b9cdfa3SAntonio Huete Jimenez# 2nd part of signature
722*3b9cdfa3SAntonio Huete Jimenez#>>4	ubelong	0x88F02733	\b, SIGNATURE OK
7236fca56fbSSascha Wildner!:mime	application/x-ms-compress-szdd
7246fca56fbSSascha Wildner!:ext	??_
7256fca56fbSSascha Wildner# The character missing from the end of the filename (0=unknown)
7266fca56fbSSascha Wildner>>9	string	>\0		\b, %-.1s is last character of original name
7276fca56fbSSascha Wildner# https://www.betaarchive.com/forum/viewtopic.php?t=26161
7286fca56fbSSascha Wildner# Compression mode: "A" (0x41) found but sometimes "B" in Windows 3.1 builds 026 and 034e
7296fca56fbSSascha Wildner>>8	string	!A		\b, %-.1s method
7306fca56fbSSascha Wildner>>10	ulelong	>0		\b, original size: %u bytes
731*3b9cdfa3SAntonio Huete Jimenez# Summary:	InstallShield archive with SZDD compressed
732*3b9cdfa3SAntonio Huete Jimenez# URL:		https://community.flexera.com/t5/InstallShield-Knowledge-Base/InstallShield-Redistributable-Files/ta-p/5647
733*3b9cdfa3SAntonio Huete Jimenez# From:		Joerg Jenderek
734*3b9cdfa3SAntonio Huete Jimenez1	search/48/bs	SZDD\x88\xF0\x27\x33	InstallShield archive
735*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
736*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-installshield-compress-szdd
737*3b9cdfa3SAntonio Huete Jimenez!:ext	ibt
738*3b9cdfa3SAntonio Huete Jimenez# name of compressed archive member like: setup.dl_ _setup7int.dl_ _setup2k.dl_ _igdi.dl_ cabinet.dl_
739*3b9cdfa3SAntonio Huete Jimenez>0	string	x		%s
740*3b9cdfa3SAntonio Huete Jimenez# name of uncompressed archive member like: setup.dll _Setup.dll IGdi.dll CABINET.DLL
741*3b9cdfa3SAntonio Huete Jimenez>>&1	string	x		(%s)
742*3b9cdfa3SAntonio Huete Jimenez# probably version like: 9.0.0.333 9.1.0.429 11.50.0.42618
743*3b9cdfa3SAntonio Huete Jimenez>>>&1	string	x		\b, version %s
744*3b9cdfa3SAntonio Huete Jimenez# SZDD member length like: 168048 169333 181842
745*3b9cdfa3SAntonio Huete Jimenez>>>>&1	string	x		\b, %s bytes
746*3b9cdfa3SAntonio Huete Jimenez# MS Compress archive data
747*3b9cdfa3SAntonio Huete Jimenez#>&0	string		SZDD	\b, SIGNATURE FOUND
748*3b9cdfa3SAntonio Huete Jimenez>&0	indirect	x
7496fca56fbSSascha Wildner#		QBasic SZDD variant
7506fca56fbSSascha Wildner3	string	\x88\xf0\x27
7516fca56fbSSascha Wildner>0	string	SZ\x20		MS Compress archive data, QBasic variant
7526fca56fbSSascha Wildner!:mime	application/x-ms-compress-sz
7536fca56fbSSascha Wildner!:ext	??$
7546fca56fbSSascha Wildner>>8	ulelong	>0		\b, original size: %u bytes
7556fca56fbSSascha Wildner
756*3b9cdfa3SAntonio Huete Jimenez# Summary:	CAZIP compressed file
757*3b9cdfa3SAntonio Huete Jimenez# From:		Joerg Jenderek
758*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/CAZIP
759*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/c/caz.trid.xml
760*3b9cdfa3SAntonio Huete Jimenez# Note:		Format is distinct from CAZIPXP compressed
761*3b9cdfa3SAntonio Huete Jimenez0	string	\x0D\x0A\x1ACAZIP	CAZIP compressed file
762*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
763*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-compress-cazip
764*3b9cdfa3SAntonio Huete Jimenez# like: BLINKER.WR_ CLIPDEFS._ CAOSETUP.EX_ CLIPPER.EX_ FILEIO.C_
765*3b9cdfa3SAntonio Huete Jimenez!:ext	??_/?_/_
766*3b9cdfa3SAntonio Huete Jimenez
767614728caSSascha Wildner# Summary:	FTCOMP compressed archive
768614728caSSascha Wildner# From:		Joerg Jenderek
769614728caSSascha Wildner# URL:		http://fileformats.archiveteam.org/wiki/FTCOMP
770614728caSSascha Wildner# Reference:    http://mark0.net/download/triddefs_xml.7z/defs/a/ark-ftcomp.trid.xml
771614728caSSascha Wildner# Note:		called by TrID "FTCOMP compressed archive"
772614728caSSascha Wildner#		extracted by `unpack seahelp.hl_`
773614728caSSascha Wildner24	string/b	FTCOMP		FTCOMP compressed archive
774614728caSSascha Wildner#!:mime	application/octet-stream
775614728caSSascha Wildner!:mime	application/x-compress-ftcomp
776614728caSSascha Wildner!:ext	??_/??@/dll/drv/pk2/
777614728caSSascha Wildner# probably A596FDFF magic at the beginning
778614728caSSascha Wildner>0	ubelong		!0xA596FDFF	\b, at beginning %#x
779614728caSSascha Wildner# probably original file name with directory like: \OS2\unpack.exe \SYSTEM\8514.DRV MAHJONGG.EXE
780614728caSSascha Wildner>41	string		x		"%s"
781614728caSSascha Wildner
782327e51cbSPeter Avalos# MP3 (archiver, not lossy audio compression)
783327e51cbSPeter Avalos0	string	MP3\x1a MP3-Archiver archive data
784327e51cbSPeter Avalos# ZET
785e8af9738SPeter Avalos0	string	OZ\xc3\x9d ZET archive data
786327e51cbSPeter Avalos# TSComp
787327e51cbSPeter Avalos0	string	\x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data
788327e51cbSPeter Avalos# ARQ
789327e51cbSPeter Avalos0	string	gW\4\1 ARQ archive data
790327e51cbSPeter Avalos# Squash
791327e51cbSPeter Avalos3	string	OctSqu Squash archive data
792327e51cbSPeter Avalos# Terse
793327e51cbSPeter Avalos0	string	\5\1\1\0 Terse archive data
794327e51cbSPeter Avalos# PUCrunch
795327e51cbSPeter Avalos0	string	\x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data
796327e51cbSPeter Avalos# UHarc
797327e51cbSPeter Avalos0	string	UHA UHarc archive data
798327e51cbSPeter Avalos# ABComp
799327e51cbSPeter Avalos0	string	\2AB ABComp archive data
800327e51cbSPeter Avalos0	string	\3AB2 ABComp archive data
801327e51cbSPeter Avalos# CMP
802327e51cbSPeter Avalos0	string	CO\0 CMP archive data
803327e51cbSPeter Avalos# Splint
804327e51cbSPeter Avalos0	string	\x93\xb9\x06 Splint archive data
805327e51cbSPeter Avalos# InstallShield
806327e51cbSPeter Avalos0	string	\x13\x5d\x65\x8c InstallShield Z archive Data
807327e51cbSPeter Avalos# Gather
808327e51cbSPeter Avalos1	string	GTH Gather archive data
809327e51cbSPeter Avalos# BOA
810327e51cbSPeter Avalos0	string	BOA BOA archive data
811327e51cbSPeter Avalos# RAX
812327e51cbSPeter Avalos0	string	ULEB\xa RAX archive data
813327e51cbSPeter Avalos# Xtreme
814327e51cbSPeter Avalos0	string	ULEB\0 Xtreme archive data
815327e51cbSPeter Avalos# Pack Magic
816e8af9738SPeter Avalos0	string	@\xc3\xa2\1\0 Pack Magic archive data
817327e51cbSPeter Avalos# BTS
818327e51cbSPeter Avalos0	belong&0xfeffffff	0x1a034465 BTS archive data
819327e51cbSPeter Avalos# ELI 5750
820327e51cbSPeter Avalos0	string	Ora\  ELI 5750 archive data
821327e51cbSPeter Avalos# QFC
822327e51cbSPeter Avalos0	string	\x1aFC\x1a QFC archive data
823327e51cbSPeter Avalos0	string	\x1aQF\x1a QFC archive data
824327e51cbSPeter Avalos# PRO-PACK
825327e51cbSPeter Avalos0	string	RNC PRO-PACK archive data
826327e51cbSPeter Avalos# 777
827327e51cbSPeter Avalos0	string	777 777 archive data
828327e51cbSPeter Avalos# LZS221
829327e51cbSPeter Avalos0	string	sTaC LZS221 archive data
830327e51cbSPeter Avalos# HPA
831327e51cbSPeter Avalos0	string	HPA HPA archive data
832327e51cbSPeter Avalos# Arhangel
833327e51cbSPeter Avalos0	string	LG Arhangel archive data
834327e51cbSPeter Avalos# EXP1, uses bzip2
835327e51cbSPeter Avalos0	string	0123456789012345BZh EXP1 archive data
836327e51cbSPeter Avalos# IMP
837327e51cbSPeter Avalos0	string	IMP\xa IMP archive data
838327e51cbSPeter Avalos# NRV
839327e51cbSPeter Avalos0	string	\x00\x9E\x6E\x72\x76\xFF NRV archive data
840327e51cbSPeter Avalos# Squish
841327e51cbSPeter Avalos0	string	\x73\xb2\x90\xf4 Squish archive data
842327e51cbSPeter Avalos# Par
843327e51cbSPeter Avalos0	string	PHILIPP Par archive data
844327e51cbSPeter Avalos0	string	PAR Par archive data
845327e51cbSPeter Avalos# HIT
846327e51cbSPeter Avalos0	string	UB HIT archive data
847327e51cbSPeter Avalos# SBX
848327e51cbSPeter Avalos0	belong&0xfffff000	0x53423000 SBX archive data
849327e51cbSPeter Avalos# NaShrink
850327e51cbSPeter Avalos0	string	NSK NaShrink archive data
851327e51cbSPeter Avalos# SAPCAR
852327e51cbSPeter Avalos0	string	#\ CAR\ archive\ header SAPCAR archive data
853*3b9cdfa3SAntonio Huete Jimenez0	string	CAR\ 2.00 SAPCAR archive data
854*3b9cdfa3SAntonio Huete Jimenez0	string	CAR\ 2.01 SAPCAR archive data
855*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
856*3b9cdfa3SAntonio Huete Jimenez!:mime	application/vnd.sar
857*3b9cdfa3SAntonio Huete Jimenez!:ext	sar
858327e51cbSPeter Avalos# Disintegrator
859327e51cbSPeter Avalos0	string	DST Disintegrator archive data
860327e51cbSPeter Avalos# ASD
861327e51cbSPeter Avalos0	string	ASD ASD archive data
862327e51cbSPeter Avalos# InstallShield CAB
863*3b9cdfa3SAntonio Huete Jimenez# Update:	Joerg Jenderek at Nov 2021
864*3b9cdfa3SAntonio Huete Jimenez# URL:		https://en.wikipedia.org/wiki/InstallShield
865*3b9cdfa3SAntonio Huete Jimenez# Reference:	https://github.com/twogood/unshield/blob/master/lib/cabfile.h
866*3b9cdfa3SAntonio Huete Jimenez# Note:		Not compatible with Microsoft CAB files
867*3b9cdfa3SAntonio Huete Jimenez# http://mark0.net/download/triddefs_xml.7z/defs/a/ark-cab-ishield.trid.xml
868*3b9cdfa3SAntonio Huete Jimenez# CAB_SIGNATURE 0x28635349
869*3b9cdfa3SAntonio Huete Jimenez0	string	ISc( InstallShield
870*3b9cdfa3SAntonio Huete Jimenez#!:mime		application/octet-stream
871*3b9cdfa3SAntonio Huete Jimenez!:mime		application/x-installshield
872*3b9cdfa3SAntonio Huete Jimenez# http://mark0.net/download/triddefs_xml.7z/defs/a/ark-cab-ishield-hdr.trid.xml
873*3b9cdfa3SAntonio Huete Jimenez>16	ulelong	!0	setup header
874*3b9cdfa3SAntonio Huete Jimenez# like: _SYS1.HDR _USER1.HDR data1.hdr
875*3b9cdfa3SAntonio Huete Jimenez!:ext	hdr
876*3b9cdfa3SAntonio Huete Jimenez>16	ulelong	=0	CAB
877*3b9cdfa3SAntonio Huete Jimenez# like: _SYS1.CAB _USER1.CAB DATA1.CAB  data2.cab
878*3b9cdfa3SAntonio Huete Jimenez!:ext	cab
879*3b9cdfa3SAntonio Huete Jimenez# https://github.com/twogood/unshield/blob/master/lib/helper.c
880*3b9cdfa3SAntonio Huete Jimenez# version like:	0x1005201 0x100600c 0x1007000 0x1009500
881*3b9cdfa3SAntonio Huete Jimenez#		0x2000578 0x20005dc 0x2000640 0x40007d0 0x4000834
882*3b9cdfa3SAntonio Huete Jimenez>4	ulelong	x	\b, version %#x
883*3b9cdfa3SAntonio Huete Jimenez# volume_info like: 0
884*3b9cdfa3SAntonio Huete Jimenez>8	ulelong	!0	\b, volume_info %#x
885*3b9cdfa3SAntonio Huete Jimenez# cab_descriptor_offset like: 0x200
886*3b9cdfa3SAntonio Huete Jimenez>12	ulelong	!0x200	\b, offset %#x
887*3b9cdfa3SAntonio Huete Jimenez#>0x200	ubequad	x	\b, at 0x200 %#16.16llx
888*3b9cdfa3SAntonio Huete Jimenez# cab_descriptor_size like: 0 (*.cab) BD5 C8B DA5 E2A E36 116C 251D 4DA9 56F0 5CC2 6E4B 777D 779E 1F7C2
889*3b9cdfa3SAntonio Huete Jimenez>16	ulelong	!0	\b, descriptor size %#x
890327e51cbSPeter Avalos# TOP4
891327e51cbSPeter Avalos0	string	T4\x1a TOP4 archive data
892327e51cbSPeter Avalos# BatComp left out: sig looks like COM executable
893327e51cbSPeter Avalos# so TODO: get real 4dos batcomp file and find sig
894327e51cbSPeter Avalos# BlakHole
895327e51cbSPeter Avalos0	string	BH\5\7 BlakHole archive data
896327e51cbSPeter Avalos# BIX
897327e51cbSPeter Avalos0	string	BIX0 BIX archive data
898327e51cbSPeter Avalos# ChiefLZA
899327e51cbSPeter Avalos0	string	ChfLZ ChiefLZA archive data
900327e51cbSPeter Avalos# Blink
901327e51cbSPeter Avalos0	string	Blink Blink archive data
902327e51cbSPeter Avalos# Logitech Compress
903327e51cbSPeter Avalos0	string	\xda\xfa Logitech Compress archive data
904327e51cbSPeter Avalos# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE)
905327e51cbSPeter Avalos1	string	(C)\ STEPANYUK ARS-Sfx archive data
906327e51cbSPeter Avalos# AKT/AKT32
907327e51cbSPeter Avalos0	string	AKT32 AKT32 archive data
908327e51cbSPeter Avalos0	string	AKT AKT archive data
909327e51cbSPeter Avalos# NPack
910327e51cbSPeter Avalos0	string	MSTSM NPack archive data
911327e51cbSPeter Avalos# PFT
912327e51cbSPeter Avalos0	string	\0\x50\0\x14 PFT archive data
913327e51cbSPeter Avalos# SemOne
914327e51cbSPeter Avalos0	string	SEM SemOne archive data
915327e51cbSPeter Avalos# PPMD
916327e51cbSPeter Avalos0	string	\x8f\xaf\xac\x84 PPMD archive data
917327e51cbSPeter Avalos# FIZ
918327e51cbSPeter Avalos0	string	FIZ FIZ archive data
919327e51cbSPeter Avalos# MSXiE
920327e51cbSPeter Avalos0	belong&0xfffff0f0	0x4d530000 MSXiE archive data
921327e51cbSPeter Avalos# DeepFreezer
922327e51cbSPeter Avalos0	belong&0xfffffff0	0x797a3030 DeepFreezer archive data
923327e51cbSPeter Avalos# DC
924327e51cbSPeter Avalos0	string	=<DC- DC archive data
925327e51cbSPeter Avalos# TPac
926327e51cbSPeter Avalos0	string	\4TPAC\3 TPac archive data
927327e51cbSPeter Avalos# Ai
928327e51cbSPeter Avalos0	string	Ai\1\1\0 Ai archive data
929327e51cbSPeter Avalos0	string	Ai\1\0\0 Ai archive data
930327e51cbSPeter Avalos# Ai32
931327e51cbSPeter Avalos0	string	Ai\2\0 Ai32 archive data
932327e51cbSPeter Avalos0	string	Ai\2\1 Ai32 archive data
933327e51cbSPeter Avalos# SBC
934327e51cbSPeter Avalos0	string	SBC SBC archive data
935327e51cbSPeter Avalos# Ybs
936327e51cbSPeter Avalos0	string	YBS Ybs archive data
937327e51cbSPeter Avalos# DitPack
938327e51cbSPeter Avalos0	string	\x9e\0\0 DitPack archive data
939327e51cbSPeter Avalos# DMS
940327e51cbSPeter Avalos0	string	DMS! DMS archive data
941327e51cbSPeter Avalos# EPC
942327e51cbSPeter Avalos0	string	\x8f\xaf\xac\x8c EPC archive data
943327e51cbSPeter Avalos# VSARC
944327e51cbSPeter Avalos0	string	VS\x1a VSARC archive data
945327e51cbSPeter Avalos# PDZ
946327e51cbSPeter Avalos0	string	PDZ PDZ archive data
947327e51cbSPeter Avalos# ReDuq
948327e51cbSPeter Avalos0	string	rdqx ReDuq archive data
949327e51cbSPeter Avalos# GCA
950327e51cbSPeter Avalos0	string	GCAX GCA archive data
951327e51cbSPeter Avalos# PPMN
952327e51cbSPeter Avalos0	string	pN PPMN archive data
953327e51cbSPeter Avalos# WinImage
954327e51cbSPeter Avalos3	string	WINIMAGE WinImage archive data
955327e51cbSPeter Avalos# Compressia
956327e51cbSPeter Avalos0	string	CMP0CMP Compressia archive data
957327e51cbSPeter Avalos# UHBC
958327e51cbSPeter Avalos0	string	UHB UHBC archive data
959327e51cbSPeter Avalos# WinHKI
960327e51cbSPeter Avalos0	string	\x61\x5C\x04\x05 WinHKI archive data
961327e51cbSPeter Avalos# WWPack data file
962327e51cbSPeter Avalos0	string	WWP WWPack archive data
963327e51cbSPeter Avalos# BSN (BSA, PTS-DOS)
964327e51cbSPeter Avalos0	string	\xffBSG BSN archive data
965327e51cbSPeter Avalos1	string	\xffBSG BSN archive data
966327e51cbSPeter Avalos3	string	\xffBSG BSN archive data
967327e51cbSPeter Avalos1	string	\0\xae\2 BSN archive data
968327e51cbSPeter Avalos1	string	\0\xae\3 BSN archive data
969327e51cbSPeter Avalos1	string	\0\xae\7 BSN archive data
970327e51cbSPeter Avalos# AIN
971327e51cbSPeter Avalos0	string	\x33\x18 AIN archive data
972327e51cbSPeter Avalos0	string	\x33\x17 AIN archive data
973c30bd091SSascha Wildner# XPA32 test moved and merged with XPA by Joerg Jenderek at Sep 2015
974327e51cbSPeter Avalos# SZip (TODO: doesn't catch all versions)
975327e51cbSPeter Avalos0	string	SZ\x0a\4 SZip archive data
976327e51cbSPeter Avalos# XPack DiskImage
977c30bd091SSascha Wildner# *.XDI updated by Joerg Jenderek Sep 2015
978c30bd091SSascha Wildner# ftp://ftp.sac.sk/pub/sac/pack/0index.txt
979c30bd091SSascha Wildner# GRR: this test is still too general as it catches also text files starting with jm
980c30bd091SSascha Wildner0	string	jm
981c30bd091SSascha Wildner# only found examples with this additional characteristic 2 bytes
982c30bd091SSascha Wildner>2	string	\x2\x4	Xpack DiskImage archive data
983c30bd091SSascha Wildner#!:ext xdi
984327e51cbSPeter Avalos# XPack Data
985c30bd091SSascha Wildner# *.xpa updated by Joerg Jenderek Sep 2015
986c30bd091SSascha Wildner# ftp://ftp.elf.stuba.sk/pub/pc/pack/
987c30bd091SSascha Wildner0	string	xpa	XPA
988c30bd091SSascha Wildner!:ext	xpa
989c30bd091SSascha Wildner# XPA32
990c30bd091SSascha Wildner# ftp://ftp.elf.stuba.sk/pub/pc/pack/xpa32.zip
991c30bd091SSascha Wildner# created by XPA32.EXE version 1.0.2 for Windows
992c30bd091SSascha Wildner>0	string	xpa\0\1 \b32 archive data
993c30bd091SSascha Wildner# created by XPACK.COM version 1.67m or 1.67r with short 0x1800
994c30bd091SSascha Wildner>3	ubeshort	!0x0001	\bck archive data
995327e51cbSPeter Avalos# XPack Single Data
996c30bd091SSascha Wildner# changed by Joerg Jenderek Sep 2015 back to like in version 5.12
997c30bd091SSascha Wildner# letter 'I'+ acute accent is equivalent to \xcd
998c30bd091SSascha Wildner0	string	\xcd\ jm	Xpack single archive data
999c30bd091SSascha Wildner#!:mime	application/x-xpa-compressed
1000c30bd091SSascha Wildner!:ext xpa
1001327e51cbSPeter Avalos
1002327e51cbSPeter Avalos# TODO: missing due to unknown magic/magic at end of file:
1003327e51cbSPeter Avalos#DWC
1004327e51cbSPeter Avalos#ARG
1005327e51cbSPeter Avalos#ZAR
1006327e51cbSPeter Avalos#PC/3270
1007327e51cbSPeter Avalos#InstallIt
1008327e51cbSPeter Avalos#RKive
1009327e51cbSPeter Avalos#RK
1010327e51cbSPeter Avalos#XPack Diskimage
1011327e51cbSPeter Avalos
1012327e51cbSPeter Avalos# These were inspired by idarc, but actually verified
1013327e51cbSPeter Avalos# Dzip archiver (.dz)
10146fca56fbSSascha Wildner# Update: Joerg Jenderek
10156fca56fbSSascha Wildner# URL: http://speeddemosarchive.com/dzip/
10166fca56fbSSascha Wildner# reference: http://speeddemosarchive.com/dzip/dz29src.zip/main.c
10176fca56fbSSascha Wildner# GRR: line below is too general as it matches also ASCII texts like Doszip commander help dz.txt
10186fca56fbSSascha Wildner0	string	DZ
10196fca56fbSSascha Wildner# latest version is 2.9 dated 7 may 2003
10206fca56fbSSascha Wildner>2	byte	<4 Dzip archive data
10216fca56fbSSascha Wildner!:mime	application/x-dzip
10226fca56fbSSascha Wildner!:ext	dz
10236fca56fbSSascha Wildner>>2	byte	x \b, version %i
10246fca56fbSSascha Wildner>>3	byte	x \b.%i
1025614728caSSascha Wildner>>4	ulelong	x \b, offset %#x
10266fca56fbSSascha Wildner>>8	ulelong	x \b, %u files
1027327e51cbSPeter Avalos# ZZip archiver (.zz)
1028327e51cbSPeter Avalos0	string	ZZ\ \0\0 ZZip archive data
1029327e51cbSPeter Avalos0	string	ZZ0 ZZip archive data
1030327e51cbSPeter Avalos# PAQ archiver (.paq)
1031327e51cbSPeter Avalos0	string	\xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data
1032327e51cbSPeter Avalos0	string	PAQ PAQ archive data
1033327e51cbSPeter Avalos>3	byte&0xf0	0x30
1034327e51cbSPeter Avalos>>3	byte	x (v%c)
1035327e51cbSPeter Avalos# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP)
1036*3b9cdfa3SAntonio Huete Jimenez# Update:	Joerg Jenderek
1037*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/JAR_(ARJ_Software)
1038*3b9cdfa3SAntonio Huete Jimenez# reference:	http://mark0.net/download/triddefs_xml.7z/defs/a/ark-jar.trid.xml
1039*3b9cdfa3SAntonio Huete Jimenez#		https://www.sac.sk/download/pack/jar102x.exe/TECHNOTE.DOC
1040*3b9cdfa3SAntonio Huete Jimenez# Note:		called "JAR compressed archive" by TrID
1041327e51cbSPeter Avalos0xe	string	\x1aJar\x1b JAR (ARJ Software, Inc.) archive data
1042*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
1043*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-compress-j
1044*3b9cdfa3SAntonio Huete Jimenez>0	ulelong	x		\b, CRC32 %#x
1045*3b9cdfa3SAntonio Huete Jimenez# standard suffix is ".j"; for multi volumes following order j01 j02 ... j99 100 ... 990
1046*3b9cdfa3SAntonio Huete Jimenez!:ext	j/j01/j02
1047*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/JARCS
1048*3b9cdfa3SAntonio Huete Jimenez# reference:	http://mark0.net/download/triddefs_xml.7z/defs/a/ark-jarcs.trid.xml
1049*3b9cdfa3SAntonio Huete Jimenez# Note:		called "JARCS compressed archive" by TrID
1050327e51cbSPeter Avalos0	string	JARCS JAR (ARJ Software, Inc.) archive data
1051*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
1052*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-compress-jar
1053*3b9cdfa3SAntonio Huete Jimenez!:ext	jar
1054327e51cbSPeter Avalos
1055327e51cbSPeter Avalos# ARJ archiver (jason@jarthur.Claremont.EDU)
1056*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/ARJ
1057*3b9cdfa3SAntonio Huete Jimenez# reference:	http://mark0.net/download/triddefs_xml.7z/defs/a/ark-arj.trid.xml
1058*3b9cdfa3SAntonio Huete Jimenez#		https://github.com/FarGroup/FarManager/
1059*3b9cdfa3SAntonio Huete Jimenez#		blob/master/plugins/multiarc/arc.doc/arj.txt
1060*3b9cdfa3SAntonio Huete Jimenez# Note:		called "ARJ compressed archive" by TrID and
1061*3b9cdfa3SAntonio Huete Jimenez#		"ARJ File Format" by DROID via PUID fmt/610
1062*3b9cdfa3SAntonio Huete Jimenez#		verified by `7z l -tarj PHRACK1.ARJ` and
1063*3b9cdfa3SAntonio Huete Jimenez#		`arj.exe l TEST-hk9.ARJ`
1064*3b9cdfa3SAntonio Huete Jimenez0	leshort		0xea60
1065*3b9cdfa3SAntonio Huete Jimenez# skip DROID fmt-610-signature-id-946.arj by check for valid file type of main header
1066*3b9cdfa3SAntonio Huete Jimenez>0xA	ubyte		2
1067*3b9cdfa3SAntonio Huete Jimenez>>0	use		arj-archive
1068*3b9cdfa3SAntonio Huete Jimenez0	name		arj-archive
1069*3b9cdfa3SAntonio Huete Jimenez>0	leshort		x		ARJ archive
107079343712SPeter Avalos!:mime	application/x-arj
1071*3b9cdfa3SAntonio Huete Jimenez# look for terminating 0-character of filename
1072*3b9cdfa3SAntonio Huete Jimenez>0x26	search/1024	\0
1073*3b9cdfa3SAntonio Huete Jimenez# file name extension is normally .arj but not for parts of multi volume
1074*3b9cdfa3SAntonio Huete Jimenez#>>&-5	string		x		extension %.4s
1075*3b9cdfa3SAntonio Huete Jimenez>>&-5	string/c	.arj		data
1076*3b9cdfa3SAntonio Huete Jimenez!:ext	arj
1077*3b9cdfa3SAntonio Huete Jimenez>>&-5	default		x
1078*3b9cdfa3SAntonio Huete Jimenez# for multi volume first name is archive.arj then following parts archive.a01 archive.a02 ...
1079*3b9cdfa3SAntonio Huete Jimenez>>>8	byte		&0x04		data
1080*3b9cdfa3SAntonio Huete Jimenez!:ext	a01/a02
1081*3b9cdfa3SAntonio Huete Jimenez# for SFX first name is archive.exe then following parts archive.e01 archive.e02 ...
1082*3b9cdfa3SAntonio Huete Jimenez>>>8	byte		^0x04		data, SFX multi-volume
1083*3b9cdfa3SAntonio Huete Jimenez!:ext	e01/e02
1084*3b9cdfa3SAntonio Huete Jimenez# basic header size like: 0x002b 0x002c 0x04e0 0x04e3 0x04e7
1085*3b9cdfa3SAntonio Huete Jimenez#>2	uleshort	x		basic header size %#4.4x
1086*3b9cdfa3SAntonio Huete Jimenez# next fragment content like: 0x0a200a003a8fc713 0x524a000010bb3471 0x524a0000c73c70f9
1087*3b9cdfa3SAntonio Huete Jimenez#>(2.s)	ubequad		x		NEXT FRAGMENT CONTENT %#16.16llx
1088*3b9cdfa3SAntonio Huete Jimenez# first_hdr_size; seems to be same as basic header size
1089*3b9cdfa3SAntonio Huete Jimenez#>2	uleshort	x		1st header size %#x
1090*3b9cdfa3SAntonio Huete Jimenez# archiver version number like: 3 4 6 11 102
1091*3b9cdfa3SAntonio Huete Jimenez>5	byte		x		\b, v%d
1092*3b9cdfa3SAntonio Huete Jimenez# minimum archiver version to extract like: 1
1093*3b9cdfa3SAntonio Huete Jimenez>6	ubyte		!1		\b, minimum %u to extract
1094*3b9cdfa3SAntonio Huete Jimenez# FOR DEBUGGING
1095*3b9cdfa3SAntonio Huete Jimenez#>8	byte		x		\b, FLAGS %#x
1096*3b9cdfa3SAntonio Huete Jimenez# GARBLED_FLAG1; garble with password; g switch
1097*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x01		\b, password-protected
1098*3b9cdfa3SAntonio Huete Jimenez# encryption version: 0~old  1~old 2~new 3~reserved 4~40 bit key GOST
1099*3b9cdfa3SAntonio Huete Jimenez>>0x20	ubyte		x		(v%u)
1100*3b9cdfa3SAntonio Huete Jimenez#>8	byte		&0x02		\b, secured
1101*3b9cdfa3SAntonio Huete Jimenez# ANSIPAGE_FLAG; indicates ANSI codepage used by ARJ32; hy switch
1102*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x02		\b, ANSI codepage
1103*3b9cdfa3SAntonio Huete Jimenez# VOLUME_FLAG indicates presence of succeeding volume; but apparently not for SFX
1104*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x04		\b, multi-volume
1105*3b9cdfa3SAntonio Huete Jimenez#>8	byte		&0x08		\b, file-offset
1106*3b9cdfa3SAntonio Huete Jimenez# ARJPROT_FLAG; build with data protection record; hk switch
1107*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x08		\b, recoverable
1108*3b9cdfa3SAntonio Huete Jimenez# arj protection factor; maximal 10; switch hky -> factor=y+1
1109*3b9cdfa3SAntonio Huete Jimenez>>0x22	byte		x		(factor %u)
1110*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x10		\b, slash-switched
1111*3b9cdfa3SAntonio Huete Jimenez# BACKUP_FLAG; obsolete
1112*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x20		\b, backup
1113*3b9cdfa3SAntonio Huete Jimenez# SECURED_FLAG;
1114*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x40		\b, secured,
1115*3b9cdfa3SAntonio Huete Jimenez# ALTNAME_FLAG; indicates dual-name archive
1116*3b9cdfa3SAntonio Huete Jimenez>8	byte		&0x80		\b, dual-name
1117*3b9cdfa3SAntonio Huete Jimenez# security version; 0~old 2~current
1118*3b9cdfa3SAntonio Huete Jimenez>9	ubyte		!0
1119*3b9cdfa3SAntonio Huete Jimenez>>9	ubyte		!2		\b, security version %u
1120*3b9cdfa3SAntonio Huete Jimenez# file type; 2 in main header; 0~binary 1~7-bitText 2~comment 3~directory 4~VolumeLabel 5=ChapterLabel
1121*3b9cdfa3SAntonio Huete Jimenez>0xA	ubyte		!2		\b, file type %u
1122*3b9cdfa3SAntonio Huete Jimenez# date+time when original archive was created in MS-DOS format via ./msdos
1123*3b9cdfa3SAntonio Huete Jimenez>0xC	ulelong		x		\b, created
1124*3b9cdfa3SAntonio Huete Jimenez>0xC	use		dos-date
1125*3b9cdfa3SAntonio Huete Jimenez# or date and time by new internal function
1126*3b9cdfa3SAntonio Huete Jimenez#>0xE	lemsdosdate	x		%s
1127*3b9cdfa3SAntonio Huete Jimenez#>0xC	lemsdostime	x		%s
1128*3b9cdfa3SAntonio Huete Jimenez# FOR DEBUGGING
1129*3b9cdfa3SAntonio Huete Jimenez#>0x12	uleshort	x		RAW DATE %#4.4x
1130*3b9cdfa3SAntonio Huete Jimenez#>0x10	uleshort	x		RAW TIME %#4.4x
1131*3b9cdfa3SAntonio Huete Jimenez# date+time when archive was last modified; sometimes nil or
1132*3b9cdfa3SAntonio Huete Jimenez# maybe wrong like in HP4DRVR.ARJ
1133*3b9cdfa3SAntonio Huete Jimenez#>0x10	ulelong		>0		\b, modified
1134*3b9cdfa3SAntonio Huete Jimenez#>>0x10	use		dos-date
1135*3b9cdfa3SAntonio Huete Jimenez# or date and time by new internal function
1136*3b9cdfa3SAntonio Huete Jimenez#>>0x12	lemsdosdate	x		%s
1137*3b9cdfa3SAntonio Huete Jimenez#>>0x10	lemsdostime	x		%s
1138*3b9cdfa3SAntonio Huete Jimenez# archive size (currently used only for secured archives); MAYBE?
1139*3b9cdfa3SAntonio Huete Jimenez#>0x14	ulelong		!0		\b, file size %u
1140*3b9cdfa3SAntonio Huete Jimenez# security envelope file position; MAYBE?
1141*3b9cdfa3SAntonio Huete Jimenez#>0x18	ulelong		!0		\b, at %#x security envelope
1142*3b9cdfa3SAntonio Huete Jimenez# filespec position in filename; WHAT IS THAT?
1143*3b9cdfa3SAntonio Huete Jimenez#>0x1C	uleshort	>0		\b, filespec position %#x
1144*3b9cdfa3SAntonio Huete Jimenez# length in bytes of security envelope data like: 2CAh 301h 364h 471h
1145*3b9cdfa3SAntonio Huete Jimenez>0x1E	uleshort	!0		\b, security envelope length %#x
1146*3b9cdfa3SAntonio Huete Jimenez# last chapter like: 0 1
1147*3b9cdfa3SAntonio Huete Jimenez>0x21	ubyte		!0		\b, last chapter %u
1148*3b9cdfa3SAntonio Huete Jimenez# filename (null-terminated string); sometimes at 0x26 when 4 bytes for extra data
1149*3b9cdfa3SAntonio Huete Jimenez>34	byte		x		\b, original name:
1150*3b9cdfa3SAntonio Huete Jimenez# with extras data
1151*3b9cdfa3SAntonio Huete Jimenez>34	byte		<0x0B
1152*3b9cdfa3SAntonio Huete Jimenez>>38	string		x		%s
1153*3b9cdfa3SAntonio Huete Jimenez# without extras data
1154*3b9cdfa3SAntonio Huete Jimenez>34	byte		>0x0A
1155*3b9cdfa3SAntonio Huete Jimenez>>34	string		x		%s
1156*3b9cdfa3SAntonio Huete Jimenez# host OS: 0~MSDOS ... 11~WIN32
1157*3b9cdfa3SAntonio Huete Jimenez>7	byte		0		\b, os: MS-DOS
1158*3b9cdfa3SAntonio Huete Jimenez>7	byte		1		\b, os: PRIMOS
1159*3b9cdfa3SAntonio Huete Jimenez>7	byte		2		\b, os: Unix
1160*3b9cdfa3SAntonio Huete Jimenez>7	byte		3		\b, os: Amiga
1161*3b9cdfa3SAntonio Huete Jimenez>7	byte		4		\b, os: Macintosh
1162*3b9cdfa3SAntonio Huete Jimenez>7	byte		5		\b, os: OS/2
1163*3b9cdfa3SAntonio Huete Jimenez>7	byte		6		\b, os: Apple ][ GS
1164*3b9cdfa3SAntonio Huete Jimenez>7	byte		7		\b, os: Atari ST
1165*3b9cdfa3SAntonio Huete Jimenez>7	byte		8		\b, os: NeXT
1166*3b9cdfa3SAntonio Huete Jimenez>7	byte		9		\b, os: VAX/VMS
1167*3b9cdfa3SAntonio Huete Jimenez>7	byte		10		\b, os: WIN95
1168*3b9cdfa3SAntonio Huete Jimenez>7	byte		11		\b, os: WIN32
1169327e51cbSPeter Avalos# [JW] idarc says this is also possible
1170327e51cbSPeter Avalos2	leshort		0xea60		ARJ archive data
1171*3b9cdfa3SAntonio Huete Jimenez#2	leshort		0xea60
1172*3b9cdfa3SAntonio Huete Jimenez#>2	use		arj-archive
1173327e51cbSPeter Avalos
1174327e51cbSPeter Avalos# HA archiver (Greg Roelofs, newt@uchicago.edu)
1175327e51cbSPeter Avalos# This is a really bad format. A file containing HAWAII will match this...
1176327e51cbSPeter Avalos#0	string		HA		HA archive data,
1177327e51cbSPeter Avalos#>2	leshort		=1		1 file,
117882c5fa3eSPeter Avalos#>2	leshort		>1		%hu files,
1179327e51cbSPeter Avalos#>4	byte&0x0f	=0		first is type CPY
1180327e51cbSPeter Avalos#>4	byte&0x0f	=1		first is type ASC
1181327e51cbSPeter Avalos#>4	byte&0x0f	=2		first is type HSC
1182327e51cbSPeter Avalos#>4	byte&0x0f	=0x0e		first is type DIR
1183327e51cbSPeter Avalos#>4	byte&0x0f	=0x0f		first is type SPECIAL
1184327e51cbSPeter Avalos# suggestion: at least identify small archives (<1024 files)
1185327e51cbSPeter Avalos0  belong&0xffff00fc 0x48410000 HA archive data
1186327e51cbSPeter Avalos>2	leshort		=1		1 file,
1187327e51cbSPeter Avalos>2	leshort		>1		%u files,
1188327e51cbSPeter Avalos>4	byte&0x0f	=0		first is type CPY
1189327e51cbSPeter Avalos>4	byte&0x0f	=1		first is type ASC
1190327e51cbSPeter Avalos>4	byte&0x0f	=2		first is type HSC
1191327e51cbSPeter Avalos>4	byte&0x0f	=0x0e		first is type DIR
1192327e51cbSPeter Avalos>4	byte&0x0f	=0x0f		first is type SPECIAL
1193327e51cbSPeter Avalos
1194327e51cbSPeter Avalos# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz)
1195327e51cbSPeter Avalos0	string		HPAK		HPACK archive data
1196327e51cbSPeter Avalos
1197327e51cbSPeter Avalos# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net
1198327e51cbSPeter Avalos0	string		\351,\001JAM\ 		JAM archive,
1199327e51cbSPeter Avalos>7	string		>\0			version %.4s
1200327e51cbSPeter Avalos>0x26	byte		=0x27			-
1201327e51cbSPeter Avalos>>0x2b	string          >\0			label %.11s,
1202327e51cbSPeter Avalos>>0x27	lelong		x			serial %08x,
1203327e51cbSPeter Avalos>>0x36	string		>\0			fstype %.8s
1204327e51cbSPeter Avalos
1205327e51cbSPeter Avalos# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
1206c30bd091SSascha Wildner# Update: Joerg Jenderek
1207c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/LHA_(file_format)
12086fca56fbSSascha Wildner# Reference: https://web.archive.org/web/20021005080911/http://www.osirusoft.com/joejared/lzhformat.html
1209c30bd091SSascha Wildner#
1210c30bd091SSascha Wildner#	check and display information of lharc (LHa,PMarc) file
1211c30bd091SSascha Wildner0	name				lharc-file
1212c30bd091SSascha Wildner# check 1st character of method id like -lz4- -lh5- or -pm2-
1213c30bd091SSascha Wildner>2	string		-
1214c30bd091SSascha Wildner# check 5th character of method id
1215c30bd091SSascha Wildner>>6	string		-
1216c30bd091SSascha Wildner# check header level 0 1 2 3
1217c30bd091SSascha Wildner>>>20	ubyte		<4
1218c30bd091SSascha Wildner# check 2nd, 3th and 4th character of method id
1219c30bd091SSascha Wildner>>>>3	regex		\^(lh[0-9a-ex]|lz[s2-8]|pm[012]|pc1)		\b
1220c30bd091SSascha Wildner!:mime	application/x-lzh-compressed
1221c30bd091SSascha Wildner# creator type "LHA "
1222c30bd091SSascha Wildner!:apple	????LHA
1223c30bd091SSascha Wildner# display archive type name like "LHa/LZS archive data" or "LArc archive"
1224c30bd091SSascha Wildner>>>>>2	string		-lz		\b
1225c30bd091SSascha Wildner!:ext	lzs
1226c30bd091SSascha Wildner# already known  -lzs- -lz4- -lz5- with old names
1227c30bd091SSascha Wildner>>>>>>2	string	-lzs		LHa/LZS archive data
1228c30bd091SSascha Wildner>>>>>>3	regex	\^lz[45]	LHarc 1.x archive data
1229c30bd091SSascha Wildner# missing -lz?- with wikipedia names
1230c30bd091SSascha Wildner>>>>>>3	regex	\^lz[2378]	LArc archive
1231c30bd091SSascha Wildner# display archive type name like "LHa (2.x) archive data"
1232c30bd091SSascha Wildner>>>>>2	string		-lh		\b
1233c30bd091SSascha Wildner# already known -lh0- -lh1- -lh2- -lh3-  -lh4- -lh5- -lh6- -lh7- -lhd- variants with old names
1234c30bd091SSascha Wildner>>>>>>3	regex		\^lh[01]	LHarc 1.x/ARX archive data
1235c30bd091SSascha Wildner# LHice archiver use ".ICE" as name extension instead usual one ".lzh"
1236c30bd091SSascha Wildner# FOOBAR archiver use ".foo" as name extension instead usual one
1237c30bd091SSascha Wildner# "Florain Orjanov's and Olga Bachetska's ARchiver" not found at the moment
1238c30bd091SSascha Wildner>>>>>>>2	string	-lh1		\b
1239c30bd091SSascha Wildner!:ext lha/lzh/ice
1240c30bd091SSascha Wildner>>>>>>3	regex		\^lh[23d]	LHa 2.x? archive data
1241c30bd091SSascha Wildner>>>>>>3	regex		\^lh[7]		LHa (2.x)/LHark archive data
1242c30bd091SSascha Wildner>>>>>>3	regex		\^lh[456]	LHa (2.x) archive data
1243c30bd091SSascha Wildner>>>>>>>2	string	-lh5		\b
1244c30bd091SSascha Wildner# https://en.wikipedia.org/wiki/BIOS
1245970935fdSSascha Wildner# Some mainboard BIOS like Award use LHa compression. So archives with unusual extension are found like
1246c30bd091SSascha Wildner# bios.rom , kd7_v14.bin, 1010.004, ...
1247c30bd091SSascha Wildner!:ext lha/lzh/rom/bin
1248c30bd091SSascha Wildner# missing -lh?- variants (Joe Jared)
1249c30bd091SSascha Wildner>>>>>>3	regex		\^lh[89a-ce]	LHa (Joe Jared) archive
1250c30bd091SSascha Wildner# UNLHA32 2.67a
1251c30bd091SSascha Wildner>>>>>>2	string		-lhx		LHa (UNLHA32) archive
1252c30bd091SSascha Wildner# lha archives with standard file name extensions ".lha" ".lzh"
1253c30bd091SSascha Wildner>>>>>>3	regex		!\^(lh1|lh5)	\b
1254c30bd091SSascha Wildner!:ext lha/lzh
1255c30bd091SSascha Wildner# this should not happen if all -lh variants are described
1256c30bd091SSascha Wildner>>>>>>2	default		x		LHa (unknown) archive
1257c30bd091SSascha Wildner#!:ext	lha
1258c30bd091SSascha Wildner# PMarc
1259c30bd091SSascha Wildner>>>>>3	regex		\^pm[012]	PMarc archive data
1260c30bd091SSascha Wildner!:ext pma
1261c30bd091SSascha Wildner# append method id without leading and trailing minus character
1262c30bd091SSascha Wildner>>>>>3	string		x		[%3.3s]
1263c30bd091SSascha Wildner>>>>>>0	use	lharc-header
1264c30bd091SSascha Wildner#
1265c30bd091SSascha Wildner#	check and display information of lharc header
1266c30bd091SSascha Wildner0	name				lharc-header
1267c30bd091SSascha Wildner# header size 0x4 , 0x1b-0x61
1268c30bd091SSascha Wildner>0	ubyte		x
1269c30bd091SSascha Wildner# compressed data size != compressed file size
1270c30bd091SSascha Wildner#>7	ulelong		x		\b, data size %d
1271c30bd091SSascha Wildner# attribute: 0x2~?? 0x10~symlink|target 0x20~normal
1272614728caSSascha Wildner#>19	ubyte		x		\b, 19_%#x
1273c30bd091SSascha Wildner# level identifier 0 1 2 3
1274c30bd091SSascha Wildner#>20	ubyte		x		\b, level %d
1275c30bd091SSascha Wildner# time stamp
1276614728caSSascha Wildner#>15		ubelong	x		DATE %#8.8x
1277c30bd091SSascha Wildner# OS ID for level 1
1278c30bd091SSascha Wildner>20	ubyte		1
1279c30bd091SSascha Wildner# 0x20 types find for *.rom files
1280614728caSSascha Wildner>>(21.b+24)	ubyte	<0x21		\b, %#x OS
1281c30bd091SSascha Wildner# ascii type like M for MSDOS
1282c30bd091SSascha Wildner>>(21.b+24)	ubyte	>0x20		\b, '%c' OS
1283c30bd091SSascha Wildner# OS ID for level 2
1284c30bd091SSascha Wildner>20	ubyte		2
1285614728caSSascha Wildner#>>23	ubyte		x		\b, OS ID %#x
1286614728caSSascha Wildner>>23	ubyte		<0x21		\b, %#x OS
1287c30bd091SSascha Wildner>>23	ubyte		>0x20		\b, '%c' OS
1288c30bd091SSascha Wildner# filename only for level 0 and 1
1289c30bd091SSascha Wildner>20	ubyte		<2
1290c30bd091SSascha Wildner# length of filename
1291c30bd091SSascha Wildner>>21		ubyte	>0		\b, with
1292c30bd091SSascha Wildner# filename
1293c30bd091SSascha Wildner>>>21		pstring	x		"%s"
1294c30bd091SSascha Wildner#
1295c30bd091SSascha Wildner#2	string		-lh0-		LHarc 1.x/ARX archive data [lh0]
1296c30bd091SSascha Wildner#!:mime	application/x-lharc
1297c30bd091SSascha Wildner2	string		-lh0-
1298c30bd091SSascha Wildner>0	use	lharc-file
1299c30bd091SSascha Wildner#2	string		-lh1-		LHarc 1.x/ARX archive data [lh1]
1300c30bd091SSascha Wildner#!:mime	application/x-lharc
1301c30bd091SSascha Wildner2	string		-lh1-
1302c30bd091SSascha Wildner>0	use	lharc-file
1303c30bd091SSascha Wildner# NEW -lz2- ... -lz8-
1304c30bd091SSascha Wildner2	string		-lz2-
1305c30bd091SSascha Wildner>0	use	lharc-file
1306c30bd091SSascha Wildner2	string		-lz3-
1307c30bd091SSascha Wildner>0	use	lharc-file
1308c30bd091SSascha Wildner2	string		-lz4-
1309c30bd091SSascha Wildner>0	use	lharc-file
1310c30bd091SSascha Wildner2	string		-lz5-
1311c30bd091SSascha Wildner>0	use	lharc-file
1312c30bd091SSascha Wildner2	string		-lz7-
1313c30bd091SSascha Wildner>0	use	lharc-file
1314c30bd091SSascha Wildner2	string		-lz8-
1315c30bd091SSascha Wildner>0	use	lharc-file
1316327e51cbSPeter Avalos#	[never seen any but the last; -lh4- reported in comp.compression:]
1317c30bd091SSascha Wildner#2	string		-lzs-		LHa/LZS archive data [lzs]
1318c30bd091SSascha Wildner2	string		-lzs-
1319c30bd091SSascha Wildner>0	use	lharc-file
1320c30bd091SSascha Wildner# According to wikipedia and others such a version does not exist
1321c30bd091SSascha Wildner#2	string		-lh\40-		LHa 2.x? archive data [lh ]
1322c30bd091SSascha Wildner#2	string		-lhd-		LHa 2.x? archive data [lhd]
1323c30bd091SSascha Wildner2	string		-lhd-
1324c30bd091SSascha Wildner>0	use	lharc-file
1325c30bd091SSascha Wildner#2	string		-lh2-		LHa 2.x? archive data [lh2]
1326c30bd091SSascha Wildner2	string		-lh2-
1327c30bd091SSascha Wildner>0	use	lharc-file
1328c30bd091SSascha Wildner#2	string		-lh3-		LHa 2.x? archive data [lh3]
1329c30bd091SSascha Wildner2	string		-lh3-
1330c30bd091SSascha Wildner>0	use	lharc-file
1331c30bd091SSascha Wildner#2	string		-lh4-		LHa (2.x) archive data [lh4]
1332c30bd091SSascha Wildner2	string		-lh4-
1333c30bd091SSascha Wildner>0	use	lharc-file
1334c30bd091SSascha Wildner#2	string		-lh5-		LHa (2.x) archive data [lh5]
1335c30bd091SSascha Wildner2	string		-lh5-
1336c30bd091SSascha Wildner>0	use	lharc-file
1337c30bd091SSascha Wildner#2	string		-lh6-		LHa (2.x) archive data [lh6]
1338c30bd091SSascha Wildner2	string		-lh6-
1339c30bd091SSascha Wildner>0	use	lharc-file
1340c30bd091SSascha Wildner#2	string		-lh7-		LHa (2.x)/LHark archive data [lh7]
1341c30bd091SSascha Wildner2	string		-lh7-
1342c30bd091SSascha Wildner# !:mime	application/x-lha
1343c30bd091SSascha Wildner# >20	byte		x		- header level %d
1344c30bd091SSascha Wildner>0	use	lharc-file
1345c30bd091SSascha Wildner# NEW -lh8- ... -lhe- , -lhx-
1346c30bd091SSascha Wildner2	string		-lh8-
1347c30bd091SSascha Wildner>0	use	lharc-file
1348c30bd091SSascha Wildner2	string		-lh9-
1349c30bd091SSascha Wildner>0	use	lharc-file
1350c30bd091SSascha Wildner2	string		-lha-
1351c30bd091SSascha Wildner>0	use	lharc-file
1352c30bd091SSascha Wildner2	string		-lhb-
1353c30bd091SSascha Wildner>0	use	lharc-file
1354c30bd091SSascha Wildner2	string		-lhc-
1355c30bd091SSascha Wildner>0	use	lharc-file
1356c30bd091SSascha Wildner2	string		-lhe-
1357c30bd091SSascha Wildner>0	use	lharc-file
1358c30bd091SSascha Wildner2	string		-lhx-
1359c30bd091SSascha Wildner>0	use	lharc-file
1360327e51cbSPeter Avalos# taken from idarc [JW]
1361327e51cbSPeter Avalos2   string      -lZ         PUT archive data
1362c30bd091SSascha Wildner# already done by LHarc magics
1363c30bd091SSascha Wildner# this should never happen if all sub types of LZS archive are identified
1364c30bd091SSascha Wildner#2   string      -lz         LZS archive data
1365327e51cbSPeter Avalos2   string      -sw1-       Swag archive data
1366327e51cbSPeter Avalos
1367c30bd091SSascha Wildner0	name		rar-file-header
1368c30bd091SSascha Wildner>24	byte		15		\b, v1.5
1369c30bd091SSascha Wildner>24	byte		20		\b, v2.0
1370c30bd091SSascha Wildner>24	byte		29		\b, v4
1371c30bd091SSascha Wildner>15	byte		0		\b, os: MS-DOS
1372c30bd091SSascha Wildner>15	byte		1		\b, os: OS/2
1373c30bd091SSascha Wildner>15	byte		2		\b, os: Win32
1374c30bd091SSascha Wildner>15	byte		3		\b, os: Unix
1375c30bd091SSascha Wildner>15	byte		4		\b, os: Mac OS
1376c30bd091SSascha Wildner>15	byte		5		\b, os: BeOS
1377c30bd091SSascha Wildner
1378c30bd091SSascha Wildner0	name		rar-archive-header
1379c30bd091SSascha Wildner>3	leshort&0x1ff	>0		\b, flags:
1380c30bd091SSascha Wildner>>3	leshort		&0x01		ArchiveVolume
1381c30bd091SSascha Wildner>>3	leshort		&0x02		Commented
1382c30bd091SSascha Wildner>>3	leshort		&0x04		Locked
1383c30bd091SSascha Wildner>>3	leshort		&0x10		NewVolumeNaming
1384c30bd091SSascha Wildner>>3	leshort		&0x08		Solid
1385c30bd091SSascha Wildner>>3	leshort		&0x20		Authenticated
1386c30bd091SSascha Wildner>>3	leshort		&0x40		RecoveryRecordPresent
1387c30bd091SSascha Wildner>>3	leshort		&0x80		EncryptedBlockHeader
1388c30bd091SSascha Wildner>>3	leshort		&0x100		FirstVolume
1389c30bd091SSascha Wildner
1390c30bd091SSascha Wildner# RAR (Roshal Archive) archive
1391c30bd091SSascha Wildner0	string		Rar!\x1a\7\0		RAR archive data
139279343712SPeter Avalos!:mime	application/x-rar
1393c30bd091SSascha Wildner!:ext	rar/cbr
1394c30bd091SSascha Wildner# file header
1395c30bd091SSascha Wildner>(0xc.l+9)	byte	0x74
1396c30bd091SSascha Wildner>>(0xc.l+7)	use	rar-file-header
1397c30bd091SSascha Wildner# subblock seems to share information with file header
1398c30bd091SSascha Wildner>(0xc.l+9)	byte	0x7a
1399c30bd091SSascha Wildner>>(0xc.l+7)	use	rar-file-header
1400c30bd091SSascha Wildner>9		byte	0x73
1401c30bd091SSascha Wildner>>7		use	rar-archive-header
1402c30bd091SSascha Wildner
1403c30bd091SSascha Wildner0	string		Rar!\x1a\7\1\0		RAR archive data, v5
1404c30bd091SSascha Wildner!:mime	application/x-rar
1405c30bd091SSascha Wildner!:ext	rar
1406c30bd091SSascha Wildner
1407c30bd091SSascha Wildner# Very old RAR archive
14086fca56fbSSascha Wildner# https://jasonblanks.com/wp-includes/images/papers/KnowyourarchiveRAR.pdf
1409c30bd091SSascha Wildner0	string		RE\x7e\x5e  RAR archive data (<v1.5)
1410c30bd091SSascha Wildner!:mime	application/x-rar
1411c30bd091SSascha Wildner!:ext	rar/cbr
1412327e51cbSPeter Avalos
1413327e51cbSPeter Avalos# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
1414327e51cbSPeter Avalos0	string		SQSH		squished archive data (Acorn RISCOS)
1415327e51cbSPeter Avalos
1416327e51cbSPeter Avalos# UC2 archiver (Greg Roelofs, newt@uchicago.edu)
1417327e51cbSPeter Avalos# [JW] see exe section for self-extracting version
1418327e51cbSPeter Avalos0	string		UC2\x1a		UC2 archive data
1419327e51cbSPeter Avalos
1420f72f8299SJan Lentfer# PKZIP multi-volume archive
1421f72f8299SJan Lentfer0	string		PK\x07\x08PK\x03\x04	Zip multi-volume archive data, at least PKZIP v2.50 to extract
1422f72f8299SJan Lentfer!:mime	application/zip
1423c30bd091SSascha Wildner!:ext zip/cbz
1424f72f8299SJan Lentfer
1425e4d4ce0cSPeter Avalos# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
1426e8af9738SPeter Avalos0	string		PK\005\006	Zip archive data (empty)
1427c30bd091SSascha Wildner!:mime application/zip
1428c30bd091SSascha Wildner!:ext zip/cbz
14296fca56fbSSascha Wildner!:strength +1
1430327e51cbSPeter Avalos0	string		PK\003\004
14316fca56fbSSascha Wildner!:strength +1
1432327e51cbSPeter Avalos
1433e4d4ce0cSPeter Avalos# Specialised zip formats which start with a member named 'mimetype'
1434e4d4ce0cSPeter Avalos# (stored uncompressed, with no 'extra field') containing the file's MIME type.
1435e4d4ce0cSPeter Avalos# Check for have 8-byte name, 0-byte extra field, name "mimetype", and
1436e4d4ce0cSPeter Avalos#  contents starting with "application/":
1437e4d4ce0cSPeter Avalos>26	string		\x8\0\0\0mimetypeapplication/
1438e4d4ce0cSPeter Avalos
1439e4d4ce0cSPeter Avalos#  KOffice / OpenOffice & StarOffice / OpenDocument formats
1440327e51cbSPeter Avalos#    From: Abel Cheung <abel@oaka.org>
1441327e51cbSPeter Avalos
1442327e51cbSPeter Avalos#   KOffice (1.2 or above) formats
1443e4d4ce0cSPeter Avalos#    (mimetype contains "application/vnd.kde.<SUBTYPE>")
1444f72f8299SJan Lentfer>>50	string	vnd.kde.		KOffice (>=1.2)
1445f72f8299SJan Lentfer>>>58	string	karbon			Karbon document
1446f72f8299SJan Lentfer>>>58	string	kchart			KChart document
1447f72f8299SJan Lentfer>>>58	string	kformula		KFormula document
1448f72f8299SJan Lentfer>>>58	string	kivio			Kivio document
1449f72f8299SJan Lentfer>>>58	string	kontour			Kontour document
1450f72f8299SJan Lentfer>>>58	string	kpresenter		KPresenter document
1451f72f8299SJan Lentfer>>>58	string	kspread			KSpread document
1452f72f8299SJan Lentfer>>>58	string	kword			KWord document
1453327e51cbSPeter Avalos
1454327e51cbSPeter Avalos#   OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7)
1455e4d4ce0cSPeter Avalos#    (mimetype contains "application/vnd.sun.xml.<SUBTYPE>")
1456c990e5baSDaniel Fojt# URL:		https://en.wikipedia.org/wiki/OpenOffice.org_XML
1457c990e5baSDaniel Fojt# reference:	http://fileformats.archiveteam.org/wiki/OpenOffice.org_XML
1458f72f8299SJan Lentfer>>50	string	vnd.sun.xml.		OpenOffice.org 1.x
1459f72f8299SJan Lentfer>>>62	string	writer			Writer
1460f72f8299SJan Lentfer>>>>68	byte	!0x2e			document
1461c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.writer
1462c990e5baSDaniel Fojt!:ext	sxw
1463f72f8299SJan Lentfer>>>>68	string	.template		template
1464c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.writer.template
1465c990e5baSDaniel Fojt!:ext	stw
1466c990e5baSDaniel Fojt>>>>68	string	.web			Web template
1467c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.writer.web
1468c990e5baSDaniel Fojt!:ext	stw
1469f72f8299SJan Lentfer>>>>68	string	.global			global document
1470c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.writer.global
1471c990e5baSDaniel Fojt!:ext	sxg
1472f72f8299SJan Lentfer>>>62	string	calc			Calc
1473f72f8299SJan Lentfer>>>>66	byte	!0x2e			spreadsheet
1474c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.calc
1475c990e5baSDaniel Fojt!:ext	sxc
1476f72f8299SJan Lentfer>>>>66	string	.template		template
1477c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.calc.template
1478c990e5baSDaniel Fojt!:ext	stc
1479f72f8299SJan Lentfer>>>62	string	draw			Draw
1480f72f8299SJan Lentfer>>>>66	byte	!0x2e			document
1481c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.draw
1482c990e5baSDaniel Fojt!:ext	sxd
1483f72f8299SJan Lentfer>>>>66	string	.template		template
1484c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.draw.template
1485c990e5baSDaniel Fojt!:ext	std
1486f72f8299SJan Lentfer>>>62	string	impress			Impress
1487f72f8299SJan Lentfer>>>>69	byte	!0x2e			presentation
1488c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.impress
1489c990e5baSDaniel Fojt!:ext	sxi
1490f72f8299SJan Lentfer>>>>69	string	.template		template
1491c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.impress.template
1492c990e5baSDaniel Fojt!:ext	sti
1493f72f8299SJan Lentfer>>>62	string	math			Math document
1494c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.math
1495c990e5baSDaniel Fojt!:ext	sxm
1496f72f8299SJan Lentfer>>>62	string	base			Database file
1497c990e5baSDaniel Fojt!:mime	application/vnd.sun.xml.base
1498c990e5baSDaniel Fojt!:ext	sdb
1499327e51cbSPeter Avalos
1500*3b9cdfa3SAntonio Huete Jimenez# URL:	https://wiki.openoffice.org/wiki/Documentation/DevGuide/Extensions/File_Format
1501*3b9cdfa3SAntonio Huete Jimenez# From:	Joerg Jenderek
1502*3b9cdfa3SAntonio Huete Jimenez# Note:	only few OXT samples are detected here by mimetype member
1503*3b9cdfa3SAntonio Huete Jimenez#	is used by OpenOffice and LibreOffice and probably also NeoOffice
1504*3b9cdfa3SAntonio Huete Jimenez#	verified by `unzip -Zv *.oxt` or `7z l -slt *.oxt`
1505*3b9cdfa3SAntonio Huete Jimenez>>50	string	vnd.openofficeorg.		OpenOffice
1506*3b9cdfa3SAntonio Huete Jimenez>>>68	string	extension			\b/LibreOffice Extension
1507*3b9cdfa3SAntonio Huete Jimenez# http://extension.nirsoft.net/oxt
1508*3b9cdfa3SAntonio Huete Jimenez!:mime	application/vnd.openofficeorg.extension
1509*3b9cdfa3SAntonio Huete Jimenez# like: Gallery-Puzzle.2.1.0.1.oxt
1510*3b9cdfa3SAntonio Huete Jimenez!:ext	oxt
1511*3b9cdfa3SAntonio Huete Jimenez
1512327e51cbSPeter Avalos#   OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8)
1513c990e5baSDaniel Fojt#   URL: http://fileformats.archiveteam.org/wiki/OpenDocument
15146fca56fbSSascha Wildner#    https://lists.oasis-open.org/archives/office/200505/msg00006.html
1515e4d4ce0cSPeter Avalos#    (mimetype contains "application/vnd.oasis.opendocument.<SUBTYPE>")
1516f72f8299SJan Lentfer>>50	string	vnd.oasis.opendocument.	OpenDocument
1517f72f8299SJan Lentfer>>>73	string	text
1518f72f8299SJan Lentfer>>>>77	byte	!0x2d			Text
151979343712SPeter Avalos!:mime	application/vnd.oasis.opendocument.text
1520c990e5baSDaniel Fojt!:ext	odt
1521f72f8299SJan Lentfer>>>>77	string	-template		Text Template
1522f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.text-template
1523c990e5baSDaniel Fojt!:ext	ott
1524f72f8299SJan Lentfer>>>>77	string	-web			HTML Document Template
1525f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.text-web
1526c990e5baSDaniel Fojt!:ext	oth
1527f72f8299SJan Lentfer>>>>77	string	-master			Master Document
1528f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.text-master
1529c990e5baSDaniel Fojt!:ext	odm
1530f72f8299SJan Lentfer>>>73	string	graphics
1531f72f8299SJan Lentfer>>>>81	byte	!0x2d			Drawing
1532f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.graphics
1533c990e5baSDaniel Fojt!:ext	odg
1534c990e5baSDaniel Fojt>>>>81	string	-template		Drawing Template
1535f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.graphics-template
1536c990e5baSDaniel Fojt!:ext	otg
1537f72f8299SJan Lentfer>>>73	string	presentation
1538f72f8299SJan Lentfer>>>>85	byte	!0x2d			Presentation
1539f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.presentation
1540c990e5baSDaniel Fojt!:ext	odp
1541c990e5baSDaniel Fojt>>>>85	string	-template		Presentation Template
1542f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.presentation-template
1543c990e5baSDaniel Fojt!:ext	otp
1544f72f8299SJan Lentfer>>>73	string	spreadsheet
1545f72f8299SJan Lentfer>>>>84	byte	!0x2d			Spreadsheet
1546f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.spreadsheet
1547c990e5baSDaniel Fojt!:ext	ods
1548c990e5baSDaniel Fojt>>>>84	string	-template		Spreadsheet Template
1549f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.spreadsheet-template
1550c990e5baSDaniel Fojt!:ext	ots
1551f72f8299SJan Lentfer>>>73	string	chart
1552f72f8299SJan Lentfer>>>>78	byte	!0x2d			Chart
1553f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.chart
1554c990e5baSDaniel Fojt!:ext	odc
1555c990e5baSDaniel Fojt>>>>78	string	-template		Chart Template
1556f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.chart-template
1557c990e5baSDaniel Fojt!:ext	otc
1558f72f8299SJan Lentfer>>>73	string	formula
1559f72f8299SJan Lentfer>>>>80	byte	!0x2d			Formula
1560f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.formula
1561c990e5baSDaniel Fojt!:ext	odf
1562c990e5baSDaniel Fojt>>>>80	string	-template		Formula Template
1563f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.formula-template
1564c990e5baSDaniel Fojt!:ext	otf
1565c990e5baSDaniel Fojt# https://www.loc.gov/preservation/digital/formats/fdd/fdd000441.shtml
1566f72f8299SJan Lentfer>>>73	string	database		Database
1567f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.database
1568c990e5baSDaniel Fojt!:ext	odb
15696fca56fbSSascha Wildner# Valid for LibreOffice Base 6.0.1.1 at least
15706fca56fbSSascha Wildner>>>73	string	base 			Database
1571c990e5baSDaniel Fojt# https://bugs.documentfoundation.org/show_bug.cgi?id=45854
1572c990e5baSDaniel Fojt!:mime	application/vnd.oasis.opendocument.database
1573c990e5baSDaniel Fojt#!:mime	application/vnd.oasis.opendocument.base
1574c990e5baSDaniel Fojt!:ext	odb
1575f72f8299SJan Lentfer>>>73	string	image
1576f72f8299SJan Lentfer>>>>78	byte	!0x2d			Image
1577f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.image
1578c990e5baSDaniel Fojt!:ext	odi
1579c990e5baSDaniel Fojt>>>>78	string	-template		Image Template
1580f72f8299SJan Lentfer!:mime	application/vnd.oasis.opendocument.image-template
1581c990e5baSDaniel Fojt!:ext	oti
1582327e51cbSPeter Avalos
1583e4d4ce0cSPeter Avalos#  EPUB (OEBPS) books using OCF (OEBPS Container Format)
15846fca56fbSSascha Wildner#    https://www.idpf.org/ocf/ocf1.0/download/ocf10.htm, section 4.
1585e8af9738SPeter Avalos#    From: Ralf Brown <ralf.brown@gmail.com>
1586e8af9738SPeter Avalos>>50	string	epub+zip	EPUB document
1587e4d4ce0cSPeter Avalos!:mime application/epub+zip
1588e4d4ce0cSPeter Avalos
15896fca56fbSSascha Wildner# From:	Joerg Jenderek
15906fca56fbSSascha Wildner# URL:	http://en.wikipedia.org/wiki/CorelDRAW
15916fca56fbSSascha Wildner# NOTE:	version; til 2 WL-based; from 3 til 13 by ./riff; from 14 zip based
15926fca56fbSSascha Wildner>>50	string	x-vnd.corel.	 Corel
15936fca56fbSSascha Wildner>>>62	string	draw.document+zip	Draw drawing, version 14-16
15946fca56fbSSascha Wildner!:mime	application/x-vnd.corel.draw.document+zip
15956fca56fbSSascha Wildner!:ext	cdr
15966fca56fbSSascha Wildner>>>62	string	draw.template+zip	Draw template, version 14-16
15976fca56fbSSascha Wildner!:mime	application/x-vnd.corel.draw.template+zip
15986fca56fbSSascha Wildner!:ext	cdrt
1599c990e5baSDaniel Fojt>>>62	string	zcf.draw.document+zip	Draw drawing, version 17-22
16006fca56fbSSascha Wildner!:mime	application/x-vnd.corel.zcf.draw.document+zip
16016fca56fbSSascha Wildner!:ext	cdr
1602c990e5baSDaniel Fojt>>>62	string	zcf.draw.template+zip	Draw template, version 17-22
16036fca56fbSSascha Wildner!:mime	application/x-vnd.corel.zcf.draw.template+zip
16046fca56fbSSascha Wildner!:ext	cdt/cdrt
1605c990e5baSDaniel Fojt# URL:	http://product.corel.com/help/CorelDRAW/540240626/Main/EN/Doc/CorelDRAW-Other-file-formats.html
1606c990e5baSDaniel Fojt>>>62	string	zcf.pattern+zip		Draw pattern, version 22
1607c990e5baSDaniel Fojt!:mime	application/x-vnd.corel.zcf.pattern+zip
1608c990e5baSDaniel Fojt!:ext	pat
1609c990e5baSDaniel Fojt# URL:		https://en.wikipedia.org/wiki/Corel_Designer
1610c990e5baSDaniel Fojt# Reference:	http://fileformats.archiveteam.org/wiki/Corel_Designer
1611c990e5baSDaniel Fojt# Note:		called by TrID "Corel DESIGN graphics"
1612c990e5baSDaniel Fojt>>>62	string	designer.document+zip		DESIGNER graphics, version 14-16
1613c990e5baSDaniel Fojt!:mime	application/x-vnd.corel.designer.document+zip
1614c990e5baSDaniel Fojt!:ext	des
1615c990e5baSDaniel Fojt>>>62	string	zcf.designer.document+zip	DESIGNER graphics, version 17-21
1616c990e5baSDaniel Fojt!:mime	application/x-vnd.corel.zcf.designer.document+zip
1617c990e5baSDaniel Fojt!:ext	des
1618c990e5baSDaniel Fojt# URL:	http://product.corel.com/help/CorelDRAW/540223850/Main/EN/Documentation/
1619c990e5baSDaniel Fojt#	CorelDRAW-Corel-Symbol-Library-CSL.html
1620c990e5baSDaniel Fojt>>>62	string	symbol.library+zip		Symbol Library, version 6-16.3
1621c990e5baSDaniel Fojt!:mime	application/x-vnd.corel.symbol.library+zip
1622c990e5baSDaniel Fojt!:ext	csl
1623c990e5baSDaniel Fojt>>>62	string	zcf.symbol.library+zip		Symbol Library, version 17-22
1624c990e5baSDaniel Fojt!:mime	application/x-vnd.corel.zcf.symbol.library+zip
1625c990e5baSDaniel Fojt!:ext	csl
16266fca56fbSSascha Wildner
1627e4d4ce0cSPeter Avalos#  Catch other ZIP-with-mimetype formats
1628e4d4ce0cSPeter Avalos#	In a ZIP file, the bytes immediately after a member's contents are
1629e4d4ce0cSPeter Avalos#	always "PK". The 2 regex rules here print the "mimetype" member's
1630e4d4ce0cSPeter Avalos#	contents up to the first 'P'. Luckily, most MIME types don't contain
1631e4d4ce0cSPeter Avalos#	any capital 'P's. This is a kludge.
1632e4d4ce0cSPeter Avalos#    (mimetype contains "application/<OTHER>")
16336fca56fbSSascha Wildner>>50		default	x			Zip data
16346fca56fbSSascha Wildner>>>38		regex	[!-OQ-~]+		(MIME type "%s"?)
1635e4d4ce0cSPeter Avalos!:mime	application/zip
1636e4d4ce0cSPeter Avalos#    (mimetype contents other than "application/*")
1637e4d4ce0cSPeter Avalos>26		string	\x8\0\0\0mimetype
1638e4d4ce0cSPeter Avalos>>38		string	!application/
1639e4d4ce0cSPeter Avalos>>>38		regex	[!-OQ-~]+		Zip data (MIME type "%s"?)
1640e4d4ce0cSPeter Avalos!:mime	application/zip
1641e4d4ce0cSPeter Avalos
1642e8af9738SPeter Avalos# Java Jar files
1643e8af9738SPeter Avalos>(26.s+30)	leshort	0xcafe		Java archive data (JAR)
1644e8af9738SPeter Avalos!:mime	application/java-archive
1645e8af9738SPeter Avalos
1646c30bd091SSascha Wildner# iOS App
1647c30bd091SSascha Wildner>(26.s+30)	leshort	!0xcafe
1648c30bd091SSascha Wildner>>26		string	!\x8\0\0\0mimetype
1649c30bd091SSascha Wildner>>>30		string	Payload/
1650c30bd091SSascha Wildner>>>>38		search/64       .app/   iOS App
1651c30bd091SSascha Wildner!:mime application/x-ios-app
1652c30bd091SSascha Wildner
1653614728caSSascha Wildner# Dup, see above.
1654614728caSSascha Wildner#>30	search/100/b application/epub+zip	EPUB document
1655614728caSSascha Wildner#!:mime application/epub+zip
1656c30bd091SSascha Wildner
1657e4d4ce0cSPeter Avalos# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
1658e4d4ce0cSPeter Avalos#   Next line excludes specialized formats:
1659e8af9738SPeter Avalos>(26.s+30)	leshort	!0xcafe
1660c990e5baSDaniel Fojt>>30	search/100/b !application/epub+zip
1661c990e5baSDaniel Fojt>>>26    string          !\x8\0\0\0mimetype	Zip archive data
1662e4d4ce0cSPeter Avalos!:mime	application/zip
1663c990e5baSDaniel Fojt>>>>4	beshort		x			\b, at least
1664c990e5baSDaniel Fojt>>>>4	use		zipversion
1665c990e5baSDaniel Fojt>>>>4	beshort		x			to extract
1666970935fdSSascha Wildner>>>>8	beshort		x			\b, compression method=
1667970935fdSSascha Wildner>>>>8	use		zipcompression
1668c990e5baSDaniel Fojt>>>>0x161	string		WINZIP		\b, WinZIP self-extracting
1669a96e001bSPeter Avalos
1670a96e001bSPeter Avalos# StarView Metafile
1671a96e001bSPeter Avalos# From Pierre Ducroquet <pinaraf@pinaraf.info>
1672a96e001bSPeter Avalos0	string	VCLMTF	StarView MetaFile
1673a96e001bSPeter Avalos>6	beshort	x	\b, version %d
1674a96e001bSPeter Avalos>8	belong	x	\b, size %d
1675e4d4ce0cSPeter Avalos
1676327e51cbSPeter Avalos# Zoo archiver
1677327e51cbSPeter Avalos20	lelong		0xfdc4a7dc	Zoo archive data
167879343712SPeter Avalos!:mime	application/x-zoo
1679327e51cbSPeter Avalos>4	byte		>48		\b, v%c.
1680327e51cbSPeter Avalos>>6	byte		>47		\b%c
1681327e51cbSPeter Avalos>>>7	byte		>47		\b%c
1682327e51cbSPeter Avalos>32	byte		>0		\b, modify: v%d
1683327e51cbSPeter Avalos>>33	byte		x		\b.%d+
1684327e51cbSPeter Avalos>42	lelong		0xfdc4a7dc	\b,
1685327e51cbSPeter Avalos>>70	byte		>0		extract: v%d
1686327e51cbSPeter Avalos>>>71	byte		x		\b.%d+
1687327e51cbSPeter Avalos
1688327e51cbSPeter Avalos# Shell archives
1689327e51cbSPeter Avalos10	string		#\ This\ is\ a\ shell\ archive	shell archive text
169079343712SPeter Avalos!:mime	application/octet-stream
1691327e51cbSPeter Avalos
1692327e51cbSPeter Avalos#
1693327e51cbSPeter Avalos# LBR. NB: May conflict with the questionable
1694327e51cbSPeter Avalos#          "binary Computer Graphics Metafile" format.
1695327e51cbSPeter Avalos#
1696327e51cbSPeter Avalos0       string  \0\ \ \ \ \ \ \ \ \ \ \ \0\0    LBR archive data
1697327e51cbSPeter Avalos#
1698327e51cbSPeter Avalos# PMA (CP/M derivative of LHA)
1699c30bd091SSascha Wildner# Update: Joerg Jenderek
1700c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/LHA_(file_format)
1701327e51cbSPeter Avalos#
1702c30bd091SSascha Wildner#2       string          -pm0-           PMarc archive data [pm0]
1703c30bd091SSascha Wildner2	string		-pm0-
1704c30bd091SSascha Wildner>0	use	lharc-file
1705c30bd091SSascha Wildner#2       string          -pm1-           PMarc archive data [pm1]
1706c30bd091SSascha Wildner2	string		-pm1-
1707c30bd091SSascha Wildner>0	use	lharc-file
1708c30bd091SSascha Wildner#2       string          -pm2-           PMarc archive data [pm2]
1709c30bd091SSascha Wildner2	string		-pm2-
1710c30bd091SSascha Wildner>0	use	lharc-file
1711327e51cbSPeter Avalos2       string          -pms-           PMarc SFX archive (CP/M, DOS)
1712c30bd091SSascha Wildner#!:mime	application/x-foobar-exec
1713c30bd091SSascha Wildner!:ext com
1714327e51cbSPeter Avalos5       string          -pc1-           PopCom compressed executable (CP/M)
1715c30bd091SSascha Wildner#!:mime	application/x-
1716c30bd091SSascha Wildner#!:ext com
1717327e51cbSPeter Avalos
1718327e51cbSPeter Avalos# From Rafael Laboissiere <rafael@laboissiere.net>
1719327e51cbSPeter Avalos# The Project Revision Control System (see
1720327e51cbSPeter Avalos# http://prcs.sourceforge.net) generates a packaged project
1721327e51cbSPeter Avalos# file which is recognized by the following entry:
1722327e51cbSPeter Avalos0	leshort		0xeb81	PRCS packaged project
1723327e51cbSPeter Avalos
1724327e51cbSPeter Avalos# Microsoft cabinets
1725327e51cbSPeter Avalos# by David Necas (Yeti) <yeti@physics.muni.cz>
1726327e51cbSPeter Avalos#0	string	MSCF\0\0\0\0	Microsoft cabinet file data,
1727327e51cbSPeter Avalos#>25	byte	x		v%d
1728327e51cbSPeter Avalos#>24	byte	x		\b.%d
1729327e51cbSPeter Avalos# MPi: All CABs have version 1.3, so this is pointless.
1730327e51cbSPeter Avalos# Better magic in debian-additions.
1731327e51cbSPeter Avalos
1732327e51cbSPeter Avalos# GTKtalog catalogs
1733327e51cbSPeter Avalos# by David Necas (Yeti) <yeti@physics.muni.cz>
1734327e51cbSPeter Avalos4	string	gtktalog\ 	GTKtalog catalog data,
1735327e51cbSPeter Avalos>13	string	3		version 3
1736327e51cbSPeter Avalos>>14	beshort	0x677a		(gzipped)
1737327e51cbSPeter Avalos>>14	beshort	!0x677a		(not gzipped)
1738327e51cbSPeter Avalos>13	string	>3		version %s
1739327e51cbSPeter Avalos
1740327e51cbSPeter Avalos############################################################################
1741327e51cbSPeter Avalos# Parity archive reconstruction file, the 'par' file format now used on Usenet.
1742327e51cbSPeter Avalos0       string          PAR\0	PARity archive data
1743327e51cbSPeter Avalos>48	leshort		=0	- Index file
1744327e51cbSPeter Avalos>48	leshort		>0	- file number %d
1745327e51cbSPeter Avalos
1746327e51cbSPeter Avalos# Felix von Leitner <felix-file@fefe.de>
1747327e51cbSPeter Avalos0	string	d8:announce	BitTorrent file
174879343712SPeter Avalos!:mime	application/x-bittorrent
1749*3b9cdfa3SAntonio Huete Jimenez!:ext	torrent
1750c30bd091SSascha Wildner# Durval Menezes, <jmgthbfile at durval dot com>
1751c30bd091SSascha Wildner0	string	d13:announce-list	BitTorrent file
1752c30bd091SSascha Wildner!:mime	application/x-bittorrent
1753*3b9cdfa3SAntonio Huete Jimenez!:ext	torrent
17546fca56fbSSascha Wildner0	string	d7:comment	BitTorrent file
17556fca56fbSSascha Wildner!:mime	application/x-bittorrent
1756*3b9cdfa3SAntonio Huete Jimenez!:ext	torrent
17576fca56fbSSascha Wildner0	string	d4:info		BitTorrent file
17586fca56fbSSascha Wildner!:mime	application/x-bittorrent
1759*3b9cdfa3SAntonio Huete Jimenez!:ext	torrent
1760327e51cbSPeter Avalos
1761327e51cbSPeter Avalos# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
1762*3b9cdfa3SAntonio Huete Jimenez# URL:		http://fileformats.archiveteam.org/wiki/MSA_(Magic_Shadow_Archiver)
1763*3b9cdfa3SAntonio Huete Jimenez# Reference:	http://info-coach.fr/atari/documents/_mydoc/FD_Image_File_Format.pdf
1764*3b9cdfa3SAntonio Huete Jimenez#		http://mark0.net/download/triddefs_xml.7z/defs/m/msa.trid.xml
1765*3b9cdfa3SAntonio Huete Jimenez# Update:	Joerg Jenderek
1766*3b9cdfa3SAntonio Huete Jimenez# Note:		called by TrID "Atari MSA Disk Image" and verified by
1767*3b9cdfa3SAntonio Huete Jimenez#		command like `deark -l -m msa -d2 PDATS578.msa` as " Atari ST floppy disk image"
1768*3b9cdfa3SAntonio Huete Jimenez# GRR: line below is too general as it matches setup.skin
1769*3b9cdfa3SAntonio Huete Jimenez0	beshort 0x0e0f
1770*3b9cdfa3SAntonio Huete Jimenez# skip foo setup.skin with unrealistic high number 52255 of sides by check for valid "low" value
1771*3b9cdfa3SAntonio Huete Jimenez>4	ubeshort <2		Atari MSA archive data
1772*3b9cdfa3SAntonio Huete Jimenez#!:mime	application/octet-stream
1773*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-atari-msa
1774*3b9cdfa3SAntonio Huete Jimenez!:ext	msa
1775*3b9cdfa3SAntonio Huete Jimenez# sectors per track like: 9 10
1776*3b9cdfa3SAntonio Huete Jimenez>>2	beshort x		\b, %d sectors per track
1777*3b9cdfa3SAntonio Huete Jimenez# sides (0 or 1; add 1 to this to get correct number of sides)
1778*3b9cdfa3SAntonio Huete Jimenez>>4	beshort 0		\b, 1 sided
1779*3b9cdfa3SAntonio Huete Jimenez>>4	beshort 1		\b, 2 sided
1780*3b9cdfa3SAntonio Huete Jimenez# starting track like: 0
1781*3b9cdfa3SAntonio Huete Jimenez>>6	beshort x		\b, starting track: %d
1782*3b9cdfa3SAntonio Huete Jimenez# ending track like: 39 79 80 81
1783*3b9cdfa3SAntonio Huete Jimenez>>8	beshort x		\b, ending track: %d
1784*3b9cdfa3SAntonio Huete Jimenez# tracks content
1785*3b9cdfa3SAntonio Huete Jimenez#>>10	ubequad x		\b, track content %#16.16llx
1786327e51cbSPeter Avalos
1787327e51cbSPeter Avalos# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
1788327e51cbSPeter Avalos0	string	PK00PK\003\004	Zip archive data
17896fca56fbSSascha Wildner!:mime	application/zip
17906fca56fbSSascha Wildner!:ext zip/cbz
1791327e51cbSPeter Avalos
1792327e51cbSPeter Avalos# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
1793327e51cbSPeter Avalos# by Stefan `Sec` Zehl <sec@42.org>
1794327e51cbSPeter Avalos7	string		**ACE**		ACE archive data
1795*3b9cdfa3SAntonio Huete Jimenez!:mime	application/x-ace-compressed
1796*3b9cdfa3SAntonio Huete Jimenez!:ext	ace
1797327e51cbSPeter Avalos>15	byte	>0		version %d
1798327e51cbSPeter Avalos>16	byte	=0x00		\b, from MS-DOS
1799327e51cbSPeter Avalos>16	byte	=0x01		\b, from OS/2
1800327e51cbSPeter Avalos>16	byte	=0x02		\b, from Win/32
1801327e51cbSPeter Avalos>16	byte	=0x03		\b, from Unix
1802327e51cbSPeter Avalos>16	byte	=0x04		\b, from MacOS
1803327e51cbSPeter Avalos>16	byte	=0x05		\b, from WinNT
1804327e51cbSPeter Avalos>16	byte	=0x06		\b, from Primos
1805327e51cbSPeter Avalos>16	byte	=0x07		\b, from AppleGS
1806327e51cbSPeter Avalos>16	byte	=0x08		\b, from Atari
1807327e51cbSPeter Avalos>16	byte	=0x09		\b, from Vax/VMS
1808327e51cbSPeter Avalos>16	byte	=0x0A		\b, from Amiga
1809327e51cbSPeter Avalos>16	byte	=0x0B		\b, from Next
1810327e51cbSPeter Avalos>14	byte	x		\b, version %d to extract
1811327e51cbSPeter Avalos>5	leshort &0x0080		\b, multiple volumes,
1812327e51cbSPeter Avalos>>17	byte	x		\b (part %d),
1813327e51cbSPeter Avalos>5	leshort &0x0002		\b, contains comment
1814327e51cbSPeter Avalos>5	leshort	&0x0200		\b, sfx
1815327e51cbSPeter Avalos>5	leshort	&0x0400		\b, small dictionary
1816327e51cbSPeter Avalos>5	leshort	&0x0800		\b, multi-volume
1817327e51cbSPeter Avalos>5	leshort	&0x1000		\b, contains AV-String
1818327e51cbSPeter Avalos>>30	string	\x16*UNREGISTERED\x20VERSION*	(unregistered)
1819327e51cbSPeter Avalos>5	leshort &0x2000		\b, with recovery record
1820327e51cbSPeter Avalos>5	leshort &0x4000		\b, locked
1821327e51cbSPeter Avalos>5	leshort &0x8000		\b, solid
1822327e51cbSPeter Avalos# Date in MS-DOS format (whatever that is)
1823327e51cbSPeter Avalos#>18	lelong	x		Created on
1824327e51cbSPeter Avalos
1825327e51cbSPeter Avalos# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
1826327e51cbSPeter Avalos# <doj@cubic.org>
1827327e51cbSPeter Avalos0x1A	string	sfArk		sfArk compressed Soundfont
1828327e51cbSPeter Avalos>0x15	string	2
1829327e51cbSPeter Avalos>>0x1	string	>\0		Version %s
1830327e51cbSPeter Avalos>>0x2A	string	>\0		: %s
1831327e51cbSPeter Avalos
1832327e51cbSPeter Avalos# DR-DOS 7.03 Packed File *.??_
1833970935fdSSascha Wildner# Reference: http://www.antonis.de/dos/dos-tuts/mpdostip/html/nwdostip.htm
1834970935fdSSascha Wildner# Note:	unpacked by PNUNPACK.EXE
1835970935fdSSascha Wildner0	string	Packed\ File\
1836970935fdSSascha Wildner# by looking for Control-Z skip ASCII text starting with Packed File
1837970935fdSSascha Wildner>0x18	ubyte	0x1a		Personal NetWare Packed File
1838970935fdSSascha Wildner!:mime	application/x-novell-compress
1839970935fdSSascha Wildner!:ext	??_
1840970935fdSSascha Wildner>>12	string	x		\b, was "%.12s"
1841970935fdSSascha Wildner# 1 or 2
1842970935fdSSascha Wildner#>>0x19	ubyte	x		\b, at 0x19 %u
1843970935fdSSascha Wildner>>0x1b	ulelong	x		with %u bytes
1844327e51cbSPeter Avalos
1845327e51cbSPeter Avalos# EET archive
1846327e51cbSPeter Avalos# From: Tilman Sauerbeck <tilman@code-monkey.de>
1847327e51cbSPeter Avalos0	belong	0x1ee7ff00	EET archive
184879343712SPeter Avalos!:mime	application/x-eet
1849327e51cbSPeter Avalos
1850327e51cbSPeter Avalos# rzip archives
1851327e51cbSPeter Avalos0	string	RZIP		rzip compressed data
1852327e51cbSPeter Avalos>4	byte	x		- version %d
1853327e51cbSPeter Avalos>5	byte	x		\b.%d
1854327e51cbSPeter Avalos>6	belong	x		(%d bytes)
1855327e51cbSPeter Avalos
18566fca56fbSSascha Wildner# From:		Joerg Jenderek
18576fca56fbSSascha Wildner# URL:		https://help.foxitsoftware.com/kb/install-fzip-file.php
18586fca56fbSSascha Wildner# reference:	http://mark0.net/download/triddefs_xml.7z/
18596fca56fbSSascha Wildner#		defs/f/fzip.trid.xml
18606fca56fbSSascha Wildner# Note: unknown compression; No "PK" zip magic; normally in directory like
18616fca56fbSSascha Wildner#	"%APPDATA%\Foxit Software\Addon\Foxit Reader\Install"
18626fca56fbSSascha Wildner0	ubequad	0x2506781901010000	Foxit add-on/update
18636fca56fbSSascha Wildner!:mime	application/x-fzip
18646fca56fbSSascha Wildner!:ext	fzip
18656fca56fbSSascha Wildner
1866327e51cbSPeter Avalos# From: "Robert Dale" <robdale@gmail.com>
1867327e51cbSPeter Avalos0	belong	123		dar archive,
1868327e51cbSPeter Avalos>4	belong	x		label "%.8x
1869327e51cbSPeter Avalos>>8	belong	x		%.8x
1870327e51cbSPeter Avalos>>>12	beshort	x		%.4x"
1871327e51cbSPeter Avalos>14	byte	0x54		end slice
1872327e51cbSPeter Avalos>14	beshort	0x4e4e		multi-part
1873327e51cbSPeter Avalos>14	beshort	0x4e53		multi-part, with -S
1874327e51cbSPeter Avalos
1875327e51cbSPeter Avalos# Symbian installation files
18766fca56fbSSascha Wildner#  https://www.thouky.co.uk/software/psifs/sis.html
1877327e51cbSPeter Avalos#  http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf
1878327e51cbSPeter Avalos8	lelong	0x10000419	Symbian installation file
187979343712SPeter Avalos!:mime	application/vnd.symbian.install
1880327e51cbSPeter Avalos>4	lelong	0x1000006D	(EPOC release 3/4/5)
1881327e51cbSPeter Avalos>4	lelong	0x10003A12	(EPOC release 6)
1882327e51cbSPeter Avalos0	lelong	0x10201A7A	Symbian installation file (Symbian OS 9.x)
188379343712SPeter Avalos!:mime	x-epoc/x-sisx-app
1884327e51cbSPeter Avalos
1885327e51cbSPeter Avalos# From "Nelson A. de Oliveira" <naoliv@gmail.com>
1886327e51cbSPeter Avalos0	string	MPQ\032		MoPaQ (MPQ) archive
1887327e51cbSPeter Avalos
1888327e51cbSPeter Avalos# From: "Nelson A. de Oliveira" <naoliv@gmail.com>
1889327e51cbSPeter Avalos# .kgb
1890327e51cbSPeter Avalos0	string KGB_arch		KGB Archiver file
1891327e51cbSPeter Avalos>10	string x		with compression level %.1s
189279343712SPeter Avalos
189379343712SPeter Avalos# xar (eXtensible ARchiver) archive
18946fca56fbSSascha Wildner# URL: https://en.wikipedia.org/wiki/Xar_(archiver)
18956fca56fbSSascha Wildner# xar archive format: https://code.google.com/p/xar/
189679343712SPeter Avalos# From: "David Remahl" <dremahl@apple.com>
18976fca56fbSSascha Wildner# Update: Joerg Jenderek
18986fca56fbSSascha Wildner# TODO: lzma compression; X509Data for pkg and xip
18996fca56fbSSascha Wildner# Note: verified by `xar --dump-header -f FullBundleUpdate.xar` or
19006fca56fbSSascha Wildner# 7z t -txar Xcode_10.2_beta_4.xip`
190179343712SPeter Avalos0	string	xar!		xar archive
1902c30bd091SSascha Wildner!:mime	application/x-xar
19036fca56fbSSascha Wildner# pkg for Mac OSX installer package like FullBundleUpdate.pkg
19046fca56fbSSascha Wildner# xip for signed Apple software like Xcode_10.2_beta_4.xip
19056fca56fbSSascha Wildner!:ext	xar/pkg/xip
19066fca56fbSSascha Wildner# always 28 in older archives
19076fca56fbSSascha Wildner>4	ubeshort >28		\b, header size %u
19086fca56fbSSascha Wildner# currently there exit only version 1 since about 2014
19096fca56fbSSascha Wildner>6	ubeshort >1		version %u,
19106fca56fbSSascha Wildner>8	ubequad	x		compressed TOC: %llu,
19116fca56fbSSascha Wildner#>16	ubequad	x		uncompressed TOC: %llu,
19126fca56fbSSascha Wildner# cksum_alg 0-2 in older and also 3-4 in newer
191379343712SPeter Avalos>24	belong	0		no checksum
191479343712SPeter Avalos>24	belong	1		SHA-1 checksum
191579343712SPeter Avalos>24	belong	2		MD5 checksum
19166fca56fbSSascha Wildner>24	belong	3		SHA-256 checksum
19176fca56fbSSascha Wildner>24	belong	4		SHA-512 checksum
1918614728caSSascha Wildner>24	belong	>4		unknown %#x checksum
19196fca56fbSSascha Wildner#>24	belong	>4		checksum
19206fca56fbSSascha Wildner#			For no compression jump 0 bytes
19216fca56fbSSascha Wildner>24	belong	0
19226fca56fbSSascha Wildner>>0		ubyte	x
19236fca56fbSSascha Wildner# jump more bytes forward by header size
19246fca56fbSSascha Wildner>>>&(4.S)	ubyte	x
19256fca56fbSSascha Wildner# jump more bytes forward by compressed table of contents size
1926614728caSSascha Wildner#>>>>&(8.Q)	ubequad	x	\b, heap data %#llx
19276fca56fbSSascha Wildner>>>>&(8.Q)	ubyte	x
19286fca56fbSSascha Wildner# look for data by ./compress after message with 1 space at end
19296fca56fbSSascha Wildner>>>>>&-3	indirect x	\b, contains
19306fca56fbSSascha Wildner#			For SHA-1 jump 20 minus 2 bytes
19316fca56fbSSascha Wildner>24	belong	1
19326fca56fbSSascha Wildner>>18		ubyte	x
19336fca56fbSSascha Wildner# jump more bytes forward by header size
19346fca56fbSSascha Wildner>>>&(4.S)	ubyte	x
19356fca56fbSSascha Wildner# jump more bytes forward by compressed table of contents size
19366fca56fbSSascha Wildner>>>>&(8.Q)	ubyte	x
19376fca56fbSSascha Wildner# data compressed by gzip, bzip, lzma or none
19386fca56fbSSascha Wildner>>>>>&-1	indirect x	\b, contains
19396fca56fbSSascha Wildner#			For SHA-256 jump 32 minus 2 bytes
19406fca56fbSSascha Wildner>24	belong	3
19416fca56fbSSascha Wildner>>30		ubyte	x
19426fca56fbSSascha Wildner# jump more bytes forward by header size
19436fca56fbSSascha Wildner>>>&(4.S)	ubyte	x
19446fca56fbSSascha Wildner# jump more bytes forward by compressed table of contents size
19456fca56fbSSascha Wildner>>>>&(8.Q)	ubyte	x
19466fca56fbSSascha Wildner>>>>>&-1	indirect x	\b, contains
19476fca56fbSSascha Wildner#			For SHA-512 jump 64 minus 2 bytes
19486fca56fbSSascha Wildner>24	belong	4
19496fca56fbSSascha Wildner>>62		ubyte	x
19506fca56fbSSascha Wildner# jump more bytes forward by header size
19516fca56fbSSascha Wildner>>>&(4.S)	ubyte	x
19526fca56fbSSascha Wildner# jump more bytes forward by compressed table of contents size
19536fca56fbSSascha Wildner>>>>&(8.Q)	ubyte	x
19546fca56fbSSascha Wildner>>>>>&-1	indirect x	\b, contains
1955e4d4ce0cSPeter Avalos
1956e4d4ce0cSPeter Avalos# Type: Parity Archive
1957e4d4ce0cSPeter Avalos# From: Daniel van Eeden <daniel_e@dds.nl>
1958e4d4ce0cSPeter Avalos0	string	PAR2		Parity Archive Volume Set
1959e4d4ce0cSPeter Avalos
1960e4d4ce0cSPeter Avalos# Bacula volume format. (Volumes always start with a block header.)
19616fca56fbSSascha Wildner# URL: https://bacula.org/3.0.x-manuals/en/developers/developers/Block_Header.html
1962e4d4ce0cSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com>
1963e4d4ce0cSPeter Avalos12	string	BB02		Bacula volume
1964e4d4ce0cSPeter Avalos>20	bedate	x		\b, started %s
1965e4d4ce0cSPeter Avalos
1966e4d4ce0cSPeter Avalos# ePub is XHTML + XML inside a ZIP archive.  The first member of the
1967e4d4ce0cSPeter Avalos#   archive must be an uncompressed file called 'mimetype' with contents
1968e4d4ce0cSPeter Avalos#   'application/epub+zip'
1969e4d4ce0cSPeter Avalos
1970e4d4ce0cSPeter Avalos
1971e8af9738SPeter Avalos# From: "Michael Gorny" <mgorny@gentoo.org>
1972e4d4ce0cSPeter Avalos# ZPAQ: http://mattmahoney.net/dc/zpaq.html
1973e4d4ce0cSPeter Avalos0	string	zPQ	ZPAQ stream
1974e4d4ce0cSPeter Avalos>3	byte	x	\b, level %d
1975c30bd091SSascha Wildner# From: Barry Carter <carter.barry@gmail.com>
19766fca56fbSSascha Wildner# https://encode.ru/threads/456-zpaq-updates/page32
1977c30bd091SSascha Wildner0	string	7kSt	ZPAQ file
1978a96e001bSPeter Avalos
1979a96e001bSPeter Avalos# BBeB ebook, unencrypted (LRF format)
19806fca56fbSSascha Wildner# URL: https://www.sven.de/librie/Librie/LrfFormat
1981a96e001bSPeter Avalos# From: Adam Buchbinder <adam.buchbinder@gmail.com>
1982a96e001bSPeter Avalos0	string	L\0R\0F\0\0\0	BBeB ebook data, unencrypted
1983a96e001bSPeter Avalos>8	beshort	x		\b, version %d
1984a96e001bSPeter Avalos>36	byte	1		\b, front-to-back
1985a96e001bSPeter Avalos>36	byte	16		\b, back-to-front
1986a96e001bSPeter Avalos>42	beshort	x		\b, (%dx,
1987a96e001bSPeter Avalos>44	beshort	x		%d)
198882c5fa3eSPeter Avalos
198982c5fa3eSPeter Avalos# Symantec GHOST image by Joerg Jenderek at May 2014
19906fca56fbSSascha Wildner# https://us.norton.com/ghost/
19916fca56fbSSascha Wildner# https://www.garykessler.net/library/file_sigs.html
199282c5fa3eSPeter Avalos0		ubelong&0xFFFFf7f0	0xFEEF0100	Norton GHost image
199382c5fa3eSPeter Avalos# *.GHO
199482c5fa3eSPeter Avalos>2		ubyte&0x08		0x00		\b, first file
199582c5fa3eSPeter Avalos# *.GHS or *.[0-9] with cns program option
199682c5fa3eSPeter Avalos>2		ubyte&0x08		0x08		\b, split file
199782c5fa3eSPeter Avalos# part of split index interesting for *.ghs
1998614728caSSascha Wildner>>4		ubyte			x		id=%#x
199982c5fa3eSPeter Avalos# compression tag minus one equals numeric compression command line switch z[1-9]
200082c5fa3eSPeter Avalos>3		ubyte			0		\b, no compression
200182c5fa3eSPeter Avalos>3		ubyte			2		\b, fast compression (Z1)
200282c5fa3eSPeter Avalos>3		ubyte			3		\b, medium compression (Z2)
200382c5fa3eSPeter Avalos>3		ubyte			>3
200482c5fa3eSPeter Avalos>>3		ubyte			<11		\b, compression (Z%d-1)
200582c5fa3eSPeter Avalos>2		ubyte&0x08		0x00
200682c5fa3eSPeter Avalos# ~ 30 byte password field only for *.gho
200782c5fa3eSPeter Avalos>>12		ubequad			!0		\b, password protected
200882c5fa3eSPeter Avalos>>44		ubyte			!1
200982c5fa3eSPeter Avalos# 1~Image All, sector-by-sector only for *.gho
201082c5fa3eSPeter Avalos>>>10		ubyte			1		\b, sector copy
201182c5fa3eSPeter Avalos# 1~Image Boot track only for *.gho
201282c5fa3eSPeter Avalos>>>43		ubyte			1		\b, boot track
201382c5fa3eSPeter Avalos# 1~Image Disc only for *.gho implies Image Boot track and sector copy
201482c5fa3eSPeter Avalos>>44		ubyte			1		\b, disc sector copy
201582c5fa3eSPeter Avalos# optional image description only *.gho
201682c5fa3eSPeter Avalos>>0xff		string			>\0		"%-.254s"
201782c5fa3eSPeter Avalos# look for DOS sector end sequence
201882c5fa3eSPeter Avalos>0xE08	search/7776		\x55\xAA
201982c5fa3eSPeter Avalos>>&-512	indirect		x		\b; contains
202082c5fa3eSPeter Avalos
2021c30bd091SSascha Wildner# Google Chrome extensions
2022c30bd091SSascha Wildner# https://developer.chrome.com/extensions/crx
2023c30bd091SSascha Wildner# https://developer.chrome.com/extensions/hosting
2024c30bd091SSascha Wildner0	string	Cr24	Google Chrome extension
2025c30bd091SSascha Wildner!:mime	application/x-chrome-extension
2026c30bd091SSascha Wildner>4	ulong	x	\b, version %u
2027c30bd091SSascha Wildner
2028c30bd091SSascha Wildner# SeqBox - Sequenced container
2029c30bd091SSascha Wildner# ext: sbx, seqbox
2030c30bd091SSascha Wildner# Marco Pontello marcopon@gmail.com
2031c30bd091SSascha Wildner# reference: https://github.com/MarcoPon/SeqBox
2032c30bd091SSascha Wildner0	string	SBx	SeqBox,
2033c30bd091SSascha Wildner>3	byte	x	version %d
20346fca56fbSSascha Wildner
20356fca56fbSSascha Wildner# LyNX archive
20366fca56fbSSascha Wildner56	string	USE\040LYNX\040TO\040DISSOLVE\040THIS\040FILE	 LyNX archive
20376fca56fbSSascha Wildner
20386fca56fbSSascha Wildner# From: Joerg Jenderek
20396fca56fbSSascha Wildner# URL: https://www.acronis.com/
20406fca56fbSSascha Wildner# Reference: https://en.wikipedia.org/wiki/TIB_(file_format)
20416fca56fbSSascha Wildner# Note: only tested with True Image 2013 Build 5962 and 2019 Build 14110
20426fca56fbSSascha Wildner0	ubequad		0xce24b9a220000000	Acronis True Image backup
20436fca56fbSSascha Wildner!:mime	application/x-acronis-tib
20446fca56fbSSascha Wildner!:ext	tib
20456fca56fbSSascha Wildner# 01000000
2046614728caSSascha Wildner#>20	ubelong		x			\b, at 20 %#x
20476fca56fbSSascha Wildner# 20000000
2048614728caSSascha Wildner#>28	ubelong		x			\b, at 28 %#x
20496fca56fbSSascha Wildner# strings like "Generic- SD/MMC 1.00" "Unknown Disk" "Msft Virtual Disk 1.0"
20506fca56fbSSascha Wildner# ???
20516fca56fbSSascha Wildner# strings like "\Device\0000011e" "\Device\0000015a"
20526fca56fbSSascha Wildner#>0	search/0x6852300/cs	\\Device\\
20536fca56fbSSascha Wildner#>>&-1	pstring		x			\b, %s
20546fca56fbSSascha Wildner# "\Device\HarddiskVolume30" "\Device\HarddiskVolume39"
20556fca56fbSSascha Wildner#>>>&1	search/180/cs	\\Device\\
20566fca56fbSSascha Wildner#>>>>&-1	pstring		x			\b, %s
20576fca56fbSSascha Wildner#>>>>>&0	search/29/cs	\0\0\xc8\0
20586fca56fbSSascha Wildner# disk label
20596fca56fbSSascha Wildner#>>>>>>&10	lestring16	x		\b, disk label %11.11s
20606fca56fbSSascha Wildner#>>>>>>&9	plestring16	x		\b, disk label "%11.11s"
20616fca56fbSSascha Wildner#>>>>>>&10	ubequad	x			%16.16llx
20626fca56fbSSascha Wildner
20636fca56fbSSascha Wildner
20646fca56fbSSascha Wildner# Gentoo XPAK binary package
20656fca56fbSSascha Wildner# by Michal Gorny <mgorny@gentoo.org>
20666fca56fbSSascha Wildner# https://gitweb.gentoo.org/proj/portage.git/tree/man/xpak.5
20676fca56fbSSascha Wildner-4	string	STOP
20686fca56fbSSascha Wildner>-16	string	XPAKSTOP	Gentoo binary package (XPAK)
20696fca56fbSSascha Wildner
20706fca56fbSSascha Wildner# From:		Joerg Jenderek
20716fca56fbSSascha Wildner# URL:		https://kodi.wiki/view/TexturePacker
20726fca56fbSSascha Wildner# Reference:	https://mirrors.kodi.tv/releases/source/17.3-Krypton.tar.gz
20736fca56fbSSascha Wildner# /xbmc-Krypton/xbmc/guilib/XBTF.h
20746fca56fbSSascha Wildner# /xbmc-Krypton/xbmc/guilib/XBTF.cpp
20756fca56fbSSascha Wildner0	string	XBTF
20766fca56fbSSascha Wildner# skip ASCII text by looking for terminating \0 of path
20776fca56fbSSascha Wildner>264	ubyte	0		XBMC texture package
20786fca56fbSSascha Wildner!:mime	application/x-xbmc-xbt
20796fca56fbSSascha Wildner!:ext	xbt
20806fca56fbSSascha Wildner# XBTF_VERSION 2
20816fca56fbSSascha Wildner>>4	string	!2		\b, version %-.1s
20826fca56fbSSascha Wildner# nofFiles /xbmc-Krypton/xbmc/guilib/XBTFReader.cpp
20836fca56fbSSascha Wildner>>5	ulelong	x		\b, %u file
20846fca56fbSSascha Wildner# plural s
20856fca56fbSSascha Wildner>>5	ulelong	>1		\bs
20866fca56fbSSascha Wildner# path[CXBTFFile[MaximumPathLength=256]
20876fca56fbSSascha Wildner>>9	string	x		\b, 1st %s
20886fca56fbSSascha Wildner
2089970935fdSSascha Wildner# ALZIP archive
2090970935fdSSascha Wildner# by Hyungjun Park <hyungjun.park@worksmobile.com>, Hajin Jang <hajin_jang@worksmobile.com>
2091970935fdSSascha Wildner# http://kippler.com/win/unalz/
2092970935fdSSascha Wildner# https://salsa.debian.org/l10n-korean-team/unalz
2093970935fdSSascha Wildner0	string	ALZ\001		ALZ archive data
2094970935fdSSascha Wildner!:ext   alz
2095970935fdSSascha Wildner
2096970935fdSSascha Wildner# https://cf-aldn.altools.co.kr/setup/EGG_Specification.zip
2097970935fdSSascha Wildner0	string	EGGA		EGG archive data,
2098970935fdSSascha Wildner!:ext   egg
2099970935fdSSascha Wildner>5	byte	x		version %u
2100970935fdSSascha Wildner>4	byte	x		\b.%u
2101970935fdSSascha Wildner>>0x0E	ulelong	=0x08E28222
2102970935fdSSascha Wildner>>0x0E	ulelong	=0x24F5A262	\b, split
2103970935fdSSascha Wildner>>0x0E	ulelong	=0x24E5A060	\b, solid
2104970935fdSSascha Wildner>>0x0E	default	x		\b, unknown
2105970935fdSSascha Wildner
2106970935fdSSascha Wildner# PAQ9A archive
2107970935fdSSascha Wildner# URL: http://mattmahoney.net/dc/#paq9a
2108970935fdSSascha Wildner# Note: Line 1186 of paq9a.cpp gives the magic bytes
2109970935fdSSascha Wildner0	string	pQ9\001		PAQ9A archive
2110*3b9cdfa3SAntonio Huete Jimenez
2111*3b9cdfa3SAntonio Huete Jimenez# From wof (wof@stachelkaktus.net)
2112*3b9cdfa3SAntonio Huete Jimenez0	string	Unison\ archive\ format	Unison archive format
2113