1b6cee71dSXin LI#------------------------------------------------------------------------------ 2*40427ccaSGordon Tetlow# $File: archive,v 1.108 2017/08/30 13:45:10 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 2493e41d09dSXin LI# URL: http://fileformats.archiveteam.org/wiki/TTComp_archive 2503e41d09dSXin LI# Update: Joerg Jenderek 2513e41d09dSXin LI# GRR: line below is too general as it matches also Panorama database "TCDB 2003-10 demo.pan", others 2523e41d09dSXin LI0 string \0\6 2533e41d09dSXin LI# look for first keyword of Panorama database *.pan 2543e41d09dSXin LI>12 search/261 DESIGN 2553e41d09dSXin LI# skip keyword with low entropy 2563e41d09dSXin LI>12 default x TTComp archive, binary, 4K dictionary 2573e41d09dSXin LI# (version 5.25) labeled the above entry as "TTComp archive data" 258b6cee71dSXin LI# ESP, could this conflict with Easy Software Products' (e.g.ESP ghostscript) documentation? 259b6cee71dSXin LI0 string ESP ESP archive data 260b6cee71dSXin LI# ZPack 261b6cee71dSXin LI0 string \1ZPK\1 ZPack archive data 262b6cee71dSXin LI# Sky 263b6cee71dSXin LI0 string \xbc\x40 Sky archive data 264b6cee71dSXin LI# UFA 265b6cee71dSXin LI0 string UFA UFA archive data 266b6cee71dSXin LI# Dry 267b6cee71dSXin LI0 string =-H2O DRY archive data 268b6cee71dSXin LI# FoxSQZ 269b6cee71dSXin LI0 string FOXSQZ FoxSQZ archive data 270b6cee71dSXin LI# AR7 271b6cee71dSXin LI0 string ,AR7 AR7 archive data 272b6cee71dSXin LI# PPMZ 273b6cee71dSXin LI0 string PPMZ PPMZ archive data 274b6cee71dSXin LI# MS Compress 275b6cee71dSXin LI4 string \x88\xf0\x27 MS Compress archive data 276b6cee71dSXin LI# updated by Joerg Jenderek 277b6cee71dSXin LI>9 string \0 278b6cee71dSXin LI>>0 string KWAJ 279b6cee71dSXin LI>>>7 string \321\003 MS Compress archive data 280b6cee71dSXin LI>>>>14 ulong >0 \b, original size: %d bytes 281b6cee71dSXin LI>>>>18 ubyte >0x65 282b6cee71dSXin LI>>>>>18 string x \b, was %.8s 283b6cee71dSXin LI>>>>>(10.b-4) string x \b.%.3s 284b6cee71dSXin LI# MP3 (archiver, not lossy audio compression) 285b6cee71dSXin LI0 string MP3\x1a MP3-Archiver archive data 286b6cee71dSXin LI# ZET 287b6cee71dSXin LI0 string OZ\xc3\x9d ZET archive data 288b6cee71dSXin LI# TSComp 289b6cee71dSXin LI0 string \x65\x5d\x13\x8c\x08\x01\x03\x00 TSComp archive data 290b6cee71dSXin LI# ARQ 291b6cee71dSXin LI0 string gW\4\1 ARQ archive data 292b6cee71dSXin LI# Squash 293b6cee71dSXin LI3 string OctSqu Squash archive data 294b6cee71dSXin LI# Terse 295b6cee71dSXin LI0 string \5\1\1\0 Terse archive data 296b6cee71dSXin LI# PUCrunch 297b6cee71dSXin LI0 string \x01\x08\x0b\x08\xef\x00\x9e\x32\x30\x36\x31 PUCrunch archive data 298b6cee71dSXin LI# UHarc 299b6cee71dSXin LI0 string UHA UHarc archive data 300b6cee71dSXin LI# ABComp 301b6cee71dSXin LI0 string \2AB ABComp archive data 302b6cee71dSXin LI0 string \3AB2 ABComp archive data 303b6cee71dSXin LI# CMP 304b6cee71dSXin LI0 string CO\0 CMP archive data 305b6cee71dSXin LI# Splint 306b6cee71dSXin LI0 string \x93\xb9\x06 Splint archive data 307b6cee71dSXin LI# InstallShield 308b6cee71dSXin LI0 string \x13\x5d\x65\x8c InstallShield Z archive Data 309b6cee71dSXin LI# Gather 310b6cee71dSXin LI1 string GTH Gather archive data 311b6cee71dSXin LI# BOA 312b6cee71dSXin LI0 string BOA BOA archive data 313b6cee71dSXin LI# RAX 314b6cee71dSXin LI0 string ULEB\xa RAX archive data 315b6cee71dSXin LI# Xtreme 316b6cee71dSXin LI0 string ULEB\0 Xtreme archive data 317b6cee71dSXin LI# Pack Magic 318b6cee71dSXin LI0 string @\xc3\xa2\1\0 Pack Magic archive data 319b6cee71dSXin LI# BTS 320b6cee71dSXin LI0 belong&0xfeffffff 0x1a034465 BTS archive data 321b6cee71dSXin LI# ELI 5750 322b6cee71dSXin LI0 string Ora\ ELI 5750 archive data 323b6cee71dSXin LI# QFC 324b6cee71dSXin LI0 string \x1aFC\x1a QFC archive data 325b6cee71dSXin LI0 string \x1aQF\x1a QFC archive data 326b6cee71dSXin LI# PRO-PACK 327b6cee71dSXin LI0 string RNC PRO-PACK archive data 328b6cee71dSXin LI# 777 329b6cee71dSXin LI0 string 777 777 archive data 330b6cee71dSXin LI# LZS221 331b6cee71dSXin LI0 string sTaC LZS221 archive data 332b6cee71dSXin LI# HPA 333b6cee71dSXin LI0 string HPA HPA archive data 334b6cee71dSXin LI# Arhangel 335b6cee71dSXin LI0 string LG Arhangel archive data 336b6cee71dSXin LI# EXP1, uses bzip2 337b6cee71dSXin LI0 string 0123456789012345BZh EXP1 archive data 338b6cee71dSXin LI# IMP 339b6cee71dSXin LI0 string IMP\xa IMP archive data 340b6cee71dSXin LI# NRV 341b6cee71dSXin LI0 string \x00\x9E\x6E\x72\x76\xFF NRV archive data 342b6cee71dSXin LI# Squish 343b6cee71dSXin LI0 string \x73\xb2\x90\xf4 Squish archive data 344b6cee71dSXin LI# Par 345b6cee71dSXin LI0 string PHILIPP Par archive data 346b6cee71dSXin LI0 string PAR Par archive data 347b6cee71dSXin LI# HIT 348b6cee71dSXin LI0 string UB HIT archive data 349b6cee71dSXin LI# SBX 350b6cee71dSXin LI0 belong&0xfffff000 0x53423000 SBX archive data 351b6cee71dSXin LI# NaShrink 352b6cee71dSXin LI0 string NSK NaShrink archive data 353b6cee71dSXin LI# SAPCAR 354b6cee71dSXin LI0 string #\ CAR\ archive\ header SAPCAR archive data 355b6cee71dSXin LI0 string CAR\ 2.00RG SAPCAR archive data 356b6cee71dSXin LI# Disintegrator 357b6cee71dSXin LI0 string DST Disintegrator archive data 358b6cee71dSXin LI# ASD 359b6cee71dSXin LI0 string ASD ASD archive data 360b6cee71dSXin LI# InstallShield CAB 361b6cee71dSXin LI0 string ISc( InstallShield CAB 362b6cee71dSXin LI# TOP4 363b6cee71dSXin LI0 string T4\x1a TOP4 archive data 364b6cee71dSXin LI# BatComp left out: sig looks like COM executable 365b6cee71dSXin LI# so TODO: get real 4dos batcomp file and find sig 366b6cee71dSXin LI# BlakHole 367b6cee71dSXin LI0 string BH\5\7 BlakHole archive data 368b6cee71dSXin LI# BIX 369b6cee71dSXin LI0 string BIX0 BIX archive data 370b6cee71dSXin LI# ChiefLZA 371b6cee71dSXin LI0 string ChfLZ ChiefLZA archive data 372b6cee71dSXin LI# Blink 373b6cee71dSXin LI0 string Blink Blink archive data 374b6cee71dSXin LI# Logitech Compress 375b6cee71dSXin LI0 string \xda\xfa Logitech Compress archive data 376b6cee71dSXin LI# ARS-Sfx (FIXME: really a SFX? then goto COM/EXE) 377b6cee71dSXin LI1 string (C)\ STEPANYUK ARS-Sfx archive data 378b6cee71dSXin LI# AKT/AKT32 379b6cee71dSXin LI0 string AKT32 AKT32 archive data 380b6cee71dSXin LI0 string AKT AKT archive data 381b6cee71dSXin LI# NPack 382b6cee71dSXin LI0 string MSTSM NPack archive data 383b6cee71dSXin LI# PFT 384b6cee71dSXin LI0 string \0\x50\0\x14 PFT archive data 385b6cee71dSXin LI# SemOne 386b6cee71dSXin LI0 string SEM SemOne archive data 387b6cee71dSXin LI# PPMD 388b6cee71dSXin LI0 string \x8f\xaf\xac\x84 PPMD archive data 389b6cee71dSXin LI# FIZ 390b6cee71dSXin LI0 string FIZ FIZ archive data 391b6cee71dSXin LI# MSXiE 392b6cee71dSXin LI0 belong&0xfffff0f0 0x4d530000 MSXiE archive data 393b6cee71dSXin LI# DeepFreezer 394b6cee71dSXin LI0 belong&0xfffffff0 0x797a3030 DeepFreezer archive data 395b6cee71dSXin LI# DC 396b6cee71dSXin LI0 string =<DC- DC archive data 397b6cee71dSXin LI# TPac 398b6cee71dSXin LI0 string \4TPAC\3 TPac archive data 399b6cee71dSXin LI# Ai 400b6cee71dSXin LI0 string Ai\1\1\0 Ai archive data 401b6cee71dSXin LI0 string Ai\1\0\0 Ai archive data 402b6cee71dSXin LI# Ai32 403b6cee71dSXin LI0 string Ai\2\0 Ai32 archive data 404b6cee71dSXin LI0 string Ai\2\1 Ai32 archive data 405b6cee71dSXin LI# SBC 406b6cee71dSXin LI0 string SBC SBC archive data 407b6cee71dSXin LI# Ybs 408b6cee71dSXin LI0 string YBS Ybs archive data 409b6cee71dSXin LI# DitPack 410b6cee71dSXin LI0 string \x9e\0\0 DitPack archive data 411b6cee71dSXin LI# DMS 412b6cee71dSXin LI0 string DMS! DMS archive data 413b6cee71dSXin LI# EPC 414b6cee71dSXin LI0 string \x8f\xaf\xac\x8c EPC archive data 415b6cee71dSXin LI# VSARC 416b6cee71dSXin LI0 string VS\x1a VSARC archive data 417b6cee71dSXin LI# PDZ 418b6cee71dSXin LI0 string PDZ PDZ archive data 419b6cee71dSXin LI# ReDuq 420b6cee71dSXin LI0 string rdqx ReDuq archive data 421b6cee71dSXin LI# GCA 422b6cee71dSXin LI0 string GCAX GCA archive data 423b6cee71dSXin LI# PPMN 424b6cee71dSXin LI0 string pN PPMN archive data 425b6cee71dSXin LI# WinImage 426b6cee71dSXin LI3 string WINIMAGE WinImage archive data 427b6cee71dSXin LI# Compressia 428b6cee71dSXin LI0 string CMP0CMP Compressia archive data 429b6cee71dSXin LI# UHBC 430b6cee71dSXin LI0 string UHB UHBC archive data 431b6cee71dSXin LI# WinHKI 432b6cee71dSXin LI0 string \x61\x5C\x04\x05 WinHKI archive data 433b6cee71dSXin LI# WWPack data file 434b6cee71dSXin LI0 string WWP WWPack archive data 435b6cee71dSXin LI# BSN (BSA, PTS-DOS) 436b6cee71dSXin LI0 string \xffBSG BSN archive data 437b6cee71dSXin LI1 string \xffBSG BSN archive data 438b6cee71dSXin LI3 string \xffBSG BSN archive data 439b6cee71dSXin LI1 string \0\xae\2 BSN archive data 440b6cee71dSXin LI1 string \0\xae\3 BSN archive data 441b6cee71dSXin LI1 string \0\xae\7 BSN archive data 442b6cee71dSXin LI# AIN 443b6cee71dSXin LI0 string \x33\x18 AIN archive data 444b6cee71dSXin LI0 string \x33\x17 AIN archive data 4459ce06829SXin LI# XPA32 test moved and merged with XPA by Joerg Jenderek at Sep 2015 446b6cee71dSXin LI# SZip (TODO: doesn't catch all versions) 447b6cee71dSXin LI0 string SZ\x0a\4 SZip archive data 448b6cee71dSXin LI# XPack DiskImage 4499ce06829SXin LI# *.XDI updated by Joerg Jenderek Sep 2015 4509ce06829SXin LI# ftp://ftp.sac.sk/pub/sac/pack/0index.txt 4519ce06829SXin LI# GRR: this test is still too general as it catches also text files starting with jm 4529ce06829SXin LI0 string jm 4539ce06829SXin LI# only found examples with this additional characteristic 2 bytes 4549ce06829SXin LI>2 string \x2\x4 Xpack DiskImage archive data 4559ce06829SXin LI#!:ext xdi 456b6cee71dSXin LI# XPack Data 4579ce06829SXin LI# *.xpa updated by Joerg Jenderek Sep 2015 4589ce06829SXin LI# ftp://ftp.elf.stuba.sk/pub/pc/pack/ 4599ce06829SXin LI0 string xpa XPA 4609ce06829SXin LI!:ext xpa 4619ce06829SXin LI# XPA32 4629ce06829SXin LI# ftp://ftp.elf.stuba.sk/pub/pc/pack/xpa32.zip 4639ce06829SXin LI# created by XPA32.EXE version 1.0.2 for Windows 4649ce06829SXin LI>0 string xpa\0\1 \b32 archive data 4659ce06829SXin LI# created by XPACK.COM version 1.67m or 1.67r with short 0x1800 4669ce06829SXin LI>3 ubeshort !0x0001 \bck archive data 467b6cee71dSXin LI# XPack Single Data 4689ce06829SXin LI# changed by Joerg Jenderek Sep 2015 back to like in version 5.12 4699ce06829SXin LI# letter 'I'+ acute accent is equivalent to \xcd 4709ce06829SXin LI0 string \xcd\ jm Xpack single archive data 4719ce06829SXin LI#!:mime application/x-xpa-compressed 4729ce06829SXin LI!:ext xpa 473b6cee71dSXin LI 474b6cee71dSXin LI# TODO: missing due to unknown magic/magic at end of file: 475b6cee71dSXin LI#DWC 476b6cee71dSXin LI#ARG 477b6cee71dSXin LI#ZAR 478b6cee71dSXin LI#PC/3270 479b6cee71dSXin LI#InstallIt 480b6cee71dSXin LI#RKive 481b6cee71dSXin LI#RK 482b6cee71dSXin LI#XPack Diskimage 483b6cee71dSXin LI 484b6cee71dSXin LI# These were inspired by idarc, but actually verified 485b6cee71dSXin LI# Dzip archiver (.dz) 486b6cee71dSXin LI0 string DZ Dzip archive data 487b6cee71dSXin LI>2 byte x \b, version %i 488b6cee71dSXin LI>3 byte x \b.%i 489b6cee71dSXin LI# ZZip archiver (.zz) 490b6cee71dSXin LI0 string ZZ\ \0\0 ZZip archive data 491b6cee71dSXin LI0 string ZZ0 ZZip archive data 492b6cee71dSXin LI# PAQ archiver (.paq) 493b6cee71dSXin LI0 string \xaa\x40\x5f\x77\x1f\xe5\x82\x0d PAQ archive data 494b6cee71dSXin LI0 string PAQ PAQ archive data 495b6cee71dSXin LI>3 byte&0xf0 0x30 496b6cee71dSXin LI>>3 byte x (v%c) 497b6cee71dSXin LI# JAR archiver (.j), this is the successor to ARJ, not Java's JAR (which is essentially ZIP) 498b6cee71dSXin LI0xe string \x1aJar\x1b JAR (ARJ Software, Inc.) archive data 499b6cee71dSXin LI0 string JARCS JAR (ARJ Software, Inc.) archive data 500b6cee71dSXin LI 501b6cee71dSXin LI# ARJ archiver (jason@jarthur.Claremont.EDU) 502b6cee71dSXin LI0 leshort 0xea60 ARJ archive data 503b6cee71dSXin LI!:mime application/x-arj 504b6cee71dSXin LI>5 byte x \b, v%d, 505b6cee71dSXin LI>8 byte &0x04 multi-volume, 506b6cee71dSXin LI>8 byte &0x10 slash-switched, 507b6cee71dSXin LI>8 byte &0x20 backup, 508b6cee71dSXin LI>34 string x original name: %s, 509b6cee71dSXin LI>7 byte 0 os: MS-DOS 510b6cee71dSXin LI>7 byte 1 os: PRIMOS 511b6cee71dSXin LI>7 byte 2 os: Unix 512b6cee71dSXin LI>7 byte 3 os: Amiga 513b6cee71dSXin LI>7 byte 4 os: Macintosh 514b6cee71dSXin LI>7 byte 5 os: OS/2 515b6cee71dSXin LI>7 byte 6 os: Apple ][ GS 516b6cee71dSXin LI>7 byte 7 os: Atari ST 517b6cee71dSXin LI>7 byte 8 os: NeXT 518b6cee71dSXin LI>7 byte 9 os: VAX/VMS 519b6cee71dSXin LI>3 byte >0 %d] 520b6cee71dSXin LI# [JW] idarc says this is also possible 521b6cee71dSXin LI2 leshort 0xea60 ARJ archive data 522b6cee71dSXin LI 523b6cee71dSXin LI# HA archiver (Greg Roelofs, newt@uchicago.edu) 524b6cee71dSXin LI# This is a really bad format. A file containing HAWAII will match this... 525b6cee71dSXin LI#0 string HA HA archive data, 526b6cee71dSXin LI#>2 leshort =1 1 file, 527b6cee71dSXin LI#>2 leshort >1 %hu files, 528b6cee71dSXin LI#>4 byte&0x0f =0 first is type CPY 529b6cee71dSXin LI#>4 byte&0x0f =1 first is type ASC 530b6cee71dSXin LI#>4 byte&0x0f =2 first is type HSC 531b6cee71dSXin LI#>4 byte&0x0f =0x0e first is type DIR 532b6cee71dSXin LI#>4 byte&0x0f =0x0f first is type SPECIAL 533b6cee71dSXin LI# suggestion: at least identify small archives (<1024 files) 534b6cee71dSXin LI0 belong&0xffff00fc 0x48410000 HA archive data 535b6cee71dSXin LI>2 leshort =1 1 file, 536b6cee71dSXin LI>2 leshort >1 %u files, 537b6cee71dSXin LI>4 byte&0x0f =0 first is type CPY 538b6cee71dSXin LI>4 byte&0x0f =1 first is type ASC 539b6cee71dSXin LI>4 byte&0x0f =2 first is type HSC 540b6cee71dSXin LI>4 byte&0x0f =0x0e first is type DIR 541b6cee71dSXin LI>4 byte&0x0f =0x0f first is type SPECIAL 542b6cee71dSXin LI 543b6cee71dSXin LI# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz) 544b6cee71dSXin LI0 string HPAK HPACK archive data 545b6cee71dSXin LI 546b6cee71dSXin LI# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net 547b6cee71dSXin LI0 string \351,\001JAM\ JAM archive, 548b6cee71dSXin LI>7 string >\0 version %.4s 549b6cee71dSXin LI>0x26 byte =0x27 - 550b6cee71dSXin LI>>0x2b string >\0 label %.11s, 551b6cee71dSXin LI>>0x27 lelong x serial %08x, 552b6cee71dSXin LI>>0x36 string >\0 fstype %.8s 553b6cee71dSXin LI 554b6cee71dSXin LI# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) 5553e41d09dSXin LI# Update: Joerg Jenderek 5563e41d09dSXin LI# URL: https://en.wikipedia.org/wiki/LHA_(file_format) 5573e41d09dSXin LI# Reference: http://web.archive.org/web/20021005080911/http://www.osirusoft.com/joejared/lzhformat.html 5583e41d09dSXin LI# 5593e41d09dSXin LI# check and display information of lharc (LHa,PMarc) file 5603e41d09dSXin LI0 name lharc-file 5613e41d09dSXin LI# check 1st character of method id like -lz4- -lh5- or -pm2- 5623e41d09dSXin LI>2 string - 5633e41d09dSXin LI# check 5th character of method id 5643e41d09dSXin LI>>6 string - 5653e41d09dSXin LI# check header level 0 1 2 3 5663e41d09dSXin LI>>>20 ubyte <4 5673e41d09dSXin LI# check 2nd, 3th and 4th character of method id 5683e41d09dSXin LI>>>>3 regex \^(lh[0-9a-ex]|lz[s2-8]|pm[012]|pc1) \b 5693e41d09dSXin LI!:mime application/x-lzh-compressed 5703e41d09dSXin LI# creator type "LHA " 5713e41d09dSXin LI!:apple ????LHA 5723e41d09dSXin LI# display archive type name like "LHa/LZS archive data" or "LArc archive" 5733e41d09dSXin LI>>>>>2 string -lz \b 5743e41d09dSXin LI!:ext lzs 5753e41d09dSXin LI# already known -lzs- -lz4- -lz5- with old names 5763e41d09dSXin LI>>>>>>2 string -lzs LHa/LZS archive data 5773e41d09dSXin LI>>>>>>3 regex \^lz[45] LHarc 1.x archive data 5783e41d09dSXin LI# missing -lz?- with wikipedia names 5793e41d09dSXin LI>>>>>>3 regex \^lz[2378] LArc archive 5803e41d09dSXin LI# display archive type name like "LHa (2.x) archive data" 5813e41d09dSXin LI>>>>>2 string -lh \b 5823e41d09dSXin LI# already known -lh0- -lh1- -lh2- -lh3- -lh4- -lh5- -lh6- -lh7- -lhd- variants with old names 5833e41d09dSXin LI>>>>>>3 regex \^lh[01] LHarc 1.x/ARX archive data 5843e41d09dSXin LI# LHice archiver use ".ICE" as name extension instead usual one ".lzh" 5853e41d09dSXin LI# FOOBAR archiver use ".foo" as name extension instead usual one 5863e41d09dSXin LI# "Florain Orjanov's and Olga Bachetska's ARchiver" not found at the moment 5873e41d09dSXin LI>>>>>>>2 string -lh1 \b 5883e41d09dSXin LI!:ext lha/lzh/ice 5893e41d09dSXin LI>>>>>>3 regex \^lh[23d] LHa 2.x? archive data 5903e41d09dSXin LI>>>>>>3 regex \^lh[7] LHa (2.x)/LHark archive data 5913e41d09dSXin LI>>>>>>3 regex \^lh[456] LHa (2.x) archive data 5923e41d09dSXin LI>>>>>>>2 string -lh5 \b 5933e41d09dSXin LI# https://en.wikipedia.org/wiki/BIOS 5943e41d09dSXin LI# Some mainboard BIOS like Award use LHa compression. So archives with unusal extension are found like 5953e41d09dSXin LI# bios.rom , kd7_v14.bin, 1010.004, ... 5963e41d09dSXin LI!:ext lha/lzh/rom/bin 5973e41d09dSXin LI# missing -lh?- variants (Joe Jared) 5983e41d09dSXin LI>>>>>>3 regex \^lh[89a-ce] LHa (Joe Jared) archive 5993e41d09dSXin LI# UNLHA32 2.67a 6003e41d09dSXin LI>>>>>>2 string -lhx LHa (UNLHA32) archive 6013e41d09dSXin LI# lha archives with standard file name extensions ".lha" ".lzh" 6023e41d09dSXin LI>>>>>>3 regex !\^(lh1|lh5) \b 6033e41d09dSXin LI!:ext lha/lzh 6043e41d09dSXin LI# this should not happen if all -lh variants are described 6053e41d09dSXin LI>>>>>>2 default x LHa (unknown) archive 6063e41d09dSXin LI#!:ext lha 6073e41d09dSXin LI# PMarc 6083e41d09dSXin LI>>>>>3 regex \^pm[012] PMarc archive data 6093e41d09dSXin LI!:ext pma 6103e41d09dSXin LI# append method id without leading and trailing minus character 6113e41d09dSXin LI>>>>>3 string x [%3.3s] 6123e41d09dSXin LI>>>>>>0 use lharc-header 6133e41d09dSXin LI# 6143e41d09dSXin LI# check and display information of lharc header 6153e41d09dSXin LI0 name lharc-header 6163e41d09dSXin LI# header size 0x4 , 0x1b-0x61 6173e41d09dSXin LI>0 ubyte x 6183e41d09dSXin LI# compressed data size != compressed file size 6193e41d09dSXin LI#>7 ulelong x \b, data size %d 6203e41d09dSXin LI# attribute: 0x2~?? 0x10~symlink|target 0x20~normal 6213e41d09dSXin LI#>19 ubyte x \b, 19_0x%x 6223e41d09dSXin LI# level identifier 0 1 2 3 6233e41d09dSXin LI#>20 ubyte x \b, level %d 6243e41d09dSXin LI# time stamp 6253e41d09dSXin LI#>15 ubelong x DATE 0x%8.8x 6263e41d09dSXin LI# OS ID for level 1 6273e41d09dSXin LI>20 ubyte 1 6283e41d09dSXin LI# 0x20 types find for *.rom files 6293e41d09dSXin LI>>(21.b+24) ubyte <0x21 \b, 0x%x OS 6303e41d09dSXin LI# ascii type like M for MSDOS 6313e41d09dSXin LI>>(21.b+24) ubyte >0x20 \b, '%c' OS 6323e41d09dSXin LI# OS ID for level 2 6333e41d09dSXin LI>20 ubyte 2 6343e41d09dSXin LI#>>23 ubyte x \b, OS ID 0x%x 6353e41d09dSXin LI>>23 ubyte <0x21 \b, 0x%x OS 6363e41d09dSXin LI>>23 ubyte >0x20 \b, '%c' OS 6373e41d09dSXin LI# filename only for level 0 and 1 6383e41d09dSXin LI>20 ubyte <2 6393e41d09dSXin LI# length of filename 6403e41d09dSXin LI>>21 ubyte >0 \b, with 6413e41d09dSXin LI# filename 6423e41d09dSXin LI>>>21 pstring x "%s" 6433e41d09dSXin LI# 6443e41d09dSXin LI#2 string -lh0- LHarc 1.x/ARX archive data [lh0] 6453e41d09dSXin LI#!:mime application/x-lharc 6463e41d09dSXin LI2 string -lh0- 6473e41d09dSXin LI>0 use lharc-file 6483e41d09dSXin LI#2 string -lh1- LHarc 1.x/ARX archive data [lh1] 6493e41d09dSXin LI#!:mime application/x-lharc 6503e41d09dSXin LI2 string -lh1- 6513e41d09dSXin LI>0 use lharc-file 6523e41d09dSXin LI# NEW -lz2- ... -lz8- 6533e41d09dSXin LI2 string -lz2- 6543e41d09dSXin LI>0 use lharc-file 6553e41d09dSXin LI2 string -lz3- 6563e41d09dSXin LI>0 use lharc-file 6573e41d09dSXin LI2 string -lz4- 6583e41d09dSXin LI>0 use lharc-file 6593e41d09dSXin LI2 string -lz5- 6603e41d09dSXin LI>0 use lharc-file 6613e41d09dSXin LI2 string -lz7- 6623e41d09dSXin LI>0 use lharc-file 6633e41d09dSXin LI2 string -lz8- 6643e41d09dSXin LI>0 use lharc-file 665b6cee71dSXin LI# [never seen any but the last; -lh4- reported in comp.compression:] 6663e41d09dSXin LI#2 string -lzs- LHa/LZS archive data [lzs] 6673e41d09dSXin LI2 string -lzs- 6683e41d09dSXin LI>0 use lharc-file 6693e41d09dSXin LI# According to wikipedia and others such a version does not exist 6703e41d09dSXin LI#2 string -lh\40- LHa 2.x? archive data [lh ] 6713e41d09dSXin LI#2 string -lhd- LHa 2.x? archive data [lhd] 6723e41d09dSXin LI2 string -lhd- 6733e41d09dSXin LI>0 use lharc-file 6743e41d09dSXin LI#2 string -lh2- LHa 2.x? archive data [lh2] 6753e41d09dSXin LI2 string -lh2- 6763e41d09dSXin LI>0 use lharc-file 6773e41d09dSXin LI#2 string -lh3- LHa 2.x? archive data [lh3] 6783e41d09dSXin LI2 string -lh3- 6793e41d09dSXin LI>0 use lharc-file 6803e41d09dSXin LI#2 string -lh4- LHa (2.x) archive data [lh4] 6813e41d09dSXin LI2 string -lh4- 6823e41d09dSXin LI>0 use lharc-file 6833e41d09dSXin LI#2 string -lh5- LHa (2.x) archive data [lh5] 6843e41d09dSXin LI2 string -lh5- 6853e41d09dSXin LI>0 use lharc-file 6863e41d09dSXin LI#2 string -lh6- LHa (2.x) archive data [lh6] 6873e41d09dSXin LI2 string -lh6- 6883e41d09dSXin LI>0 use lharc-file 6893e41d09dSXin LI#2 string -lh7- LHa (2.x)/LHark archive data [lh7] 6903e41d09dSXin LI2 string -lh7- 6913e41d09dSXin LI# !:mime application/x-lha 6923e41d09dSXin LI# >20 byte x - header level %d 6933e41d09dSXin LI>0 use lharc-file 6943e41d09dSXin LI# NEW -lh8- ... -lhe- , -lhx- 6953e41d09dSXin LI2 string -lh8- 6963e41d09dSXin LI>0 use lharc-file 6973e41d09dSXin LI2 string -lh9- 6983e41d09dSXin LI>0 use lharc-file 6993e41d09dSXin LI2 string -lha- 7003e41d09dSXin LI>0 use lharc-file 7013e41d09dSXin LI2 string -lhb- 7023e41d09dSXin LI>0 use lharc-file 7033e41d09dSXin LI2 string -lhc- 7043e41d09dSXin LI>0 use lharc-file 7053e41d09dSXin LI2 string -lhe- 7063e41d09dSXin LI>0 use lharc-file 7073e41d09dSXin LI2 string -lhx- 7083e41d09dSXin LI>0 use lharc-file 709b6cee71dSXin LI# taken from idarc [JW] 710b6cee71dSXin LI2 string -lZ PUT archive data 7113e41d09dSXin LI# already done by LHarc magics 7123e41d09dSXin LI# this should never happen if all sub types of LZS archive are identified 7133e41d09dSXin LI#2 string -lz LZS archive data 714b6cee71dSXin LI2 string -sw1- Swag archive data 715b6cee71dSXin LI 7163e41d09dSXin LI0 name rar-file-header 7173e41d09dSXin LI>24 byte 15 \b, v1.5 7183e41d09dSXin LI>24 byte 20 \b, v2.0 7193e41d09dSXin LI>24 byte 29 \b, v4 7203e41d09dSXin LI>15 byte 0 \b, os: MS-DOS 7213e41d09dSXin LI>15 byte 1 \b, os: OS/2 7223e41d09dSXin LI>15 byte 2 \b, os: Win32 7233e41d09dSXin LI>15 byte 3 \b, os: Unix 7243e41d09dSXin LI>15 byte 4 \b, os: Mac OS 7253e41d09dSXin LI>15 byte 5 \b, os: BeOS 7263e41d09dSXin LI 7273e41d09dSXin LI0 name rar-archive-header 7283e41d09dSXin LI>3 leshort&0x1ff >0 \b, flags: 7293e41d09dSXin LI>>3 leshort &0x01 ArchiveVolume 7303e41d09dSXin LI>>3 leshort &0x02 Commented 7313e41d09dSXin LI>>3 leshort &0x04 Locked 7323e41d09dSXin LI>>3 leshort &0x10 NewVolumeNaming 7333e41d09dSXin LI>>3 leshort &0x08 Solid 7343e41d09dSXin LI>>3 leshort &0x20 Authenticated 7353e41d09dSXin LI>>3 leshort &0x40 RecoveryRecordPresent 7363e41d09dSXin LI>>3 leshort &0x80 EncryptedBlockHeader 7373e41d09dSXin LI>>3 leshort &0x100 FirstVolume 7383e41d09dSXin LI 7393e41d09dSXin LI# RAR (Roshal Archive) archive 7403e41d09dSXin LI0 string Rar!\x1a\7\0 RAR archive data 741b6cee71dSXin LI!:mime application/x-rar 7423e41d09dSXin LI!:ext rar/cbr 7433e41d09dSXin LI# file header 7443e41d09dSXin LI>(0xc.l+9) byte 0x74 7453e41d09dSXin LI>>(0xc.l+7) use rar-file-header 7463e41d09dSXin LI# subblock seems to share information with file header 7473e41d09dSXin LI>(0xc.l+9) byte 0x7a 7483e41d09dSXin LI>>(0xc.l+7) use rar-file-header 7493e41d09dSXin LI>9 byte 0x73 7503e41d09dSXin LI>>7 use rar-archive-header 7513e41d09dSXin LI 7523e41d09dSXin LI0 string Rar!\x1a\7\1\0 RAR archive data, v5 7533e41d09dSXin LI!:mime application/x-rar 7543e41d09dSXin LI!:ext rar 7553e41d09dSXin LI 7563e41d09dSXin LI# Very old RAR archive 7573e41d09dSXin LI# http://jasonblanks.com/wp-includes/images/papers/KnowyourarchiveRAR.pdf 7583e41d09dSXin LI0 string RE\x7e\x5e RAR archive data (<v1.5) 7593e41d09dSXin LI!:mime application/x-rar 7603e41d09dSXin LI!:ext rar/cbr 761b6cee71dSXin LI 762b6cee71dSXin LI# SQUISH archiver (Greg Roelofs, newt@uchicago.edu) 763b6cee71dSXin LI0 string SQSH squished archive data (Acorn RISCOS) 764b6cee71dSXin LI 765b6cee71dSXin LI# UC2 archiver (Greg Roelofs, newt@uchicago.edu) 766b6cee71dSXin LI# [JW] see exe section for self-extracting version 767b6cee71dSXin LI0 string UC2\x1a UC2 archive data 768b6cee71dSXin LI 769b6cee71dSXin LI# PKZIP multi-volume archive 770b6cee71dSXin LI0 string PK\x07\x08PK\x03\x04 Zip multi-volume archive data, at least PKZIP v2.50 to extract 771b6cee71dSXin LI!:mime application/zip 7723e41d09dSXin LI!:ext zip/cbz 773b6cee71dSXin LI 774b6cee71dSXin LI# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) 775b6cee71dSXin LI0 string PK\005\006 Zip archive data (empty) 7763e41d09dSXin LI!:mime application/zip 7773e41d09dSXin LI!:ext zip/cbz 778b6cee71dSXin LI0 string PK\003\004 779b6cee71dSXin LI 780b6cee71dSXin LI# Specialised zip formats which start with a member named 'mimetype' 781b6cee71dSXin LI# (stored uncompressed, with no 'extra field') containing the file's MIME type. 782b6cee71dSXin LI# Check for have 8-byte name, 0-byte extra field, name "mimetype", and 783b6cee71dSXin LI# contents starting with "application/": 784b6cee71dSXin LI>26 string \x8\0\0\0mimetypeapplication/ 785b6cee71dSXin LI 786b6cee71dSXin LI# KOffice / OpenOffice & StarOffice / OpenDocument formats 787b6cee71dSXin LI# From: Abel Cheung <abel@oaka.org> 788b6cee71dSXin LI 789b6cee71dSXin LI# KOffice (1.2 or above) formats 790b6cee71dSXin LI# (mimetype contains "application/vnd.kde.<SUBTYPE>") 791b6cee71dSXin LI>>50 string vnd.kde. KOffice (>=1.2) 792b6cee71dSXin LI>>>58 string karbon Karbon document 793b6cee71dSXin LI>>>58 string kchart KChart document 794b6cee71dSXin LI>>>58 string kformula KFormula document 795b6cee71dSXin LI>>>58 string kivio Kivio document 796b6cee71dSXin LI>>>58 string kontour Kontour document 797b6cee71dSXin LI>>>58 string kpresenter KPresenter document 798b6cee71dSXin LI>>>58 string kspread KSpread document 799b6cee71dSXin LI>>>58 string kword KWord document 800b6cee71dSXin LI 801b6cee71dSXin LI# OpenOffice formats (for OpenOffice 1.x / StarOffice 6/7) 802b6cee71dSXin LI# (mimetype contains "application/vnd.sun.xml.<SUBTYPE>") 803b6cee71dSXin LI>>50 string vnd.sun.xml. OpenOffice.org 1.x 804b6cee71dSXin LI>>>62 string writer Writer 805b6cee71dSXin LI>>>>68 byte !0x2e document 806b6cee71dSXin LI>>>>68 string .template template 807b6cee71dSXin LI>>>>68 string .global global document 808b6cee71dSXin LI>>>62 string calc Calc 809b6cee71dSXin LI>>>>66 byte !0x2e spreadsheet 810b6cee71dSXin LI>>>>66 string .template template 811b6cee71dSXin LI>>>62 string draw Draw 812b6cee71dSXin LI>>>>66 byte !0x2e document 813b6cee71dSXin LI>>>>66 string .template template 814b6cee71dSXin LI>>>62 string impress Impress 815b6cee71dSXin LI>>>>69 byte !0x2e presentation 816b6cee71dSXin LI>>>>69 string .template template 817b6cee71dSXin LI>>>62 string math Math document 818b6cee71dSXin LI>>>62 string base Database file 819b6cee71dSXin LI 820b6cee71dSXin LI# OpenDocument formats (for OpenOffice 2.x / StarOffice >= 8) 821b6cee71dSXin LI# http://lists.oasis-open.org/archives/office/200505/msg00006.html 822b6cee71dSXin LI# (mimetype contains "application/vnd.oasis.opendocument.<SUBTYPE>") 823b6cee71dSXin LI>>50 string vnd.oasis.opendocument. OpenDocument 824b6cee71dSXin LI>>>73 string text 825b6cee71dSXin LI>>>>77 byte !0x2d Text 826b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text 827b6cee71dSXin LI>>>>77 string -template Text Template 828b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-template 829b6cee71dSXin LI>>>>77 string -web HTML Document Template 830b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-web 831b6cee71dSXin LI>>>>77 string -master Master Document 832b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.text-master 833b6cee71dSXin LI>>>73 string graphics 834b6cee71dSXin LI>>>>81 byte !0x2d Drawing 835b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.graphics 836b6cee71dSXin LI>>>>81 string -template Template 837b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.graphics-template 838b6cee71dSXin LI>>>73 string presentation 839b6cee71dSXin LI>>>>85 byte !0x2d Presentation 840b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.presentation 841b6cee71dSXin LI>>>>85 string -template Template 842b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.presentation-template 843b6cee71dSXin LI>>>73 string spreadsheet 844b6cee71dSXin LI>>>>84 byte !0x2d Spreadsheet 845b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.spreadsheet 846b6cee71dSXin LI>>>>84 string -template Template 847b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.spreadsheet-template 848b6cee71dSXin LI>>>73 string chart 849b6cee71dSXin LI>>>>78 byte !0x2d Chart 850b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.chart 851b6cee71dSXin LI>>>>78 string -template Template 852b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.chart-template 853b6cee71dSXin LI>>>73 string formula 854b6cee71dSXin LI>>>>80 byte !0x2d Formula 855b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.formula 856b6cee71dSXin LI>>>>80 string -template Template 857b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.formula-template 858b6cee71dSXin LI>>>73 string database Database 859b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.database 860b6cee71dSXin LI>>>73 string image 861b6cee71dSXin LI>>>>78 byte !0x2d Image 862b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.image 863b6cee71dSXin LI>>>>78 string -template Template 864b6cee71dSXin LI!:mime application/vnd.oasis.opendocument.image-template 865b6cee71dSXin LI 866b6cee71dSXin LI# EPUB (OEBPS) books using OCF (OEBPS Container Format) 867b6cee71dSXin LI# http://www.idpf.org/ocf/ocf1.0/download/ocf10.htm, section 4. 868b6cee71dSXin LI# From: Ralf Brown <ralf.brown@gmail.com> 869b6cee71dSXin LI>>50 string epub+zip EPUB document 870b6cee71dSXin LI!:mime application/epub+zip 871b6cee71dSXin LI 872b6cee71dSXin LI# Catch other ZIP-with-mimetype formats 873b6cee71dSXin LI# In a ZIP file, the bytes immediately after a member's contents are 874b6cee71dSXin LI# always "PK". The 2 regex rules here print the "mimetype" member's 875b6cee71dSXin LI# contents up to the first 'P'. Luckily, most MIME types don't contain 876b6cee71dSXin LI# any capital 'P's. This is a kludge. 877b6cee71dSXin LI# (mimetype contains "application/<OTHER>") 878b6cee71dSXin LI>>50 string !epub+zip 879b6cee71dSXin LI>>>50 string !vnd.oasis.opendocument. 880b6cee71dSXin LI>>>>50 string !vnd.sun.xml. 881b6cee71dSXin LI>>>>>50 string !vnd.kde. 882b6cee71dSXin LI>>>>>>38 regex [!-OQ-~]+ Zip data (MIME type "%s"?) 883b6cee71dSXin LI!:mime application/zip 884b6cee71dSXin LI# (mimetype contents other than "application/*") 885b6cee71dSXin LI>26 string \x8\0\0\0mimetype 886b6cee71dSXin LI>>38 string !application/ 887b6cee71dSXin LI>>>38 regex [!-OQ-~]+ Zip data (MIME type "%s"?) 888b6cee71dSXin LI!:mime application/zip 889b6cee71dSXin LI 890b6cee71dSXin LI# Java Jar files 891b6cee71dSXin LI>(26.s+30) leshort 0xcafe Java archive data (JAR) 892b6cee71dSXin LI!:mime application/java-archive 893b6cee71dSXin LI 89420f8619dSXin LI# iOS App 89520f8619dSXin LI>(26.s+30) leshort !0xcafe 89620f8619dSXin LI>>26 string !\x8\0\0\0mimetype 89720f8619dSXin LI>>>30 string Payload/ 89820f8619dSXin LI>>>>38 search/64 .app/ iOS App 89920f8619dSXin LI!:mime application/x-ios-app 90020f8619dSXin LI 90120f8619dSXin LI 902b6cee71dSXin LI# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) 903b6cee71dSXin LI# Next line excludes specialized formats: 904b6cee71dSXin LI>(26.s+30) leshort !0xcafe 905b6cee71dSXin LI>>26 string !\x8\0\0\0mimetype Zip archive data 906b6cee71dSXin LI!:mime application/zip 907b6cee71dSXin LI>>>4 byte 0x09 \b, at least v0.9 to extract 908b6cee71dSXin LI>>>4 byte 0x0a \b, at least v1.0 to extract 909b6cee71dSXin LI>>>4 byte 0x0b \b, at least v1.1 to extract 910b6cee71dSXin LI>>>4 byte 0x14 \b, at least v2.0 to extract 911*40427ccaSGordon Tetlow>>>4 byte 0x15 \b, at least v2.1 to extract 912*40427ccaSGordon Tetlow>>>4 byte 0x19 \b, at least v2.5 to extract 913*40427ccaSGordon Tetlow>>>4 byte 0x1b \b, at least v2.7 to extract 9145f0216bdSXin LI>>>4 byte 0x2d \b, at least v4.5 to extract 915*40427ccaSGordon Tetlow>>>4 byte 0x2e \b, at least v4.6 to extract 916*40427ccaSGordon Tetlow>>>4 byte 0x32 \b, at least v5.0 to extract 917*40427ccaSGordon Tetlow>>>4 byte 0x33 \b, at least v5.1 to extract 918*40427ccaSGordon Tetlow>>>4 byte 0x34 \b, at least v5.2 to extract 919*40427ccaSGordon Tetlow>>>4 byte 0x3d \b, at least v6.1 to extract 920*40427ccaSGordon Tetlow>>>4 byte 0x3e \b, at least v6.2 to extract 921*40427ccaSGordon Tetlow>>>4 byte 0x3f \b, at least v6.3 to extract 922b6cee71dSXin LI>>>0x161 string WINZIP \b, WinZIP self-extracting 923b6cee71dSXin LI 924b6cee71dSXin LI# StarView Metafile 925b6cee71dSXin LI# From Pierre Ducroquet <pinaraf@pinaraf.info> 926b6cee71dSXin LI0 string VCLMTF StarView MetaFile 927b6cee71dSXin LI>6 beshort x \b, version %d 928b6cee71dSXin LI>8 belong x \b, size %d 929b6cee71dSXin LI 930b6cee71dSXin LI# Zoo archiver 931b6cee71dSXin LI20 lelong 0xfdc4a7dc Zoo archive data 932b6cee71dSXin LI!:mime application/x-zoo 933b6cee71dSXin LI>4 byte >48 \b, v%c. 934b6cee71dSXin LI>>6 byte >47 \b%c 935b6cee71dSXin LI>>>7 byte >47 \b%c 936b6cee71dSXin LI>32 byte >0 \b, modify: v%d 937b6cee71dSXin LI>>33 byte x \b.%d+ 938b6cee71dSXin LI>42 lelong 0xfdc4a7dc \b, 939b6cee71dSXin LI>>70 byte >0 extract: v%d 940b6cee71dSXin LI>>>71 byte x \b.%d+ 941b6cee71dSXin LI 942b6cee71dSXin LI# Shell archives 943b6cee71dSXin LI10 string #\ This\ is\ a\ shell\ archive shell archive text 944b6cee71dSXin LI!:mime application/octet-stream 945b6cee71dSXin LI 946b6cee71dSXin LI# 947b6cee71dSXin LI# LBR. NB: May conflict with the questionable 948b6cee71dSXin LI# "binary Computer Graphics Metafile" format. 949b6cee71dSXin LI# 950b6cee71dSXin LI0 string \0\ \ \ \ \ \ \ \ \ \ \ \0\0 LBR archive data 951b6cee71dSXin LI# 952b6cee71dSXin LI# PMA (CP/M derivative of LHA) 9533e41d09dSXin LI# Update: Joerg Jenderek 9543e41d09dSXin LI# URL: https://en.wikipedia.org/wiki/LHA_(file_format) 955b6cee71dSXin LI# 9563e41d09dSXin LI#2 string -pm0- PMarc archive data [pm0] 9573e41d09dSXin LI2 string -pm0- 9583e41d09dSXin LI>0 use lharc-file 9593e41d09dSXin LI#2 string -pm1- PMarc archive data [pm1] 9603e41d09dSXin LI2 string -pm1- 9613e41d09dSXin LI>0 use lharc-file 9623e41d09dSXin LI#2 string -pm2- PMarc archive data [pm2] 9633e41d09dSXin LI2 string -pm2- 9643e41d09dSXin LI>0 use lharc-file 965b6cee71dSXin LI2 string -pms- PMarc SFX archive (CP/M, DOS) 9663e41d09dSXin LI#!:mime application/x-foobar-exec 9673e41d09dSXin LI!:ext com 968b6cee71dSXin LI5 string -pc1- PopCom compressed executable (CP/M) 9693e41d09dSXin LI#!:mime application/x- 9703e41d09dSXin LI#!:ext com 971b6cee71dSXin LI 972b6cee71dSXin LI# From Rafael Laboissiere <rafael@laboissiere.net> 973b6cee71dSXin LI# The Project Revision Control System (see 974b6cee71dSXin LI# http://prcs.sourceforge.net) generates a packaged project 975b6cee71dSXin LI# file which is recognized by the following entry: 976b6cee71dSXin LI0 leshort 0xeb81 PRCS packaged project 977b6cee71dSXin LI 978b6cee71dSXin LI# Microsoft cabinets 979b6cee71dSXin LI# by David Necas (Yeti) <yeti@physics.muni.cz> 980b6cee71dSXin LI#0 string MSCF\0\0\0\0 Microsoft cabinet file data, 981b6cee71dSXin LI#>25 byte x v%d 982b6cee71dSXin LI#>24 byte x \b.%d 983b6cee71dSXin LI# MPi: All CABs have version 1.3, so this is pointless. 984b6cee71dSXin LI# Better magic in debian-additions. 985b6cee71dSXin LI 986b6cee71dSXin LI# GTKtalog catalogs 987b6cee71dSXin LI# by David Necas (Yeti) <yeti@physics.muni.cz> 988b6cee71dSXin LI4 string gtktalog\ GTKtalog catalog data, 989b6cee71dSXin LI>13 string 3 version 3 990b6cee71dSXin LI>>14 beshort 0x677a (gzipped) 991b6cee71dSXin LI>>14 beshort !0x677a (not gzipped) 992b6cee71dSXin LI>13 string >3 version %s 993b6cee71dSXin LI 994b6cee71dSXin LI############################################################################ 995b6cee71dSXin LI# Parity archive reconstruction file, the 'par' file format now used on Usenet. 996b6cee71dSXin LI0 string PAR\0 PARity archive data 997b6cee71dSXin LI>48 leshort =0 - Index file 998b6cee71dSXin LI>48 leshort >0 - file number %d 999b6cee71dSXin LI 1000b6cee71dSXin LI# Felix von Leitner <felix-file@fefe.de> 1001b6cee71dSXin LI0 string d8:announce BitTorrent file 1002b6cee71dSXin LI!:mime application/x-bittorrent 10033e41d09dSXin LI# Durval Menezes, <jmgthbfile at durval dot com> 10043e41d09dSXin LI0 string d13:announce-list BitTorrent file 10053e41d09dSXin LI!:mime application/x-bittorrent 1006b6cee71dSXin LI 1007b6cee71dSXin LI# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi> 1008b6cee71dSXin LI0 beshort 0x0e0f Atari MSA archive data 1009b6cee71dSXin LI>2 beshort x \b, %d sectors per track 1010b6cee71dSXin LI>4 beshort 0 \b, 1 sided 1011b6cee71dSXin LI>4 beshort 1 \b, 2 sided 1012b6cee71dSXin LI>6 beshort x \b, starting track: %d 1013b6cee71dSXin LI>8 beshort x \b, ending track: %d 1014b6cee71dSXin LI 1015b6cee71dSXin LI# Alternate ZIP string (amc@arwen.cs.berkeley.edu) 1016b6cee71dSXin LI0 string PK00PK\003\004 Zip archive data 1017b6cee71dSXin LI 1018b6cee71dSXin LI# ACE archive (from http://www.wotsit.org/download.asp?f=ace) 1019b6cee71dSXin LI# by Stefan `Sec` Zehl <sec@42.org> 1020b6cee71dSXin LI7 string **ACE** ACE archive data 1021b6cee71dSXin LI>15 byte >0 version %d 1022b6cee71dSXin LI>16 byte =0x00 \b, from MS-DOS 1023b6cee71dSXin LI>16 byte =0x01 \b, from OS/2 1024b6cee71dSXin LI>16 byte =0x02 \b, from Win/32 1025b6cee71dSXin LI>16 byte =0x03 \b, from Unix 1026b6cee71dSXin LI>16 byte =0x04 \b, from MacOS 1027b6cee71dSXin LI>16 byte =0x05 \b, from WinNT 1028b6cee71dSXin LI>16 byte =0x06 \b, from Primos 1029b6cee71dSXin LI>16 byte =0x07 \b, from AppleGS 1030b6cee71dSXin LI>16 byte =0x08 \b, from Atari 1031b6cee71dSXin LI>16 byte =0x09 \b, from Vax/VMS 1032b6cee71dSXin LI>16 byte =0x0A \b, from Amiga 1033b6cee71dSXin LI>16 byte =0x0B \b, from Next 1034b6cee71dSXin LI>14 byte x \b, version %d to extract 1035b6cee71dSXin LI>5 leshort &0x0080 \b, multiple volumes, 1036b6cee71dSXin LI>>17 byte x \b (part %d), 1037b6cee71dSXin LI>5 leshort &0x0002 \b, contains comment 1038b6cee71dSXin LI>5 leshort &0x0200 \b, sfx 1039b6cee71dSXin LI>5 leshort &0x0400 \b, small dictionary 1040b6cee71dSXin LI>5 leshort &0x0800 \b, multi-volume 1041b6cee71dSXin LI>5 leshort &0x1000 \b, contains AV-String 1042b6cee71dSXin LI>>30 string \x16*UNREGISTERED\x20VERSION* (unregistered) 1043b6cee71dSXin LI>5 leshort &0x2000 \b, with recovery record 1044b6cee71dSXin LI>5 leshort &0x4000 \b, locked 1045b6cee71dSXin LI>5 leshort &0x8000 \b, solid 1046b6cee71dSXin LI# Date in MS-DOS format (whatever that is) 1047b6cee71dSXin LI#>18 lelong x Created on 1048b6cee71dSXin LI 1049b6cee71dSXin LI# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann 1050b6cee71dSXin LI# <doj@cubic.org> 1051b6cee71dSXin LI0x1A string sfArk sfArk compressed Soundfont 1052b6cee71dSXin LI>0x15 string 2 1053b6cee71dSXin LI>>0x1 string >\0 Version %s 1054b6cee71dSXin LI>>0x2A string >\0 : %s 1055b6cee71dSXin LI 1056b6cee71dSXin LI# DR-DOS 7.03 Packed File *.??_ 1057b6cee71dSXin LI0 string Packed\ File\ Personal NetWare Packed File 1058b6cee71dSXin LI>12 string x \b, was "%.12s" 1059b6cee71dSXin LI 1060b6cee71dSXin LI# EET archive 1061b6cee71dSXin LI# From: Tilman Sauerbeck <tilman@code-monkey.de> 1062b6cee71dSXin LI0 belong 0x1ee7ff00 EET archive 1063b6cee71dSXin LI!:mime application/x-eet 1064b6cee71dSXin LI 1065b6cee71dSXin LI# rzip archives 1066b6cee71dSXin LI0 string RZIP rzip compressed data 1067b6cee71dSXin LI>4 byte x - version %d 1068b6cee71dSXin LI>5 byte x \b.%d 1069b6cee71dSXin LI>6 belong x (%d bytes) 1070b6cee71dSXin LI 1071b6cee71dSXin LI# From: "Robert Dale" <robdale@gmail.com> 1072b6cee71dSXin LI0 belong 123 dar archive, 1073b6cee71dSXin LI>4 belong x label "%.8x 1074b6cee71dSXin LI>>8 belong x %.8x 1075b6cee71dSXin LI>>>12 beshort x %.4x" 1076b6cee71dSXin LI>14 byte 0x54 end slice 1077b6cee71dSXin LI>14 beshort 0x4e4e multi-part 1078b6cee71dSXin LI>14 beshort 0x4e53 multi-part, with -S 1079b6cee71dSXin LI 1080b6cee71dSXin LI# Symbian installation files 1081b6cee71dSXin LI# http://www.thouky.co.uk/software/psifs/sis.html 1082b6cee71dSXin LI# http://developer.symbian.com/main/downloads/papers/SymbianOSv91/softwareinstallsis.pdf 1083b6cee71dSXin LI8 lelong 0x10000419 Symbian installation file 1084b6cee71dSXin LI!:mime application/vnd.symbian.install 1085b6cee71dSXin LI>4 lelong 0x1000006D (EPOC release 3/4/5) 1086b6cee71dSXin LI>4 lelong 0x10003A12 (EPOC release 6) 1087b6cee71dSXin LI0 lelong 0x10201A7A Symbian installation file (Symbian OS 9.x) 1088b6cee71dSXin LI!:mime x-epoc/x-sisx-app 1089b6cee71dSXin LI 1090b6cee71dSXin LI# From "Nelson A. de Oliveira" <naoliv@gmail.com> 1091b6cee71dSXin LI0 string MPQ\032 MoPaQ (MPQ) archive 1092b6cee71dSXin LI 1093b6cee71dSXin LI# From: "Nelson A. de Oliveira" <naoliv@gmail.com> 1094b6cee71dSXin LI# .kgb 1095b6cee71dSXin LI0 string KGB_arch KGB Archiver file 1096b6cee71dSXin LI>10 string x with compression level %.1s 1097b6cee71dSXin LI 1098b6cee71dSXin LI# xar (eXtensible ARchiver) archive 10993e41d09dSXin LI# xar archive format: http://code.google.com/p/xar/ 1100b6cee71dSXin LI# From: "David Remahl" <dremahl@apple.com> 1101b6cee71dSXin LI0 string xar! xar archive 11023e41d09dSXin LI!:mime application/x-xar 1103b6cee71dSXin LI#>4 beshort x header size %d 1104b6cee71dSXin LI>6 beshort x version %d, 1105b6cee71dSXin LI#>8 quad x compressed TOC: %d, 1106b6cee71dSXin LI#>16 quad x uncompressed TOC: %d, 1107b6cee71dSXin LI>24 belong 0 no checksum 1108b6cee71dSXin LI>24 belong 1 SHA-1 checksum 1109b6cee71dSXin LI>24 belong 2 MD5 checksum 1110b6cee71dSXin LI 1111b6cee71dSXin LI# Type: Parity Archive 1112b6cee71dSXin LI# From: Daniel van Eeden <daniel_e@dds.nl> 1113b6cee71dSXin LI0 string PAR2 Parity Archive Volume Set 1114b6cee71dSXin LI 1115b6cee71dSXin LI# Bacula volume format. (Volumes always start with a block header.) 1116b6cee71dSXin LI# URL: http://bacula.org/3.0.x-manuals/en/developers/developers/Block_Header.html 1117b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com> 1118b6cee71dSXin LI12 string BB02 Bacula volume 1119b6cee71dSXin LI>20 bedate x \b, started %s 1120b6cee71dSXin LI 1121b6cee71dSXin LI# ePub is XHTML + XML inside a ZIP archive. The first member of the 1122b6cee71dSXin LI# archive must be an uncompressed file called 'mimetype' with contents 1123b6cee71dSXin LI# 'application/epub+zip' 1124b6cee71dSXin LI 1125b6cee71dSXin LI 1126b6cee71dSXin LI# From: "Michael Gorny" <mgorny@gentoo.org> 1127b6cee71dSXin LI# ZPAQ: http://mattmahoney.net/dc/zpaq.html 1128b6cee71dSXin LI0 string zPQ ZPAQ stream 1129b6cee71dSXin LI>3 byte x \b, level %d 11305f0216bdSXin LI# From: Barry Carter <carter.barry@gmail.com> 11315f0216bdSXin LI# http://encode.ru/threads/456-zpaq-updates/page32 11325f0216bdSXin LI0 string 7kSt ZPAQ file 1133b6cee71dSXin LI 1134b6cee71dSXin LI# BBeB ebook, unencrypted (LRF format) 1135b6cee71dSXin LI# URL: http://www.sven.de/librie/Librie/LrfFormat 1136b6cee71dSXin LI# From: Adam Buchbinder <adam.buchbinder@gmail.com> 1137b6cee71dSXin LI0 string L\0R\0F\0\0\0 BBeB ebook data, unencrypted 1138b6cee71dSXin LI>8 beshort x \b, version %d 1139b6cee71dSXin LI>36 byte 1 \b, front-to-back 1140b6cee71dSXin LI>36 byte 16 \b, back-to-front 1141b6cee71dSXin LI>42 beshort x \b, (%dx, 1142b6cee71dSXin LI>44 beshort x %d) 1143b6cee71dSXin LI 1144b6cee71dSXin LI# Symantec GHOST image by Joerg Jenderek at May 2014 1145b6cee71dSXin LI# http://us.norton.com/ghost/ 1146b6cee71dSXin LI# http://www.garykessler.net/library/file_sigs.html 1147b6cee71dSXin LI0 ubelong&0xFFFFf7f0 0xFEEF0100 Norton GHost image 1148b6cee71dSXin LI# *.GHO 1149b6cee71dSXin LI>2 ubyte&0x08 0x00 \b, first file 1150b6cee71dSXin LI# *.GHS or *.[0-9] with cns program option 1151b6cee71dSXin LI>2 ubyte&0x08 0x08 \b, split file 1152b6cee71dSXin LI# part of split index interesting for *.ghs 1153b6cee71dSXin LI>>4 ubyte x id=0x%x 1154b6cee71dSXin LI# compression tag minus one equals numeric compression command line switch z[1-9] 1155b6cee71dSXin LI>3 ubyte 0 \b, no compression 1156b6cee71dSXin LI>3 ubyte 2 \b, fast compression (Z1) 1157b6cee71dSXin LI>3 ubyte 3 \b, medium compression (Z2) 1158b6cee71dSXin LI>3 ubyte >3 1159b6cee71dSXin LI>>3 ubyte <11 \b, compression (Z%d-1) 1160b6cee71dSXin LI>2 ubyte&0x08 0x00 1161b6cee71dSXin LI# ~ 30 byte password field only for *.gho 1162b6cee71dSXin LI>>12 ubequad !0 \b, password protected 1163b6cee71dSXin LI>>44 ubyte !1 1164b6cee71dSXin LI# 1~Image All, sector-by-sector only for *.gho 1165b6cee71dSXin LI>>>10 ubyte 1 \b, sector copy 1166b6cee71dSXin LI# 1~Image Boot track only for *.gho 1167b6cee71dSXin LI>>>43 ubyte 1 \b, boot track 1168b6cee71dSXin LI# 1~Image Disc only for *.gho implies Image Boot track and sector copy 1169b6cee71dSXin LI>>44 ubyte 1 \b, disc sector copy 1170b6cee71dSXin LI# optional image description only *.gho 1171b6cee71dSXin LI>>0xff string >\0 "%-.254s" 1172b6cee71dSXin LI# look for DOS sector end sequence 1173b6cee71dSXin LI>0xE08 search/7776 \x55\xAA 1174b6cee71dSXin LI>>&-512 indirect x \b; contains 1175b6cee71dSXin LI 11763e41d09dSXin LI# Google Chrome extensions 11773e41d09dSXin LI# https://developer.chrome.com/extensions/crx 11783e41d09dSXin LI# https://developer.chrome.com/extensions/hosting 11793e41d09dSXin LI0 string Cr24 Google Chrome extension 11803e41d09dSXin LI!:mime application/x-chrome-extension 11813e41d09dSXin LI>4 ulong x \b, version %u 1182*40427ccaSGordon Tetlow 1183*40427ccaSGordon Tetlow# SeqBox - Sequenced container 1184*40427ccaSGordon Tetlow# ext: sbx, seqbox 1185*40427ccaSGordon Tetlow# Marco Pontello marcopon@gmail.com 1186*40427ccaSGordon Tetlow# reference: https://github.com/MarcoPon/SeqBox 1187*40427ccaSGordon Tetlow0 string SBx SeqBox, 1188*40427ccaSGordon Tetlow>3 byte x version %d 1189