1b6cee71dSXin LI#------------------------------------------------------------------------------ 2*5f0216bdSXin LI# $File: archive,v 1.90 2015/04/24 15:44:12 christos Exp $ 3b6cee71dSXin LI# archive: file(1) magic for archive formats (see also "msdos" for self- 4b6cee71dSXin LI# extracting compressed archives) 5b6cee71dSXin LI# 6b6cee71dSXin LI# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc. 7b6cee71dSXin LI# pre-POSIX "tar" archives are handled in the C code. 8b6cee71dSXin LI 9b6cee71dSXin LI# POSIX tar archives 10b6cee71dSXin LI257 string ustar\0 POSIX tar archive 11b6cee71dSXin LI!:mime application/x-tar # encoding: posix 12b6cee71dSXin LI257 string ustar\040\040\0 GNU tar archive 13b6cee71dSXin LI!:mime application/x-tar # encoding: gnu 14b6cee71dSXin LI 15b6cee71dSXin LI# Incremental snapshot gnu-tar format from: 16b6cee71dSXin LI# http://www.gnu.org/software/tar/manual/html_node/Snapshot-Files.html 17b6cee71dSXin LI0 string GNU\ tar- GNU tar incremental snapshot data 18b6cee71dSXin LI>&0 regex [0-9]\.[0-9]+-[0-9]+ version %s 19b6cee71dSXin LI 20b6cee71dSXin LI# cpio archives 21b6cee71dSXin LI# 22b6cee71dSXin LI# Yes, the top two "cpio archive" formats *are* supposed to just be "short". 23b6cee71dSXin LI# The idea is to indicate archives produced on machines with the same 24b6cee71dSXin LI# byte order as the machine running "file" with "cpio archive", and 25b6cee71dSXin LI# to indicate archives produced on machines with the opposite byte order 26b6cee71dSXin LI# from the machine running "file" with "byte-swapped cpio archive". 27b6cee71dSXin LI# 28b6cee71dSXin LI# The SVR4 "cpio(4)" hints that there are additional formats, but they 29b6cee71dSXin LI# are defined as "short"s; I think all the new formats are 30b6cee71dSXin LI# character-header formats and thus are strings, not numbers. 31b6cee71dSXin LI0 short 070707 cpio archive 32b6cee71dSXin LI!:mime application/x-cpio 33b6cee71dSXin LI0 short 0143561 byte-swapped cpio archive 34b6cee71dSXin LI!:mime application/x-cpio # encoding: swapped 35b6cee71dSXin LI0 string 070707 ASCII cpio archive (pre-SVR4 or odc) 36b6cee71dSXin LI0 string 070701 ASCII cpio archive (SVR4 with no CRC) 37b6cee71dSXin LI0 string 070702 ASCII cpio archive (SVR4 with CRC) 38b6cee71dSXin LI 39b6cee71dSXin LI# 40b6cee71dSXin LI# Various archive formats used by various versions of the "ar" 41b6cee71dSXin LI# command. 42b6cee71dSXin LI# 43b6cee71dSXin LI 44b6cee71dSXin LI# 45b6cee71dSXin LI# Original UNIX archive formats. 46b6cee71dSXin LI# They were written with binary values in host byte order, and 47b6cee71dSXin LI# the magic number was a host "int", which might have been 16 bits 48b6cee71dSXin LI# or 32 bits. We don't say "PDP-11" or "VAX", as there might have 49b6cee71dSXin LI# been ports to little-endian 16-bit-int or 32-bit-int platforms 50b6cee71dSXin LI# (x86?) using some of those formats; if none existed, feel free 51b6cee71dSXin LI# to use "PDP-11" for little-endian 16-bit and "VAX" for little-endian 52b6cee71dSXin LI# 32-bit. There might have been big-endian ports of that sort as 53b6cee71dSXin LI# well. 54b6cee71dSXin LI# 55b6cee71dSXin LI0 leshort 0177555 very old 16-bit-int little-endian archive 56b6cee71dSXin LI0 beshort 0177555 very old 16-bit-int big-endian archive 57b6cee71dSXin LI0 lelong 0177555 very old 32-bit-int little-endian archive 58b6cee71dSXin LI0 belong 0177555 very old 32-bit-int big-endian archive 59b6cee71dSXin LI 60b6cee71dSXin LI0 leshort 0177545 old 16-bit-int little-endian archive 61b6cee71dSXin LI>2 string __.SYMDEF random library 62b6cee71dSXin LI0 beshort 0177545 old 16-bit-int big-endian archive 63b6cee71dSXin LI>2 string __.SYMDEF random library 64b6cee71dSXin LI0 lelong 0177545 old 32-bit-int little-endian archive 65b6cee71dSXin LI>4 string __.SYMDEF random library 66b6cee71dSXin LI0 belong 0177545 old 32-bit-int big-endian archive 67b6cee71dSXin LI>4 string __.SYMDEF random library 68b6cee71dSXin LI 69b6cee71dSXin LI# 70b6cee71dSXin LI# From "pdp" (but why a 4-byte quantity?) 71b6cee71dSXin LI# 72b6cee71dSXin LI0 lelong 0x39bed PDP-11 old archive 73b6cee71dSXin LI0 lelong 0x39bee PDP-11 4.0 archive 74b6cee71dSXin LI 75b6cee71dSXin LI# 76b6cee71dSXin LI# XXX - what flavor of APL used this, and was it a variant of 77b6cee71dSXin LI# some ar archive format? It's similar to, but not the same 78b6cee71dSXin LI# as, the APL workspace magic numbers in pdp. 79b6cee71dSXin LI# 80b6cee71dSXin LI0 long 0100554 apl workspace 81b6cee71dSXin LI 82b6cee71dSXin LI# 83b6cee71dSXin LI# System V Release 1 portable(?) archive format. 84b6cee71dSXin LI# 85b6cee71dSXin LI0 string =<ar> System V Release 1 ar archive 86b6cee71dSXin LI!:mime application/x-archive 87b6cee71dSXin LI 88b6cee71dSXin LI# 89b6cee71dSXin LI# Debian package; it's in the portable archive format, and needs to go 90b6cee71dSXin LI# before the entry for regular portable archives, as it's recognized as 91b6cee71dSXin LI# a portable archive whose first member has a name beginning with 92b6cee71dSXin LI# "debian". 93b6cee71dSXin LI# 94b6cee71dSXin LI0 string =!<arch>\ndebian 95b6cee71dSXin LI>8 string debian-split part of multipart Debian package 96b6cee71dSXin LI!:mime application/vnd.debian.binary-package 97b6cee71dSXin LI>8 string debian-binary Debian binary package 98b6cee71dSXin LI!:mime application/vnd.debian.binary-package 99b6cee71dSXin LI>8 string !debian 100b6cee71dSXin LI>68 string >\0 (format %s) 101b6cee71dSXin LI# These next two lines do not work, because a bzip2 Debian archive 102b6cee71dSXin LI# still uses gzip for the control.tar (first in the archive). Only 103b6cee71dSXin LI# data.tar varies, and the location of its filename varies too. 104b6cee71dSXin LI# file/libmagic does not current have support for ascii-string based 105b6cee71dSXin LI# (offsets) as of 2005-09-15. 106b6cee71dSXin LI#>81 string bz2 \b, uses bzip2 compression 107b6cee71dSXin LI#>84 string gz \b, uses gzip compression 108b6cee71dSXin LI#>136 ledate x created: %s 109b6cee71dSXin LI 110b6cee71dSXin LI# 111b6cee71dSXin LI# MIPS archive; they're in the portable archive format, and need to go 112b6cee71dSXin LI# before the entry for regular portable archives, as it's recognized as 113b6cee71dSXin LI# a portable archive whose first member has a name beginning with 114b6cee71dSXin LI# "__________E". 115b6cee71dSXin LI# 116b6cee71dSXin LI0 string =!<arch>\n__________E MIPS archive 117b6cee71dSXin LI!:mime application/x-archive 118b6cee71dSXin LI>20 string U with MIPS Ucode members 119b6cee71dSXin LI>21 string L with MIPSEL members 120b6cee71dSXin LI>21 string B with MIPSEB members 121b6cee71dSXin LI>19 string L and an EL hash table 122b6cee71dSXin LI>19 string B and an EB hash table 123b6cee71dSXin LI>22 string X -- out of date 124b6cee71dSXin LI 125b6cee71dSXin LI0 search/1 -h- Software Tools format archive text 126b6cee71dSXin LI 127b6cee71dSXin LI# 128b6cee71dSXin LI# BSD/SVR2-and-later portable archive formats. 129b6cee71dSXin LI# 130b6cee71dSXin LI0 string =!<arch> current ar archive 131b6cee71dSXin LI!:mime application/x-archive 132b6cee71dSXin LI>8 string __.SYMDEF random library 133b6cee71dSXin LI>68 string __.SYMDEF\ SORTED random library 134b6cee71dSXin LI 135b6cee71dSXin LI# 136b6cee71dSXin LI# "Thin" archive, as can be produced by GNU ar. 137b6cee71dSXin LI# 138b6cee71dSXin LI0 string =!<thin>\n thin archive with 139b6cee71dSXin LI>68 belong 0 no symbol entries 140b6cee71dSXin LI>68 belong 1 %d symbol entry 141b6cee71dSXin LI>68 belong >1 %d symbol entries 142b6cee71dSXin LI 143b6cee71dSXin LI# ARC archiver, from Daniel Quinlan (quinlan@yggdrasil.com) 144b6cee71dSXin LI# 145b6cee71dSXin LI# The first byte is the magic (0x1a), byte 2 is the compression type for 146b6cee71dSXin LI# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS 147b6cee71dSXin LI# filename of the first file (null terminated). Since some types collide 148b6cee71dSXin LI# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%), 149b6cee71dSXin LI# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%). 0x01 collides with terminfo. 150b6cee71dSXin LI0 lelong&0x8080ffff 0x0000081a ARC archive data, dynamic LZW 151b6cee71dSXin LI!:mime application/x-arc 152b6cee71dSXin LI0 lelong&0x8080ffff 0x0000091a ARC archive data, squashed 153b6cee71dSXin LI!:mime application/x-arc 154b6cee71dSXin LI0 lelong&0x8080ffff 0x0000021a ARC archive data, uncompressed 155b6cee71dSXin LI!:mime application/x-arc 156b6cee71dSXin LI0 lelong&0x8080ffff 0x0000031a ARC archive data, packed 157b6cee71dSXin LI!:mime application/x-arc 158b6cee71dSXin LI0 lelong&0x8080ffff 0x0000041a ARC archive data, squeezed 159b6cee71dSXin LI!:mime application/x-arc 160b6cee71dSXin LI0 lelong&0x8080ffff 0x0000061a ARC archive data, crunched 161b6cee71dSXin LI!:mime application/x-arc 162b6cee71dSXin LI# [JW] stuff taken from idarc, obviously ARC successors: 163b6cee71dSXin LI0 lelong&0x8080ffff 0x00000a1a PAK archive data 164b6cee71dSXin LI!:mime application/x-arc 165b6cee71dSXin LI0 lelong&0x8080ffff 0x0000141a ARC+ archive data 166b6cee71dSXin LI!:mime application/x-arc 167b6cee71dSXin LI0 lelong&0x8080ffff 0x0000481a HYP archive data 168b6cee71dSXin LI!:mime application/x-arc 169b6cee71dSXin LI 170b6cee71dSXin LI# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk) 171b6cee71dSXin LI# I can't create either SPARK or ArcFS archives so I have not tested this stuff 172b6cee71dSXin LI# [GRR: the original entries collide with ARC, above; replaced with combined 173b6cee71dSXin LI# version (not tested)] 174b6cee71dSXin LI#0 byte 0x1a RISC OS archive (spark format) 175b6cee71dSXin LI0 string \032archive RISC OS archive (ArcFS format) 176b6cee71dSXin LI0 string Archive\000 RISC OS archive (ArcFS format) 177b6cee71dSXin LI 178b6cee71dSXin LI# All these were taken from idarc, many could not be verified. Unfortunately, 179b6cee71dSXin LI# there were many low-quality sigs, i.e. easy to trigger false positives. 180b6cee71dSXin LI# Please notify me of any real-world fishy/ambiguous signatures and I'll try 181b6cee71dSXin LI# to get my hands on the actual archiver and see if I find something better. [JW] 182b6cee71dSXin LI# probably many can be enhanced by finding some 0-byte or control char near the start 183b6cee71dSXin LI 184b6cee71dSXin LI# idarc calls this Crush/Uncompressed... *shrug* 185b6cee71dSXin LI0 string CRUSH Crush archive data 186b6cee71dSXin LI# Squeeze It (.sqz) 187b6cee71dSXin LI0 string HLSQZ Squeeze It archive data 188b6cee71dSXin LI# SQWEZ 189b6cee71dSXin LI0 string SQWEZ SQWEZ archive data 190b6cee71dSXin LI# HPack (.hpk) 191b6cee71dSXin LI0 string HPAK HPack archive data 192b6cee71dSXin LI# HAP 193b6cee71dSXin LI0 string \x91\x33HF HAP archive data 194b6cee71dSXin LI# MD/MDCD 195b6cee71dSXin LI0 string MDmd MDCD archive data 196b6cee71dSXin LI# LIM 197b6cee71dSXin LI0 string LIM\x1a LIM archive data 198b6cee71dSXin LI# SAR 199b6cee71dSXin LI3 string LH5 SAR archive data 200b6cee71dSXin LI# BSArc/BS2 201b6cee71dSXin LI0 string \212\3SB\020\0 BSArc/BS2 archive data 202b6cee71dSXin LI# Bethesda Softworks Archive (Oblivion) 203b6cee71dSXin LI0 string BSA\0 BSArc archive data 204b6cee71dSXin LI>4 lelong x version %d 205b6cee71dSXin LI# MAR 206b6cee71dSXin LI2 string =-ah MAR archive data 207b6cee71dSXin LI# ACB 208b6cee71dSXin LI#0 belong&0x00f800ff 0x00800000 ACB archive data 209b6cee71dSXin LI# CPZ 210b6cee71dSXin LI# TODO, this is what idarc says: 0 string \0\0\0 CPZ archive data 211b6cee71dSXin LI# JRC 212b6cee71dSXin LI0 string JRchive JRC archive data 213b6cee71dSXin LI# Quantum 214b6cee71dSXin LI0 string DS\0 Quantum archive data 215b6cee71dSXin LI# ReSOF 216b6cee71dSXin LI0 string PK\3\6 ReSOF archive data 217b6cee71dSXin LI# QuArk 218b6cee71dSXin LI0 string 7\4 QuArk archive data 219b6cee71dSXin LI# YAC 220b6cee71dSXin LI14 string YC YAC archive data 221b6cee71dSXin LI# X1 222b6cee71dSXin LI0 string X1 X1 archive data 223b6cee71dSXin LI0 string XhDr X1 archive data 224b6cee71dSXin LI# CDC Codec (.dqt) 225b6cee71dSXin LI0 belong&0xffffe000 0x76ff2000 CDC Codec archive data 226b6cee71dSXin LI# AMGC 227b6cee71dSXin LI0 string \xad6" AMGC archive data 228b6cee71dSXin LI# NuLIB 229b6cee71dSXin LI0 string N\xc3\xb5F\xc3\xa9lx\xc3\xa5 NuLIB archive data 230b6cee71dSXin LI# PakLeo 231b6cee71dSXin LI0 string LEOLZW PAKLeo archive data 232b6cee71dSXin LI# ChArc 233b6cee71dSXin LI0 string SChF ChArc archive data 234b6cee71dSXin LI# PSA 235b6cee71dSXin LI0 string PSA PSA archive data 236b6cee71dSXin LI# CrossePAC 237b6cee71dSXin LI0 string DSIGDCC CrossePAC archive data 238b6cee71dSXin LI# Freeze 239b6cee71dSXin LI0 string \x1f\x9f\x4a\x10\x0a Freeze archive data 240b6cee71dSXin LI# KBoom 241b6cee71dSXin LI0 string \xc2\xa8MP\xc2\xa8 KBoom archive data 242b6cee71dSXin LI# NSQ, must go after CDC Codec 243b6cee71dSXin LI0 string \x76\xff NSQ archive data 244b6cee71dSXin LI# DPA 245b6cee71dSXin LI0 string Dirk\ Paehl DPA archive data 246b6cee71dSXin LI# BA 247b6cee71dSXin LI# TODO: idarc says "bytes 0-2 == bytes 3-5" 248b6cee71dSXin LI# TTComp 249b6cee71dSXin LI0 string \0\6 TTComp archive data 250b6cee71dSXin LI# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation? 251b6cee71dSXin LI0 string ESP ESP archive data 252b6cee71dSXin LI# ZPack 253b6cee71dSXin LI0 string \1ZPK\1 ZPack archive data 254b6cee71dSXin LI# Sky 255b6cee71dSXin LI0 string \xbc\x40 Sky archive data 256b6cee71dSXin LI# UFA 257b6cee71dSXin LI0 string UFA UFA archive data 258b6cee71dSXin LI# Dry 259b6cee71dSXin LI0 string =-H2O DRY archive data 260b6cee71dSXin LI# FoxSQZ 261b6cee71dSXin LI0 string FOXSQZ FoxSQZ archive data 262b6cee71dSXin LI# AR7 263b6cee71dSXin LI0 string ,AR7 AR7 archive data 264b6cee71dSXin LI# PPMZ 265b6cee71dSXin LI0 string PPMZ PPMZ archive data 266b6cee71dSXin LI# MS Compress 267b6cee71dSXin LI4 string \x88\xf0\x27 MS Compress archive data 268b6cee71dSXin LI# updated by Joerg Jenderek 269b6cee71dSXin LI>9 string \0 270b6cee71dSXin LI>>0 string KWAJ 271b6cee71dSXin LI>>>7 string \321\003 MS Compress archive data 272b6cee71dSXin LI>>>>14 ulong >0 \b, original size: %d bytes 273b6cee71dSXin LI>>>>18 ubyte >0x65 274b6cee71dSXin LI>>>>>18 string x \b, was %.8s 275b6cee71dSXin LI>>>>>(10.b-4) string x \b.%.3s 276b6cee71dSXin LI# MP3 (archiver, not lossy audio compression) 277b6cee71dSXin LI0 string MP3\x1a MP3-Archiver archive data 278b6cee71dSXin LI# ZET 279b6cee71dSXin LI0 string OZ\xc3\x9d ZET archive data 280b6cee71dSXin LI# TSComp 281b6cee71dSXin LI0 string \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data 282b6cee71dSXin LI# ARQ 283b6cee71dSXin LI0 string gW\4\1 ARQ archive data 284b6cee71dSXin LI# Squash 285b6cee71dSXin LI3 string OctSqu Squash archive data 286b6cee71dSXin LI# Terse 287b6cee71dSXin LI0 string \5\1\1\0 Terse archive data 288b6cee71dSXin LI# PUCrunch 289b6cee71dSXin LI0 string \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data 290b6cee71dSXin LI# UHarc 291b6cee71dSXin LI0 string UHA UHarc archive data 292b6cee71dSXin LI# ABComp 293b6cee71dSXin LI0 string \2AB ABComp archive data 294b6cee71dSXin LI0 string \3AB2 ABComp archive data 295b6cee71dSXin LI# CMP 296b6cee71dSXin LI0 string CO\0 CMP archive data 297b6cee71dSXin LI# Splint 298b6cee71dSXin LI0 string \x93\xb9\x06 Splint archive data 299b6cee71dSXin LI# InstallShield 300b6cee71dSXin LI0 string \x13\x5d\x65\x8c InstallShield Z archive Data 301b6cee71dSXin LI# Gather 302b6cee71dSXin LI1 string GTH Gather archive data 303b6cee71dSXin LI# BOA 304b6cee71dSXin LI0 string BOA BOA archive data 305b6cee71dSXin LI# RAX 306b6cee71dSXin LI0 string ULEB\xa RAX archive data 307b6cee71dSXin LI# Xtreme 308b6cee71dSXin LI0 string ULEB\0 Xtreme archive data 309b6cee71dSXin LI# Pack Magic 310b6cee71dSXin LI0 string @\xc3\xa2\1\0 Pack Magic archive data 311b6cee71dSXin LI# BTS 312b6cee71dSXin LI0 belong&0xfeffffff 0x1a034465 BTS archive data 313b6cee71dSXin LI# ELI 5750 314b6cee71dSXin LI0 string Ora\ ELI 5750 archive data 315b6cee71dSXin LI# QFC 316b6cee71dSXin LI0 string \x1aFC\x1a QFC archive data 317b6cee71dSXin LI0 string \x1aQF\x1a QFC archive data 318b6cee71dSXin LI# PRO-PACK 319b6cee71dSXin LI0 string RNC PRO-PACK archive data 320b6cee71dSXin LI# 777 321b6cee71dSXin LI0 string 777 777 archive data 322b6cee71dSXin LI# LZS221 323b6cee71dSXin LI0 string sTaC LZS221 archive data 324b6cee71dSXin LI# HPA 325b6cee71dSXin LI0 string HPA HPA archive data 326b6cee71dSXin LI# Arhangel 327b6cee71dSXin LI0 string LG Arhangel archive data 328b6cee71dSXin LI# EXP1, uses bzip2 329b6cee71dSXin LI0 string 0123456789012345BZh EXP1 archive data 330b6cee71dSXin LI# IMP 331b6cee71dSXin LI0 string IMP\xa IMP archive data 332b6cee71dSXin LI# NRV 333b6cee71dSXin LI0 string \x00\x9E\x6E\x72\x76\xFF NRV archive data 334b6cee71dSXin LI# Squish 335b6cee71dSXin LI0 string \x73\xb2\x90\xf4 Squish archive data 336b6cee71dSXin LI# Par 337b6cee71dSXin LI0 string PHILIPP Par archive data 338b6cee71dSXin LI0 string PAR Par archive data 339b6cee71dSXin LI# HIT 340b6cee71dSXin LI0 string UB HIT archive data 341b6cee71dSXin LI# SBX 342b6cee71dSXin LI0 belong&0xfffff000 0x53423000 SBX archive data 343b6cee71dSXin LI# NaShrink 344b6cee71dSXin LI0 string NSK NaShrink archive data 345b6cee71dSXin LI# SAPCAR 346b6cee71dSXin LI0 string #\ CAR\ archive\ header SAPCAR archive data 347b6cee71dSXin LI0 string CAR\ 2.00RG SAPCAR archive data 348b6cee71dSXin LI# Disintegrator 349b6cee71dSXin LI0 string DST Disintegrator archive data 350b6cee71dSXin LI# ASD 351b6cee71dSXin LI0 string ASD ASD archive data 352b6cee71dSXin LI# InstallShield CAB 353b6cee71dSXin LI0 string ISc( InstallShield CAB 354b6cee71dSXin LI# TOP4 355b6cee71dSXin LI0 string T4\x1a TOP4 archive data 356b6cee71dSXin LI# BatComp left out: sig looks like COM executable 357b6cee71dSXin LI# so TODO: get real 4dos batcomp file and find sig 358b6cee71dSXin LI# BlakHole 359b6cee71dSXin LI0 string BH\5\7 BlakHole archive data 360b6cee71dSXin LI# BIX 361b6cee71dSXin LI0 string BIX0 BIX archive data 362b6cee71dSXin LI# ChiefLZA 363b6cee71dSXin LI0 string ChfLZ ChiefLZA archive data 364b6cee71dSXin LI# Blink 365b6cee71dSXin LI0 string Blink Blink archive data 366b6cee71dSXin LI# Logitech Compress 367b6cee71dSXin LI0 string \xda\xfa Logitech Compress archive data 368b6cee71dSXin LI# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE) 369b6cee71dSXin LI1 string (C)\ STEPANYUK ARS-Sfx archive data 370b6cee71dSXin LI# AKT/AKT32 371b6cee71dSXin LI0 string AKT32 AKT32 archive data 372b6cee71dSXin LI0 string AKT AKT archive data 373b6cee71dSXin LI# NPack 374b6cee71dSXin LI0 string MSTSM NPack archive data 375b6cee71dSXin LI# PFT 376b6cee71dSXin LI0 string \0\x50\0\x14 PFT archive data 377b6cee71dSXin LI# SemOne 378b6cee71dSXin LI0 string SEM SemOne archive data 379b6cee71dSXin LI# PPMD 380b6cee71dSXin LI0 string \x8f\xaf\xac\x84 PPMD archive data 381b6cee71dSXin LI# FIZ 382b6cee71dSXin LI0 string FIZ FIZ archive data 383b6cee71dSXin LI# MSXiE 384b6cee71dSXin LI0 belong&0xfffff0f0 0x4d530000 MSXiE archive data 385b6cee71dSXin LI# DeepFreezer 386b6cee71dSXin LI0 belong&0xfffffff0 0x797a3030 DeepFreezer archive data 387b6cee71dSXin LI# DC 388b6cee71dSXin LI0 string =<DC- DC archive data 389b6cee71dSXin LI# TPac 390b6cee71dSXin LI0 string \4TPAC\3 TPac archive data 391b6cee71dSXin LI# Ai 392b6cee71dSXin LI0 string Ai\1\1\0 Ai archive data 393b6cee71dSXin LI0 string Ai\1\0\0 Ai archive data 394b6cee71dSXin LI# Ai32 395b6cee71dSXin LI0 string Ai\2\0 Ai32 archive data 396b6cee71dSXin LI0 string Ai\2\1 Ai32 archive data 397b6cee71dSXin LI# SBC 398b6cee71dSXin LI0 string SBC SBC archive data 399b6cee71dSXin LI# Ybs 400b6cee71dSXin LI0 string YBS Ybs archive data 401b6cee71dSXin LI# DitPack 402b6cee71dSXin LI0 string \x9e\0\0 DitPack archive data 403b6cee71dSXin LI# DMS 404b6cee71dSXin LI0 string DMS! DMS archive data 405b6cee71dSXin LI# EPC 406b6cee71dSXin LI0 string \x8f\xaf\xac\x8c EPC archive data 407b6cee71dSXin LI# VSARC 408b6cee71dSXin LI0 string VS\x1a VSARC archive data 409b6cee71dSXin LI# PDZ 410b6cee71dSXin LI0 string PDZ PDZ archive data 411b6cee71dSXin LI# ReDuq 412b6cee71dSXin LI0 string rdqx ReDuq archive data 413b6cee71dSXin LI# GCA 414b6cee71dSXin LI0 string GCAX GCA archive data 415b6cee71dSXin LI# PPMN 416b6cee71dSXin LI0 string pN PPMN archive data 417b6cee71dSXin LI# WinImage 418b6cee71dSXin LI3 string WINIMAGE WinImage archive data 419b6cee71dSXin LI# Compressia 420b6cee71dSXin LI0 string CMP0CMP Compressia archive data 421b6cee71dSXin LI# UHBC 422b6cee71dSXin LI0 string UHB UHBC archive data 423b6cee71dSXin LI# WinHKI 424b6cee71dSXin LI0 string \x61\x5C\x04\x05 WinHKI archive data 425b6cee71dSXin LI# WWPack data file 426b6cee71dSXin LI0 string WWP WWPack archive data 427b6cee71dSXin LI# BSN (BSA, PTS-DOS) 428b6cee71dSXin LI0 string \xffBSG BSN archive data 429b6cee71dSXin LI1 string \xffBSG BSN archive data 430b6cee71dSXin LI3 string \xffBSG BSN archive data 431b6cee71dSXin LI1 string \0\xae\2 BSN archive data 432b6cee71dSXin LI1 string \0\xae\3 BSN archive data 433b6cee71dSXin LI1 string \0\xae\7 BSN archive data 434b6cee71dSXin LI# AIN 435b6cee71dSXin LI0 string \x33\x18 AIN archive data 436b6cee71dSXin LI0 string \x33\x17 AIN archive data 437b6cee71dSXin LI# XPA32 438b6cee71dSXin LI0 string xpa\0\1 XPA32 archive data 439b6cee71dSXin LI# SZip (TODO: doesn't catch all versions) 440b6cee71dSXin LI0 string SZ\x0a\4 SZip archive data 441b6cee71dSXin LI# XPack DiskImage 442b6cee71dSXin LI0 string jm XPack DiskImage archive data 443b6cee71dSXin LI# XPack Data 444b6cee71dSXin LI0 string xpa XPack archive data 445b6cee71dSXin LI# XPack Single Data 446b6cee71dSXin LI0 string \xc3\x8d\ jm XPack single archive data 447b6cee71dSXin LI 448b6cee71dSXin LI# TODO: missing due to unknown magic/magic at end of file: 449b6cee71dSXin LI#DWC 450b6cee71dSXin LI#ARG 451b6cee71dSXin LI#ZAR 452b6cee71dSXin LI#PC/3270 453b6cee71dSXin LI#InstallIt 454b6cee71dSXin LI#RKive 455b6cee71dSXin LI#RK 456b6cee71dSXin LI#XPack Diskimage 457b6cee71dSXin LI 458b6cee71dSXin LI# These were inspired by idarc, but actually verified 459b6cee71dSXin LI# Dzip archiver (.dz) 460b6cee71dSXin LI0 string DZ Dzip archive data 461b6cee71dSXin LI>2 byte x \b, version %i 462b6cee71dSXin LI>3 byte x \b.%i 463b6cee71dSXin LI# ZZip archiver (.zz) 464b6cee71dSXin LI0 string ZZ\ \0\0 ZZip archive data 465b6cee71dSXin LI0 string ZZ0 ZZip archive data 466b6cee71dSXin LI# PAQ archiver (.paq) 467b6cee71dSXin LI0 string \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data 468b6cee71dSXin LI0 string PAQ PAQ archive data 469b6cee71dSXin LI>3 byte&0xf0 0x30 470b6cee71dSXin LI>>3 byte x (v%c) 471b6cee71dSXin LI# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP) 472b6cee71dSXin LI0xe string \x1aJar\x1b JAR (ARJ Software, Inc.) archive data 473b6cee71dSXin LI0 string JARCS JAR (ARJ Software, Inc.) archive data 474b6cee71dSXin LI 475b6cee71dSXin LI# ARJ archiver (jason@jarthur.Claremont.EDU) 476b6cee71dSXin LI0 leshort 0xea60 ARJ archive data 477b6cee71dSXin LI!:mime application/x-arj 478b6cee71dSXin LI>5 byte x \b, v%d, 479b6cee71dSXin LI>8 byte &0x04 multi-volume, 480b6cee71dSXin LI>8 byte &0x10 slash-switched, 481b6cee71dSXin LI>8 byte &0x20 backup, 482b6cee71dSXin LI>34 string x original name: %s, 483b6cee71dSXin LI>7 byte 0 os: MS-DOS 484b6cee71dSXin LI>7 byte 1 os: PRIMOS 485b6cee71dSXin LI>7 byte 2 os: Unix 486b6cee71dSXin LI>7 byte 3 os: Amiga 487b6cee71dSXin LI>7 byte 4 os: Macintosh 488b6cee71dSXin LI>7 byte 5 os: OS/2 489b6cee71dSXin LI>7 byte 6 os: Apple ][ GS 490b6cee71dSXin LI>7 byte 7 os: Atari ST 491b6cee71dSXin LI>7 byte 8 os: NeXT 492b6cee71dSXin LI>7 byte 9 os: VAX/VMS 493b6cee71dSXin LI>3 byte >0 %d] 494b6cee71dSXin LI# [JW] idarc says this is also possible 495b6cee71dSXin LI2 leshort 0xea60 ARJ archive data 496b6cee71dSXin LI 497b6cee71dSXin LI# HA archiver (Greg Roelofs, newt@uchicago.edu) 498b6cee71dSXin LI# This is a really bad format. A file containing HAWAII will match this... 499b6cee71dSXin LI#0 string HA HA archive data, 500b6cee71dSXin LI#>2 leshort =1 1 file, 501b6cee71dSXin LI#>2 leshort >1 %hu files, 502b6cee71dSXin LI#>4 byte&0x0f =0 first is type CPY 503b6cee71dSXin LI#>4 byte&0x0f =1 first is type ASC 504b6cee71dSXin LI#>4 byte&0x0f =2 first is type HSC 505b6cee71dSXin LI#>4 byte&0x0f =0x0e first is type DIR 506b6cee71dSXin LI#>4 byte&0x0f =0x0f first is type SPECIAL 507b6cee71dSXin LI# suggestion: at least identify small archives (<1024 files) 508b6cee71dSXin LI0 belong&0xffff00fc 0x48410000 HA archive data 509b6cee71dSXin LI>2 leshort =1 1 file, 510b6cee71dSXin LI>2 leshort >1 %u files, 511b6cee71dSXin LI>4 byte&0x0f =0 first is type CPY 512b6cee71dSXin LI>4 byte&0x0f =1 first is type ASC 513b6cee71dSXin LI>4 byte&0x0f =2 first is type HSC 514b6cee71dSXin LI>4 byte&0x0f =0x0e first is type DIR 515b6cee71dSXin LI>4 byte&0x0f =0x0f first is type SPECIAL 516b6cee71dSXin LI 517b6cee71dSXin LI# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz) 518b6cee71dSXin LI0 string HPAK HPACK archive data 519b6cee71dSXin LI 520b6cee71dSXin LI# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net 521b6cee71dSXin LI0 string \351,\001JAM\ JAM archive, 522b6cee71dSXin LI>7 string >\0 version %.4s 523b6cee71dSXin LI>0x26 byte =0x27 - 524b6cee71dSXin LI>>0x2b string >\0 label %.11s, 525b6cee71dSXin LI>>0x27 lelong x serial %08x, 526b6cee71dSXin LI>>0x36 string >\0 fstype %.8s 527b6cee71dSXin LI 528b6cee71dSXin LI# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) 529b6cee71dSXin LI2 string -lh0- LHarc 1.x/ARX archive data [lh0] 530b6cee71dSXin LI!:mime application/x-lharc 531b6cee71dSXin LI2 string -lh1- LHarc 1.x/ARX archive data [lh1] 532b6cee71dSXin LI!:mime application/x-lharc 533b6cee71dSXin LI2 string -lz4- LHarc 1.x archive data [lz4] 534b6cee71dSXin LI!:mime application/x-lharc 535b6cee71dSXin LI2 string -lz5- LHarc 1.x archive data [lz5] 536b6cee71dSXin LI!:mime application/x-lharc 537b6cee71dSXin LI# [never seen any but the last; -lh4- reported in comp.compression:] 538b6cee71dSXin LI2 string -lzs- LHa/LZS archive data [lzs] 539b6cee71dSXin LI!:mime application/x-lha 540b6cee71dSXin LI2 string -lh\40- LHa 2.x? archive data [lh ] 541b6cee71dSXin LI!:mime application/x-lha 542b6cee71dSXin LI2 string -lhd- LHa 2.x? archive data [lhd] 543b6cee71dSXin LI!:mime application/x-lha 544b6cee71dSXin LI2 string -lh2- LHa 2.x? archive data [lh2] 545b6cee71dSXin LI!:mime application/x-lha 546b6cee71dSXin LI2 string -lh3- LHa 2.x? archive data [lh3] 547b6cee71dSXin LI!:mime application/x-lha 548b6cee71dSXin LI2 string -lh4- LHa (2.x) archive data [lh4] 549b6cee71dSXin LI!:mime application/x-lha 550b6cee71dSXin LI2 string -lh5- LHa (2.x) archive data [lh5] 551b6cee71dSXin LI!:mime application/x-lha 552b6cee71dSXin LI2 string -lh6- LHa (2.x) archive data [lh6] 553b6cee71dSXin LI!:mime application/x-lha 554b6cee71dSXin LI2 string -lh7- LHa (2.x)/LHark archive data [lh7] 555b6cee71dSXin LI!:mime application/x-lha 556b6cee71dSXin LI>20 byte x - header level %d 557b6cee71dSXin LI# taken from idarc [JW] 558b6cee71dSXin LI2 string -lZ PUT archive data 559b6cee71dSXin LI2 string -lz LZS archive data 560b6cee71dSXin LI2 string -sw1- Swag archive data 561b6cee71dSXin LI 562b6cee71dSXin LI# RAR archiver (Greg Roelofs, newt@uchicago.edu) 563b6cee71dSXin LI0 string Rar! RAR archive data, 564b6cee71dSXin LI!:mime application/x-rar 565b6cee71dSXin LI>44 byte x v%0x, 566b6cee71dSXin LI>10 byte >0 flags: 567b6cee71dSXin LI>>10 byte &0x01 Archive volume, 568b6cee71dSXin LI>>10 byte &0x02 Commented, 569b6cee71dSXin LI>>10 byte &0x04 Locked, 570b6cee71dSXin LI>>10 byte &0x08 Solid, 571b6cee71dSXin LI>>10 byte &0x20 Authenticated, 572b6cee71dSXin LI>35 byte 0 os: MS-DOS 573b6cee71dSXin LI>35 byte 1 os: OS/2 574b6cee71dSXin LI>35 byte 2 os: Win32 575b6cee71dSXin LI>35 byte 3 os: Unix 576b6cee71dSXin LI# some old version? idarc says: 577b6cee71dSXin LI0 string RE\x7e\x5e RAR archive data 578b6cee71dSXin LI 579b6cee71dSXin LI# SQUISH archiver (Greg Roelofs, newt@uchicago.edu) 580b6cee71dSXin LI0 string SQSH squished archive data (Acorn RISCOS) 581b6cee71dSXin LI 582b6cee71dSXin LI# UC2 archiver (Greg Roelofs, newt@uchicago.edu) 583b6cee71dSXin LI# [JW] see exe section for self-extracting version 584b6cee71dSXin LI0 string UC2\x1a UC2 archive data 585b6cee71dSXin LI 586b6cee71dSXin LI# PKZIP multi-volume archive 587b6cee71dSXin LI0 string PK\x07\x08PK\x03\x04 Zip multi-volume archive data, at least PKZIP v2.50 to extract 588b6cee71dSXin LI!:mime application/zip 589b6cee71dSXin LI 590b6cee71dSXin LI# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) 591b6cee71dSXin LI0 string PK\005\006 Zip archive data (empty) 592b6cee71dSXin LI0 string PK\003\004 593b6cee71dSXin LI 594b6cee71dSXin LI# Specialised zip formats which start with a member named 'mimetype' 595b6cee71dSXin LI# (stored uncompressed, with no 'extra field') containing the file's MIME type. 596b6cee71dSXin LI# Check for have 8-byte name, 0-byte extra field, name "mimetype", and 597b6cee71dSXin LI# contents starting with "application/": 598b6cee71dSXin LI>26 string \x8\0\0\0mimetypeapplication/ 599b6cee71dSXin LI 600b6cee71dSXin LI# KOffice / OpenOffice & StarOffice / OpenDocument formats 601b6cee71dSXin LI# From: Abel Cheung <abel@oaka.org> 602b6cee71dSXin LI 603b6cee71dSXin LI# KOffice (1.2 or above) formats 604b6cee71dSXin LI# (mimetype contains "application/vnd.kde.<SUBTYPE>") 605b6cee71dSXin LI>>50 string vnd.kde. KOffice (>=1.2) 606b6cee71dSXin LI>>>58 string karbon Karbon document 607b6cee71dSXin LI>>>58 string kchart KChart document 608b6cee71dSXin LI>>>58 string kformula KFormula document 609b6cee71dSXin LI>>>58 string kivio Kivio document 610b6cee71dSXin LI>>>58 string kontour Kontour document 611b6cee71dSXin LI>>>58 string kpresenter KPresenter document 612b6cee71dSXin LI>>>58 string kspread KSpread document 613b6cee71dSXin LI>>>58 string kword KWord document 614b6cee71dSXin LI 615b6cee71dSXin LI# OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7) 616b6cee71dSXin LI# (mimetype contains "application/vnd.sun.xml.<SUBTYPE>") 617b6cee71dSXin LI>>50 string vnd.sun.xml. OpenOffice.org 1.x 618b6cee71dSXin LI>>>62 string writer Writer 619b6cee71dSXin LI>>>>68 byte !0x2e document 620b6cee71dSXin LI>>>>68 string .template template 621b6cee71dSXin LI>>>>68 string .global global document 622b6cee71dSXin LI>>>62 string calc Calc 623b6cee71dSXin LI>>>>66 byte !0x2e spreadsheet 624b6cee71dSXin LI>>>>66 string .template template 625b6cee71dSXin LI>>>62 string draw Draw 626b6cee71dSXin LI>>>>66 byte !0x2e document 627b6cee71dSXin LI>>>>66 string .template template 628b6cee71dSXin LI>>>62 string impress Impress 629b6cee71dSXin LI>>>>69 byte !0x2e presentation 630b6cee71dSXin LI>>>>69 string .template template 631b6cee71dSXin LI>>>62 string math Math document 632b6cee71dSXin LI>>>62 string base Database file 633b6cee71dSXin LI 634b6cee71dSXin LI# OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8) 635b6cee71dSXin LI# http://lists.oasis-open.org/archives/office/200505/msg00006.html 636b6cee71dSXin LI# (mimetype contains "application/vnd.oasis.opendocument.<SUBTYPE>") 637b6cee71dSXin LI>>50 string vnd.oasis.opendocument. OpenDocument 638b6cee71dSXin LI>>>73 string text 639b6cee71dSXin LI>>>>77 byte !0x2d Text 640b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text 641b6cee71dSXin LI>>>>77 string -template Text Template 642b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-template 643b6cee71dSXin LI>>>>77 string -web HTML Document Template 644b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-web 645b6cee71dSXin LI>>>>77 string -master Master Document 646b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-master 647b6cee71dSXin LI>>>73 string graphics 648b6cee71dSXin LI>>>>81 byte !0x2d Drawing 649b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.graphics 650b6cee71dSXin LI>>>>81 string -template Template 651b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.graphics-template 652b6cee71dSXin LI>>>73 string presentation 653b6cee71dSXin LI>>>>85 byte !0x2d Presentation 654b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.presentation 655b6cee71dSXin LI>>>>85 string -template Template 656b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.presentation-template 657b6cee71dSXin LI>>>73 string spreadsheet 658b6cee71dSXin LI>>>>84 byte !0x2d Spreadsheet 659b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.spreadsheet 660b6cee71dSXin LI>>>>84 string -template Template 661b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.spreadsheet-template 662b6cee71dSXin LI>>>73 string chart 663b6cee71dSXin LI>>>>78 byte !0x2d Chart 664b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.chart 665b6cee71dSXin LI>>>>78 string -template Template 666b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.chart-template 667b6cee71dSXin LI>>>73 string formula 668b6cee71dSXin LI>>>>80 byte !0x2d Formula 669b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.formula 670b6cee71dSXin LI>>>>80 string -template Template 671b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.formula-template 672b6cee71dSXin LI>>>73 string database Database 673b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.database 674b6cee71dSXin LI>>>73 string image 675b6cee71dSXin LI>>>>78 byte !0x2d Image 676b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.image 677b6cee71dSXin LI>>>>78 string -template Template 678b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.image-template 679b6cee71dSXin LI 680b6cee71dSXin LI# EPUB (OEBPS) books using OCF (OEBPS Container Format) 681b6cee71dSXin LI# http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm, section 4. 682b6cee71dSXin LI# From: Ralf Brown <ralf.brown@gmail.com> 683b6cee71dSXin LI>>50 string epub+zip EPUB document 684b6cee71dSXin LI!:mime application/epub+zip 685b6cee71dSXin LI 686b6cee71dSXin LI# Catch other ZIP-with-mimetype formats 687b6cee71dSXin LI# In a ZIP file, the bytes immediately after a member's contents are 688b6cee71dSXin LI# always "PK". The 2 regex rules here print the "mimetype" member's 689b6cee71dSXin LI# contents up to the first 'P'. Luckily, most MIME types don't contain 690b6cee71dSXin LI# any capital 'P's. This is a kludge. 691b6cee71dSXin LI# (mimetype contains "application/<OTHER>") 692b6cee71dSXin LI>>50 string !epub+zip 693b6cee71dSXin LI>>>50 string !vnd.oasis.opendocument. 694b6cee71dSXin LI>>>>50 string !vnd.sun.xml. 695b6cee71dSXin LI>>>>>50 string !vnd.kde. 696b6cee71dSXin LI>>>>>>38 regex [!-OQ-~]+ Zip data (MIME type "%s"?) 697b6cee71dSXin LI!:mime application/zip 698b6cee71dSXin LI# (mimetype contents other than "application/*") 699b6cee71dSXin LI>26 string \x8\0\0\0mimetype 700b6cee71dSXin LI>>38 string !application/ 701b6cee71dSXin LI>>>38 regex [!-OQ-~]+ Zip data (MIME type "%s"?) 702b6cee71dSXin LI!:mime application/zip 703b6cee71dSXin LI 704b6cee71dSXin LI# Java Jar files 705b6cee71dSXin LI>(26.s+30) leshort 0xcafe Java archive data (JAR) 706b6cee71dSXin LI!:mime application/java-archive 707b6cee71dSXin LI 708b6cee71dSXin LI# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) 709b6cee71dSXin LI# Next line excludes specialized formats: 710b6cee71dSXin LI>(26.s+30) leshort !0xcafe 711b6cee71dSXin LI>>26 string !\x8\0\0\0mimetype Zip archive data 712b6cee71dSXin LI!:mime application/zip 713b6cee71dSXin LI>>>4 byte 0x09 \b, at least v0.9 to extract 714b6cee71dSXin LI>>>4 byte 0x0a \b, at least v1.0 to extract 715b6cee71dSXin LI>>>4 byte 0x0b \b, at least v1.1 to extract 716b6cee71dSXin LI>>>4 byte 0x14 \b, at least v2.0 to extract 717*5f0216bdSXin LI>>>4 byte 0x2d \b, at least v4.5 to extract 718b6cee71dSXin LI>>>0x161 string WINZIP \b, WinZIP self-extracting 719b6cee71dSXin LI 720b6cee71dSXin LI# StarView Metafile 721b6cee71dSXin LI# From Pierre Ducroquet <pinaraf@pinaraf.info> 722b6cee71dSXin LI0 string VCLMTF StarView MetaFile 723b6cee71dSXin LI>6 beshort x \b, version %d 724b6cee71dSXin LI>8 belong x \b, size %d 725b6cee71dSXin LI 726b6cee71dSXin LI# Zoo archiver 727b6cee71dSXin LI20 lelong 0xfdc4a7dc Zoo archive data 728b6cee71dSXin LI!:mime application/x-zoo 729b6cee71dSXin LI>4 byte >48 \b, v%c. 730b6cee71dSXin LI>>6 byte >47 \b%c 731b6cee71dSXin LI>>>7 byte >47 \b%c 732b6cee71dSXin LI>32 byte >0 \b, modify: v%d 733b6cee71dSXin LI>>33 byte x \b.%d+ 734b6cee71dSXin LI>42 lelong 0xfdc4a7dc \b, 735b6cee71dSXin LI>>70 byte >0 extract: v%d 736b6cee71dSXin LI>>>71 byte x \b.%d+ 737b6cee71dSXin LI 738b6cee71dSXin LI# Shell archives 739b6cee71dSXin LI10 string #\ This\ is\ a\ shell\ archive shell archive text 740b6cee71dSXin LI!:mime application/octet-stream 741b6cee71dSXin LI 742b6cee71dSXin LI# 743b6cee71dSXin LI# LBR. NB: May conflict with the questionable 744b6cee71dSXin LI# "binary Computer Graphics Metafile" format. 745b6cee71dSXin LI# 746b6cee71dSXin LI0 string \0\ \ \ \ \ \ \ \ \ \ \ \0\0 LBR archive data 747b6cee71dSXin LI# 748b6cee71dSXin LI# PMA (CP/M derivative of LHA) 749b6cee71dSXin LI# 750b6cee71dSXin LI2 string -pm0- PMarc archive data [pm0] 751b6cee71dSXin LI2 string -pm1- PMarc archive data [pm1] 752b6cee71dSXin LI2 string -pm2- PMarc archive data [pm2] 753b6cee71dSXin LI2 string -pms- PMarc SFX archive (CP/M, DOS) 754b6cee71dSXin LI5 string -pc1- PopCom compressed executable (CP/M) 755b6cee71dSXin LI 756b6cee71dSXin LI# From Rafael Laboissiere <rafael@laboissiere.net> 757b6cee71dSXin LI# The Project Revision Control System (see 758b6cee71dSXin LI# http://prcs.sourceforge.net) generates a packaged project 759b6cee71dSXin LI# file which is recognized by the following entry: 760b6cee71dSXin LI0 leshort 0xeb81 PRCS packaged project 761b6cee71dSXin LI 762b6cee71dSXin LI# Microsoft cabinets 763b6cee71dSXin LI# by David Necas (Yeti) <yeti@physics.muni.cz> 764b6cee71dSXin LI#0 string MSCF\0\0\0\0 Microsoft cabinet file data, 765b6cee71dSXin LI#>25 byte x v%d 766b6cee71dSXin LI#>24 byte x \b.%d 767b6cee71dSXin LI# MPi: All CABs have version 1.3, so this is pointless. 768b6cee71dSXin LI# Better magic in debian-additions. 769b6cee71dSXin LI 770b6cee71dSXin LI# GTKtalog catalogs 771b6cee71dSXin LI# by David Necas (Yeti) <yeti@physics.muni.cz> 772b6cee71dSXin LI4 string gtktalog\ GTKtalog catalog data, 773b6cee71dSXin LI>13 string 3 version 3 774b6cee71dSXin LI>>14 beshort 0x677a (gzipped) 775b6cee71dSXin LI>>14 beshort !0x677a (not gzipped) 776b6cee71dSXin LI>13 string >3 version %s 777b6cee71dSXin LI 778b6cee71dSXin LI############################################################################ 779b6cee71dSXin LI# Parity archive reconstruction file, the 'par' file format now used on Usenet. 780b6cee71dSXin LI0 string PAR\0 PARity archive data 781b6cee71dSXin LI>48 leshort =0 - Index file 782b6cee71dSXin LI>48 leshort >0 - file number %d 783b6cee71dSXin LI 784b6cee71dSXin LI# Felix von Leitner <felix-file@fefe.de> 785b6cee71dSXin LI0 string d8:announce BitTorrent file 786b6cee71dSXin LI!:mime application/x-bittorrent 787b6cee71dSXin LI 788b6cee71dSXin LI# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi> 789b6cee71dSXin LI0 beshort 0x0e0f Atari MSA archive data 790b6cee71dSXin LI>2 beshort x \b, %d sectors per track 791b6cee71dSXin LI>4 beshort 0 \b, 1 sided 792b6cee71dSXin LI>4 beshort 1 \b, 2 sided 793b6cee71dSXin LI>6 beshort x \b, starting track: %d 794b6cee71dSXin LI>8 beshort x \b, ending track: %d 795b6cee71dSXin LI 796b6cee71dSXin LI# Alternate ZIP string (amc@arwen.cs.berkeley.edu) 797b6cee71dSXin LI0 string PK00PK\003\004 Zip archive data 798b6cee71dSXin LI 799b6cee71dSXin LI# ACE archive (from http://www.wotsit.org/download.asp?f=ace) 800b6cee71dSXin LI# by Stefan `Sec` Zehl <sec@42.org> 801b6cee71dSXin LI7 string **ACE** ACE archive data 802b6cee71dSXin LI>15 byte >0 version %d 803b6cee71dSXin LI>16 byte =0x00 \b, from MS-DOS 804b6cee71dSXin LI>16 byte =0x01 \b, from OS/2 805b6cee71dSXin LI>16 byte =0x02 \b, from Win/32 806b6cee71dSXin LI>16 byte =0x03 \b, from Unix 807b6cee71dSXin LI>16 byte =0x04 \b, from MacOS 808b6cee71dSXin LI>16 byte =0x05 \b, from WinNT 809b6cee71dSXin LI>16 byte =0x06 \b, from Primos 810b6cee71dSXin LI>16 byte =0x07 \b, from AppleGS 811b6cee71dSXin LI>16 byte =0x08 \b, from Atari 812b6cee71dSXin LI>16 byte =0x09 \b, from Vax/VMS 813b6cee71dSXin LI>16 byte =0x0A \b, from Amiga 814b6cee71dSXin LI>16 byte =0x0B \b, from Next 815b6cee71dSXin LI>14 byte x \b, version %d to extract 816b6cee71dSXin LI>5 leshort &0x0080 \b, multiple volumes, 817b6cee71dSXin LI>>17 byte x \b (part %d), 818b6cee71dSXin LI>5 leshort &0x0002 \b, contains comment 819b6cee71dSXin LI>5 leshort &0x0200 \b, sfx 820b6cee71dSXin LI>5 leshort &0x0400 \b, small dictionary 821b6cee71dSXin LI>5 leshort &0x0800 \b, multi-volume 822b6cee71dSXin LI>5 leshort &0x1000 \b, contains AV-String 823b6cee71dSXin LI>>30 string \x16*UNREGISTERED\x20VERSION* (unregistered) 824b6cee71dSXin LI>5 leshort &0x2000 \b, with recovery record 825b6cee71dSXin LI>5 leshort &0x4000 \b, locked 826b6cee71dSXin LI>5 leshort &0x8000 \b, solid 827b6cee71dSXin LI# Date in MS-DOS format (whatever that is) 828b6cee71dSXin LI#>18 lelong x Created on 829b6cee71dSXin LI 830b6cee71dSXin LI# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann 831b6cee71dSXin LI# <doj@cubic.org> 832b6cee71dSXin LI0x1A string sfArk sfArk compressed Soundfont 833b6cee71dSXin LI>0x15 string 2 834b6cee71dSXin LI>>0x1 string >\0 Version %s 835b6cee71dSXin LI>>0x2A string >\0 : %s 836b6cee71dSXin LI 837b6cee71dSXin LI# DR-DOS 7.03 Packed File *.??_ 838b6cee71dSXin LI0 string Packed\ File\ Personal NetWare Packed File 839b6cee71dSXin LI>12 string x \b, was "%.12s" 840b6cee71dSXin LI 841b6cee71dSXin LI# EET archive 842b6cee71dSXin LI# From: Tilman Sauerbeck <tilman@code-monkey.de> 843b6cee71dSXin LI0 belong 0x1ee7ff00 EET archive 844b6cee71dSXin LI!:mime application/x-eet 845b6cee71dSXin LI 846b6cee71dSXin LI# rzip archives 847b6cee71dSXin LI0 string RZIP rzip compressed data 848b6cee71dSXin LI>4 byte x - version %d 849b6cee71dSXin LI>5 byte x \b.%d 850b6cee71dSXin LI>6 belong x (%d bytes) 851b6cee71dSXin LI 852b6cee71dSXin LI# From: "Robert Dale" <robdale@gmail.com> 853b6cee71dSXin LI0 belong 123 dar archive, 854b6cee71dSXin LI>4 belong x label "%.8x 855b6cee71dSXin LI>>8 belong x %.8x 856b6cee71dSXin LI>>>12 beshort x %.4x" 857b6cee71dSXin LI>14 byte 0x54 end slice 858b6cee71dSXin LI>14 beshort 0x4e4e multi-part 859b6cee71dSXin LI>14 beshort 0x4e53 multi-part, with -S 860b6cee71dSXin LI 861b6cee71dSXin LI# Symbian installation files 862b6cee71dSXin LI# http://www.thouky.co.uk/software/psifs/sis.html 863b6cee71dSXin LI# http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf 864b6cee71dSXin LI8 lelong 0x10000419 Symbian installation file 865b6cee71dSXin LI!:mime application/vnd.symbian.install 866b6cee71dSXin LI>4 lelong 0x1000006D (EPOC release 3/4/5) 867b6cee71dSXin LI>4 lelong 0x10003A12 (EPOC release 6) 868b6cee71dSXin LI0 lelong 0x10201A7A Symbian installation file (Symbian OS 9.x) 869b6cee71dSXin LI!:mime x-epoc/x-sisx-app 870b6cee71dSXin LI 871b6cee71dSXin LI# From "Nelson A. de Oliveira" <naoliv@gmail.com> 872b6cee71dSXin LI0 string MPQ\032 MoPaQ (MPQ) archive 873b6cee71dSXin LI 874b6cee71dSXin LI# From: Dirk Jagdmann <doj@cubic.org> 875b6cee71dSXin LI# xar archive format: http://code.google.com/p/xar/ 876b6cee71dSXin LI0 string xar! xar archive 877b6cee71dSXin LI>6 beshort x - version %d 878b6cee71dSXin LI 879b6cee71dSXin LI# From: "Nelson A. de Oliveira" <naoliv@gmail.com> 880b6cee71dSXin LI# .kgb 881b6cee71dSXin LI0 string KGB_arch KGB Archiver file 882b6cee71dSXin LI>10 string x with compression level %.1s 883b6cee71dSXin LI 884b6cee71dSXin LI# xar (eXtensible ARchiver) archive 885b6cee71dSXin LI# From: "David Remahl" <dremahl@apple.com> 886b6cee71dSXin LI0 string xar! xar archive 887b6cee71dSXin LI#>4 beshort x header size %d 888b6cee71dSXin LI>6 beshort x version %d, 889b6cee71dSXin LI#>8 quad x compressed TOC: %d, 890b6cee71dSXin LI#>16 quad x uncompressed TOC: %d, 891b6cee71dSXin LI>24 belong 0 no checksum 892b6cee71dSXin LI>24 belong 1 SHA-1 checksum 893b6cee71dSXin LI>24 belong 2 MD5 checksum 894b6cee71dSXin LI 895b6cee71dSXin LI# Type: Parity Archive 896b6cee71dSXin LI# From: Daniel van Eeden <daniel_e@dds.nl> 897b6cee71dSXin LI0 string PAR2 Parity Archive Volume Set 898b6cee71dSXin LI 899b6cee71dSXin LI# Bacula volume format. (Volumes always start with a block header.) 900b6cee71dSXin LI# URL: http://bacula.org/3.0.x-manuals/en/developers/developers/Block_Header.html 901b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com> 902b6cee71dSXin LI12 string BB02 Bacula volume 903b6cee71dSXin LI>20 bedate x \b, started %s 904b6cee71dSXin LI 905b6cee71dSXin LI# ePub is XHTML + XML inside a ZIP archive. The first member of the 906b6cee71dSXin LI# archive must be an uncompressed file called 'mimetype' with contents 907b6cee71dSXin LI# 'application/epub+zip' 908b6cee71dSXin LI 909b6cee71dSXin LI 910b6cee71dSXin LI# From: "Michael Gorny" <mgorny@gentoo.org> 911b6cee71dSXin LI# ZPAQ: http://mattmahoney.net/dc/zpaq.html 912b6cee71dSXin LI0 string zPQ ZPAQ stream 913b6cee71dSXin LI>3 byte x \b, level %d 914*5f0216bdSXin LI# From: Barry Carter <carter.barry@gmail.com> 915*5f0216bdSXin LI# http://encode.ru/threads/456-zpaq-updates/page32 916*5f0216bdSXin LI0 string 7kSt ZPAQ file 917b6cee71dSXin LI 918b6cee71dSXin LI# BBeB ebook, unencrypted (LRF format) 919b6cee71dSXin LI# URL: http://www.sven.de/librie/Librie/LrfFormat 920b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com> 921b6cee71dSXin LI0 string L\0R\0F\0\0\0 BBeB ebook data, unencrypted 922b6cee71dSXin LI>8 beshort x \b, version %d 923b6cee71dSXin LI>36 byte 1 \b, front-to-back 924b6cee71dSXin LI>36 byte 16 \b, back-to-front 925b6cee71dSXin LI>42 beshort x \b, (%dx, 926b6cee71dSXin LI>44 beshort x %d) 927b6cee71dSXin LI 928b6cee71dSXin LI# Symantec GHOST image by Joerg Jenderek at May 2014 929b6cee71dSXin LI# http://us.norton.com/ghost/ 930b6cee71dSXin LI# http://www.garykessler.net/library/file_sigs.html 931b6cee71dSXin LI0 ubelong&0xFFFFf7f0 0xFEEF0100 Norton GHost image 932b6cee71dSXin LI# *.GHO 933b6cee71dSXin LI>2 ubyte&0x08 0x00 \b, first file 934b6cee71dSXin LI# *.GHS or *.[0-9] with cns program option 935b6cee71dSXin LI>2 ubyte&0x08 0x08 \b, split file 936b6cee71dSXin LI# part of split index interesting for *.ghs 937b6cee71dSXin LI>>4 ubyte x id=0x%x 938b6cee71dSXin LI# compression tag minus one equals numeric compression command line switch z[1-9] 939b6cee71dSXin LI>3 ubyte 0 \b, no compression 940b6cee71dSXin LI>3 ubyte 2 \b, fast compression (Z1) 941b6cee71dSXin LI>3 ubyte 3 \b, medium compression (Z2) 942b6cee71dSXin LI>3 ubyte >3 943b6cee71dSXin LI>>3 ubyte <11 \b, compression (Z%d-1) 944b6cee71dSXin LI>2 ubyte&0x08 0x00 945b6cee71dSXin LI# ~ 30 byte password field only for *.gho 946b6cee71dSXin LI>>12 ubequad !0 \b, password protected 947b6cee71dSXin LI>>44 ubyte !1 948b6cee71dSXin LI# 1~Image All, sector-by-sector only for *.gho 949b6cee71dSXin LI>>>10 ubyte 1 \b, sector copy 950b6cee71dSXin LI# 1~Image Boot track only for *.gho 951b6cee71dSXin LI>>>43 ubyte 1 \b, boot track 952b6cee71dSXin LI# 1~Image Disc only for *.gho implies Image Boot track and sector copy 953b6cee71dSXin LI>>44 ubyte 1 \b, disc sector copy 954b6cee71dSXin LI# optional image description only *.gho 955b6cee71dSXin LI>>0xff string >\0 "%-.254s" 956b6cee71dSXin LI# look for DOS sector end sequence 957b6cee71dSXin LI>0xE08 search/7776 \x55\xAA 958b6cee71dSXin LI>>&-512 indirect x \b; contains 959b6cee71dSXin LI 960