1327e51cbSPeter Avalos#------------------------------------------------------------------------------ 2*3b9cdfa3SAntonio Huete Jimenez# $File: compress,v 1.83 2022/08/16 11:16:39 christos Exp $ 3327e51cbSPeter Avalos# compress: file(1) magic for pure-compression formats (no archives) 4327e51cbSPeter Avalos# 5327e51cbSPeter Avalos# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. 6327e51cbSPeter Avalos# 7327e51cbSPeter Avalos# Formats for various forms of compressed data 8327e51cbSPeter Avalos# Formats for "compress" proper have been moved into "compress.c", 9327e51cbSPeter Avalos# because it tries to uncompress it to figure out what's inside. 10327e51cbSPeter Avalos 11327e51cbSPeter Avalos# standard unix compress 12327e51cbSPeter Avalos0 string \037\235 compress'd data 1379343712SPeter Avalos!:mime application/x-compress 1479343712SPeter Avalos!:apple LZIVZIVU 15327e51cbSPeter Avalos>2 byte&0x80 >0 block compressed 16327e51cbSPeter Avalos>2 byte&0x1f x %d bits 17327e51cbSPeter Avalos 18327e51cbSPeter Avalos# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver) 196fca56fbSSascha Wildner# URL: https://en.wikipedia.org/wiki/Gzip 206fca56fbSSascha Wildner# Reference: https://tools.ietf.org/html/rfc1952 216fca56fbSSascha Wildner# Update: Joerg Jenderek, Apr 2019 22327e51cbSPeter Avalos# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002 23327e51cbSPeter Avalos# * Original filename is only at offset 10 if "extra field" absent 24327e51cbSPeter Avalos# * Produce shorter output - notably, only report compression methods 25327e51cbSPeter Avalos# other than 8 ("deflate", the only method defined in RFC 1952). 266fca56fbSSascha Wildner# Note: find defs -iname '*.trid.xml' -exec grep -q '<Bytes>1F8B08' {} \; -ls 276fca56fbSSascha Wildner# TODO: 286fca56fbSSascha Wildner# FBR Blueberry FlashBack screen Record https://www.flashbackrecorder.com/ 296fca56fbSSascha Wildner# KPR KOffice/Calligra KPresenter application/x-kpresenter 306fca56fbSSascha Wildner# KPT KOffice/Calligra KPresenter template? application/x-kpresenter 316fca56fbSSascha Wildner# SAV Diggles Saved Game File http://www.innonics.com 326fca56fbSSascha Wildner# SAV FarCry (demo) saved game http://www.farcry-thegame.com 336fca56fbSSascha Wildner# DAT ZOAGZIP game data format http://en.wikipedia.org/wiki/SD_Gundam_Capsule_Fighter 346fca56fbSSascha Wildner0 string \037\213 356fca56fbSSascha Wildner# to display gzip compressed (strength=100=2*50) before other (strength=50)? 366fca56fbSSascha Wildner#!:strength * 2 376fca56fbSSascha Wildner# no FNAME and FCOMMENT bit implies no file name/comment. That means only binary 386fca56fbSSascha Wildner>3 byte&0x18 =0 396fca56fbSSascha Wildner# For binary gzipped no ASCII text should occur 406fca56fbSSascha Wildner# mcd-monu-cad.trid.xml 416fca56fbSSascha Wildner>>10 string MCD Monu-Cad Drawing, Component or Font 426fca56fbSSascha Wildner#>>36 string Created\ with\ MONU-CAD 436fca56fbSSascha Wildner#!:mime application/octet-stream 446fca56fbSSascha Wildner# http://fileformats.archiveteam.org/wiki/Monu-CAD 456fca56fbSSascha Wildner# http://www.monucad.com/downloads/FullDemo-2005.EXE 466fca56fbSSascha Wildner# /HANDS96.MCC Component 476fca56fbSSascha Wildner# /DEMO_DD01.MCD Drawing 486fca56fbSSascha Wildner# /MCALF020.FNT Font 496fca56fbSSascha Wildner!:ext mcc/mcd/fnt 506fca56fbSSascha Wildner# http://www.generalcadd.com 516fca56fbSSascha Wildner>>10 string GXD General CADD, Drawing or Component 526fca56fbSSascha Wildner#!:mime application/octet-stream 536fca56fbSSascha Wildner# /gxc/BUILDINGEDGE.gxc Component 546fca56fbSSascha Wildner# /gxd/HOCKETT-STPAUL-WRHSE.gxd Drawing 556fca56fbSSascha Wildner# /gxd/POWERLAND-MILL-ADD-11.gxd Drawing v9.1.06 566fca56fbSSascha Wildner!:ext gxc/gxd 576fca56fbSSascha Wildner#>>>13 ubyte 0 \b, version 0 586fca56fbSSascha Wildner>>>13 string 09 \b, version 9 596fca56fbSSascha Wildner# other gzipped binary like gzipped tar, VirtualBox extension package,... 606fca56fbSSascha Wildner>>10 default x gzip compressed data 616fca56fbSSascha Wildner!:mime application/gzip 626fca56fbSSascha Wildner>>>0 use gzip-info 636fca56fbSSascha Wildner# size of the original (uncompressed) input data modulo 2^32 64c990e5baSDaniel Fojt>>-0 offset >48 656fca56fbSSascha Wildner>>>-4 ulelong x \b, original size modulo 2^32 %u 66c990e5baSDaniel Fojt>>-0 offset <48 \b, truncated 676fca56fbSSascha Wildner# gzipped TAR or VirtualBox extension package 686fca56fbSSascha Wildner#!:mime application/x-compressed-tar 696fca56fbSSascha Wildner#!:mime application/x-virtualbox-vbox-extpack 706fca56fbSSascha Wildner# https://www.w3.org/TR/SVG/mimereg.html 716fca56fbSSascha Wildner#!:mime image/image/svg+xml-compressed 726fca56fbSSascha Wildner# zlib.3.gz 736fca56fbSSascha Wildner# microcode-20180312.tgz 746fca56fbSSascha Wildner# tpz same as tgz 756fca56fbSSascha Wildner# lua-md5_1.2-1_i386_i486.ipk https://en.wikipedia.org/wiki/Opkg 766fca56fbSSascha Wildner# Oracle_VM_VirtualBox_Extension_Pack-5.0.12-104815.vbox-extpack 776fca56fbSSascha Wildner!:ext gz/tgz/tpz/ipk/vbox-extpack/svgz 786fca56fbSSascha Wildner# FNAME/FCOMMENT bit implies file name/comment as iso-8859-1 text 796fca56fbSSascha Wildner>3 byte&0x18 >0 gzip compressed data 806fca56fbSSascha Wildner!:mime application/gzip 816fca56fbSSascha Wildner# gzipped tar, gzipped Abiword document 826fca56fbSSascha Wildner#!:mime application/x-compressed-tar 836fca56fbSSascha Wildner#!:mime application/x-abiword-compressed 846fca56fbSSascha Wildner#!:mime image/image/svg+xml-compressed 856fca56fbSSascha Wildner# kleopatra_splashscreen.svgz gzipped .svg 866fca56fbSSascha Wildner!:ext gz/tgz/tpz/zabw/svgz 876fca56fbSSascha Wildner>>0 use gzip-info 886fca56fbSSascha Wildner# size of the original (uncompressed) input data modulo 2^32 89c990e5baSDaniel Fojt>>-0 offset >48 90c990e5baSDaniel Fojt>>>-4 ulelong x \b, original size modulo 2^32 %u 91c990e5baSDaniel Fojt>>-0 offset <48 \b, truncated 926fca56fbSSascha Wildner# display information of gzip compressed files 936fca56fbSSascha Wildner0 name gzip-info 946fca56fbSSascha Wildner#>2 byte x THIS iS GZIP 95327e51cbSPeter Avalos>2 byte <8 \b, reserved method 96327e51cbSPeter Avalos>2 byte >8 \b, unknown method 97327e51cbSPeter Avalos>3 byte &0x01 \b, ASCII 98327e51cbSPeter Avalos>3 byte &0x02 \b, has CRC 99327e51cbSPeter Avalos>3 byte &0x04 \b, extra field 100327e51cbSPeter Avalos>3 byte&0xC =0x08 101327e51cbSPeter Avalos>>10 string x \b, was "%s" 102327e51cbSPeter Avalos>3 byte &0x10 \b, has comment 103e8af9738SPeter Avalos>3 byte &0x20 \b, encrypted 104e8af9738SPeter Avalos>4 ledate >0 \b, last modified: %s 105e8af9738SPeter Avalos>8 byte 2 \b, max compression 106e8af9738SPeter Avalos>8 byte 4 \b, max speed 107327e51cbSPeter Avalos>9 byte =0x00 \b, from FAT filesystem (MS-DOS, OS/2, NT) 108327e51cbSPeter Avalos>9 byte =0x01 \b, from Amiga 109327e51cbSPeter Avalos>9 byte =0x02 \b, from VMS 110327e51cbSPeter Avalos>9 byte =0x03 \b, from Unix 111327e51cbSPeter Avalos>9 byte =0x04 \b, from VM/CMS 112327e51cbSPeter Avalos>9 byte =0x05 \b, from Atari 113327e51cbSPeter Avalos>9 byte =0x06 \b, from HPFS filesystem (OS/2, NT) 114327e51cbSPeter Avalos>9 byte =0x07 \b, from MacOS 115327e51cbSPeter Avalos>9 byte =0x08 \b, from Z-System 116327e51cbSPeter Avalos>9 byte =0x09 \b, from CP/M 117327e51cbSPeter Avalos>9 byte =0x0A \b, from TOPS/20 118327e51cbSPeter Avalos>9 byte =0x0B \b, from NTFS filesystem (NT) 119327e51cbSPeter Avalos>9 byte =0x0C \b, from QDOS 120327e51cbSPeter Avalos>9 byte =0x0D \b, from Acorn RISCOS 1216fca56fbSSascha Wildner# size of the original (uncompressed) input data modulo 2^32 1226fca56fbSSascha Wildner#>-4 ulelong x \b, original size modulo 2^32 %u 1236fca56fbSSascha Wildner#ERROR: line 114: non zero offset 1048572 at level 1 124327e51cbSPeter Avalos 125327e51cbSPeter Avalos# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis 126327e51cbSPeter Avalos0 string \037\036 packed data 12779343712SPeter Avalos!:mime application/octet-stream 128327e51cbSPeter Avalos>2 belong >1 \b, %d characters originally 129327e51cbSPeter Avalos>2 belong =1 \b, %d character originally 130327e51cbSPeter Avalos# 131327e51cbSPeter Avalos# This magic number is byte-order-independent. 132327e51cbSPeter Avalos0 short 0x1f1f old packed data 13379343712SPeter Avalos!:mime application/octet-stream 134327e51cbSPeter Avalos 135327e51cbSPeter Avalos# XXX - why *two* entries for "compacted data", one of which is 136327e51cbSPeter Avalos# byte-order independent, and one of which is byte-order dependent? 137327e51cbSPeter Avalos# 138327e51cbSPeter Avalos0 short 0x1fff compacted data 13979343712SPeter Avalos!:mime application/octet-stream 140327e51cbSPeter Avalos# This string is valid for SunOS (BE) and a matching "short" is listed 141327e51cbSPeter Avalos# in the Ultrix (LE) magic file. 142327e51cbSPeter Avalos0 string \377\037 compacted data 14379343712SPeter Avalos!:mime application/octet-stream 144327e51cbSPeter Avalos0 short 0145405 huf output 14579343712SPeter Avalos!:mime application/octet-stream 146327e51cbSPeter Avalos 147327e51cbSPeter Avalos# bzip2 148327e51cbSPeter Avalos0 string BZh bzip2 compressed data 14979343712SPeter Avalos!:mime application/x-bzip2 150*3b9cdfa3SAntonio Huete Jimenez!:ext bz2 151327e51cbSPeter Avalos>3 byte >47 \b, block size = %c00k 152327e51cbSPeter Avalos 1536fca56fbSSascha Wildner# bzip a block-sorting file compressor 1546fca56fbSSascha Wildner# by Julian Seward <sewardj@cs.man.ac.uk> and others 1556fca56fbSSascha Wildner0 string BZ0 bzip compressed data 1566fca56fbSSascha Wildner!:mime application/x-bzip 1576fca56fbSSascha Wildner>3 byte >47 \b, block size = %c00k 1586fca56fbSSascha Wildner 15979343712SPeter Avalos# lzip 16079343712SPeter Avalos0 string LZIP lzip compressed data 16179343712SPeter Avalos!:mime application/x-lzip 16279343712SPeter Avalos>4 byte x \b, version: %d 16379343712SPeter Avalos 164327e51cbSPeter Avalos# squeeze and crunch 165327e51cbSPeter Avalos# Michael Haardt <michael@cantor.informatik.rwth-aachen.de> 166327e51cbSPeter Avalos0 beshort 0x76FF squeezed data, 167327e51cbSPeter Avalos>4 string x original name %s 168327e51cbSPeter Avalos0 beshort 0x76FE crunched data, 169327e51cbSPeter Avalos>2 string x original name %s 170327e51cbSPeter Avalos0 beshort 0x76FD LZH compressed data, 171327e51cbSPeter Avalos>2 string x original name %s 172327e51cbSPeter Avalos 173327e51cbSPeter Avalos# Freeze 174327e51cbSPeter Avalos0 string \037\237 frozen file 2.1 175327e51cbSPeter Avalos0 string \037\236 frozen file 1.0 (or gzip 0.5) 176327e51cbSPeter Avalos 177327e51cbSPeter Avalos# SCO compress -H (LZH) 178327e51cbSPeter Avalos0 string \037\240 SCO compress -H (LZH) data 179327e51cbSPeter Avalos 180327e51cbSPeter Avalos# European GSM 06.10 is a provisional standard for full-rate speech 181327e51cbSPeter Avalos# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse 182327e51cbSPeter Avalos# excitation/long term prediction) coding at 13 kbit/s. 183327e51cbSPeter Avalos# 184327e51cbSPeter Avalos# There's only a magic nibble (4 bits); that nibble repeats every 33 185327e51cbSPeter Avalos# bytes. This isn't suited for use, but maybe we can use it someday. 186327e51cbSPeter Avalos# 187327e51cbSPeter Avalos# This will cause very short GSM files to be declared as data and 188327e51cbSPeter Avalos# mismatches to be declared as data too! 189327e51cbSPeter Avalos#0 byte&0xF0 0xd0 data 190327e51cbSPeter Avalos#>33 byte&0xF0 0xd0 191327e51cbSPeter Avalos#>66 byte&0xF0 0xd0 192327e51cbSPeter Avalos#>99 byte&0xF0 0xd0 193327e51cbSPeter Avalos#>132 byte&0xF0 0xd0 GSM 06.10 compressed audio 194327e51cbSPeter Avalos 195327e51cbSPeter Avalos# lzop from <markus.oberhumer@jk.uni-linz.ac.at> 196327e51cbSPeter Avalos0 string \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a lzop compressed data 197327e51cbSPeter Avalos>9 beshort <0x0940 198327e51cbSPeter Avalos>>9 byte&0xf0 =0x00 - version 0. 199327e51cbSPeter Avalos>>9 beshort&0x0fff x \b%03x, 200327e51cbSPeter Avalos>>13 byte 1 LZO1X-1, 201327e51cbSPeter Avalos>>13 byte 2 LZO1X-1(15), 202327e51cbSPeter Avalos>>13 byte 3 LZO1X-999, 203327e51cbSPeter Avalos## >>22 bedate >0 last modified: %s, 204327e51cbSPeter Avalos>>14 byte =0x00 os: MS-DOS 205327e51cbSPeter Avalos>>14 byte =0x01 os: Amiga 206327e51cbSPeter Avalos>>14 byte =0x02 os: VMS 207327e51cbSPeter Avalos>>14 byte =0x03 os: Unix 208327e51cbSPeter Avalos>>14 byte =0x05 os: Atari 209327e51cbSPeter Avalos>>14 byte =0x06 os: OS/2 210327e51cbSPeter Avalos>>14 byte =0x07 os: MacOS 211327e51cbSPeter Avalos>>14 byte =0x0A os: Tops/20 212327e51cbSPeter Avalos>>14 byte =0x0B os: WinNT 213327e51cbSPeter Avalos>>14 byte =0x0E os: Win32 214327e51cbSPeter Avalos>9 beshort >0x0939 215327e51cbSPeter Avalos>>9 byte&0xf0 =0x00 - version 0. 216327e51cbSPeter Avalos>>9 byte&0xf0 =0x10 - version 1. 217327e51cbSPeter Avalos>>9 byte&0xf0 =0x20 - version 2. 218327e51cbSPeter Avalos>>9 beshort&0x0fff x \b%03x, 219327e51cbSPeter Avalos>>15 byte 1 LZO1X-1, 220327e51cbSPeter Avalos>>15 byte 2 LZO1X-1(15), 221327e51cbSPeter Avalos>>15 byte 3 LZO1X-999, 222327e51cbSPeter Avalos## >>25 bedate >0 last modified: %s, 223327e51cbSPeter Avalos>>17 byte =0x00 os: MS-DOS 224327e51cbSPeter Avalos>>17 byte =0x01 os: Amiga 225327e51cbSPeter Avalos>>17 byte =0x02 os: VMS 226327e51cbSPeter Avalos>>17 byte =0x03 os: Unix 227327e51cbSPeter Avalos>>17 byte =0x05 os: Atari 228327e51cbSPeter Avalos>>17 byte =0x06 os: OS/2 229327e51cbSPeter Avalos>>17 byte =0x07 os: MacOS 230327e51cbSPeter Avalos>>17 byte =0x0A os: Tops/20 231327e51cbSPeter Avalos>>17 byte =0x0B os: WinNT 232327e51cbSPeter Avalos>>17 byte =0x0E os: Win32 233327e51cbSPeter Avalos 234327e51cbSPeter Avalos# 4.3BSD-Quasijarus Strong Compression 2356fca56fbSSascha Wildner# https://minnie.tuhs.org/Quasijarus/compress.html 236327e51cbSPeter Avalos0 string \037\241 Quasijarus strong compressed data 237327e51cbSPeter Avalos 238327e51cbSPeter Avalos# From: Cory Dikkers <cdikkers@swbell.net> 239327e51cbSPeter Avalos0 string XPKF Amiga xpkf.library compressed data 240327e51cbSPeter Avalos0 string PP11 Power Packer 1.1 compressed data 241327e51cbSPeter Avalos0 string PP20 Power Packer 2.0 compressed data, 242327e51cbSPeter Avalos>4 belong 0x09090909 fast compression 243327e51cbSPeter Avalos>4 belong 0x090A0A0A mediocre compression 244327e51cbSPeter Avalos>4 belong 0x090A0B0B good compression 245327e51cbSPeter Avalos>4 belong 0x090A0C0C very good compression 246327e51cbSPeter Avalos>4 belong 0x090A0C0D best compression 247327e51cbSPeter Avalos 248327e51cbSPeter Avalos# 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at) 2496fca56fbSSascha Wildner# https://www.7-zip.org or DOC/7zFormat.txt 250327e51cbSPeter Avalos# 251327e51cbSPeter Avalos0 string 7z\274\257\047\034 7-zip archive data, 252327e51cbSPeter Avalos>6 byte x version %d 253327e51cbSPeter Avalos>7 byte x \b.%d 254e4d4ce0cSPeter Avalos!:mime application/x-7z-compressed 255c30bd091SSascha Wildner!:ext 7z/cb7 256327e51cbSPeter Avalos 25779343712SPeter Avalos# Type: LZMA 2589f86ab30SPeter Avalos0 lelong&0xffffff =0x5d 259e8af9738SPeter Avalos>12 leshort 0xff LZMA compressed data, 260e8af9738SPeter Avalos!:mime application/x-lzma 2619f86ab30SPeter Avalos>>5 lequad =0xffffffffffffffff streamed 2629f86ab30SPeter Avalos>>5 lequad !0xffffffffffffffff non-streamed, size %lld 263e8af9738SPeter Avalos>12 leshort 0 LZMA compressed data, 264e8af9738SPeter Avalos>>5 lequad =0xffffffffffffffff streamed 265e8af9738SPeter Avalos>>5 lequad !0xffffffffffffffff non-streamed, size %lld 26679343712SPeter Avalos 26779343712SPeter Avalos# http://tukaani.org/xz/xz-file-format.txt 268970935fdSSascha Wildner0 ustring \xFD7zXZ\x00 XZ compressed data, checksum 269614728caSSascha Wildner!:strength * 2 270614728caSSascha Wildner!:mime application/x-xz 271970935fdSSascha Wildner>7 byte&0xf 0x0 NONE 272970935fdSSascha Wildner>7 byte&0xf 0x1 CRC32 273970935fdSSascha Wildner>7 byte&0xf 0x4 CRC64 274970935fdSSascha Wildner>7 byte&0xf 0xa SHA-256 275970935fdSSascha Wildner 276ff91a668SPeter Avalos# https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt 277ff91a668SPeter Avalos0 string LRZI LRZIP compressed data 278ff91a668SPeter Avalos>4 byte x - version %d 279ff91a668SPeter Avalos>5 byte x \b.%d 280614728caSSascha Wildner>22 byte 1 \b, encrypted 281ff91a668SPeter Avalos!:mime application/x-lrzip 282ff91a668SPeter Avalos 2836fca56fbSSascha Wildner# https://fastcompression.blogspot.fi/2013/04/lz4-streaming-format-final.html 28482c5fa3eSPeter Avalos0 lelong 0x184d2204 LZ4 compressed data (v1.4+) 285e8af9738SPeter Avalos!:mime application/x-lz4 28682c5fa3eSPeter Avalos# Added by osm0sis@xda-developers.com 28782c5fa3eSPeter Avalos0 lelong 0x184c2103 LZ4 compressed data (v1.0-v1.3) 28882c5fa3eSPeter Avalos!:mime application/x-lz4 28982c5fa3eSPeter Avalos0 lelong 0x184c2102 LZ4 compressed data (v0.1-v0.9) 290e8af9738SPeter Avalos!:mime application/x-lz4 291e8af9738SPeter Avalos 292c30bd091SSascha Wildner# Zstandard/LZ4 skippable frames 293c30bd091SSascha Wildner# https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md 294c30bd091SSascha Wildner0 lelong&0xFFFFFFF0 0x184D2A50 295c30bd091SSascha Wildner>(4.l+8) indirect x 296c30bd091SSascha Wildner 297c30bd091SSascha Wildner# Zstandard Dictionary ID subroutine 298c30bd091SSascha Wildner0 name zstd-dictionary-id 299c30bd091SSascha Wildner# Single Segment = True 300c30bd091SSascha Wildner>0 byte &0x20 \b, Dictionary ID: 301c30bd091SSascha Wildner>>0 byte&0x03 0 None 302c30bd091SSascha Wildner>>0 byte&0x03 1 303c30bd091SSascha Wildner>>>1 byte x %u 304c30bd091SSascha Wildner>>0 byte&0x03 2 305c30bd091SSascha Wildner>>>1 leshort x %u 306c30bd091SSascha Wildner>>0 byte&0x03 3 307c30bd091SSascha Wildner>>>1 lelong x %u 308c30bd091SSascha Wildner# Single Segment = False 309c30bd091SSascha Wildner>0 byte ^0x20 \b, Dictionary ID: 310c30bd091SSascha Wildner>>0 byte&0x03 0 None 311c30bd091SSascha Wildner>>0 byte&0x03 1 312c30bd091SSascha Wildner>>>2 byte x %u 313c30bd091SSascha Wildner>>0 byte&0x03 2 314c30bd091SSascha Wildner>>>2 leshort x %u 315c30bd091SSascha Wildner>>0 byte&0x03 3 316c30bd091SSascha Wildner>>>2 lelong x %u 317c30bd091SSascha Wildner 318c30bd091SSascha Wildner# Zstandard compressed data 319c30bd091SSascha Wildner# https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md 320c30bd091SSascha Wildner0 lelong 0xFD2FB522 Zstandard compressed data (v0.2) 3216fca56fbSSascha Wildner!:mime application/zstd 322c30bd091SSascha Wildner0 lelong 0xFD2FB523 Zstandard compressed data (v0.3) 3236fca56fbSSascha Wildner!:mime application/zstd 324c30bd091SSascha Wildner0 lelong 0xFD2FB524 Zstandard compressed data (v0.4) 3256fca56fbSSascha Wildner!:mime application/zstd 326c30bd091SSascha Wildner0 lelong 0xFD2FB525 Zstandard compressed data (v0.5) 3276fca56fbSSascha Wildner!:mime application/zstd 328c30bd091SSascha Wildner0 lelong 0xFD2FB526 Zstandard compressed data (v0.6) 3296fca56fbSSascha Wildner!:mime application/zstd 330c30bd091SSascha Wildner0 lelong 0xFD2FB527 Zstandard compressed data (v0.7) 3316fca56fbSSascha Wildner!:mime application/zstd 332c30bd091SSascha Wildner>4 use zstd-dictionary-id 333c30bd091SSascha Wildner0 lelong 0xFD2FB528 Zstandard compressed data (v0.8+) 3346fca56fbSSascha Wildner!:mime application/zstd 335c30bd091SSascha Wildner>4 use zstd-dictionary-id 336c30bd091SSascha Wildner 337c30bd091SSascha Wildner# https://github.com/facebook/zstd/blob/dev/zstd_compression_format.md 338c30bd091SSascha Wildner0 lelong 0xEC30A437 Zstandard dictionary 3396fca56fbSSascha Wildner!:mime application/x-std-dictionary 340c30bd091SSascha Wildner>4 lelong x (ID %u) 341c30bd091SSascha Wildner 342327e51cbSPeter Avalos# AFX compressed files (Wolfram Kleff) 343327e51cbSPeter Avalos2 string -afx- AFX compressed file data 344327e51cbSPeter Avalos 345327e51cbSPeter Avalos# Supplementary magic data for the file(1) command to support 346327e51cbSPeter Avalos# rzip(1). The format is described in magic(5). 347327e51cbSPeter Avalos# 348327e51cbSPeter Avalos# Copyright (C) 2003 by Andrew Tridgell. You may do whatever you want with 349327e51cbSPeter Avalos# this file. 350327e51cbSPeter Avalos# 351327e51cbSPeter Avalos0 string RZIP rzip compressed data 352327e51cbSPeter Avalos>4 byte x - version %d 353327e51cbSPeter Avalos>5 byte x \b.%d 354327e51cbSPeter Avalos>6 belong x (%d bytes) 35579343712SPeter Avalos 356e4d4ce0cSPeter Avalos0 string ArC\x01 FreeArc archive <http://freearc.org> 357e4d4ce0cSPeter Avalos 358e4d4ce0cSPeter Avalos# Type: DACT compressed files 359e4d4ce0cSPeter Avalos0 long 0x444354C3 DACT compressed data 360e4d4ce0cSPeter Avalos>4 byte >-1 (version %i. 361e4d4ce0cSPeter Avalos>5 byte >-1 %i. 362e4d4ce0cSPeter Avalos>6 byte >-1 %i) 363e4d4ce0cSPeter Avalos>7 long >0 , original size: %i bytes 364e4d4ce0cSPeter Avalos>15 long >30 , block size: %i bytes 365e8af9738SPeter Avalos 366e8af9738SPeter Avalos# Valve Pack (VPK) files 367e8af9738SPeter Avalos0 lelong 0x55aa1234 Valve Pak file 368e8af9738SPeter Avalos>0x4 lelong x \b, version %u 369e8af9738SPeter Avalos>0x8 lelong x \b, %u entries 370e8af9738SPeter Avalos 37182c5fa3eSPeter Avalos# Snappy framing format 3726fca56fbSSascha Wildner# https://code.google.com/p/snappy/source/browse/trunk/framing_format.txt 37382c5fa3eSPeter Avalos0 string \377\006\0\0sNaPpY snappy framed data 37482c5fa3eSPeter Avalos!:mime application/x-snappy-framed 37582c5fa3eSPeter Avalos 3766fca56fbSSascha Wildner# qpress, https://www.quicklz.com/ 37782c5fa3eSPeter Avalos0 string qpress10 qpress compressed data 37882c5fa3eSPeter Avalos!:mime application/x-qpress 37982c5fa3eSPeter Avalos 38082c5fa3eSPeter Avalos# Zlib https://www.ietf.org/rfc/rfc6713.txt 381c30bd091SSascha Wildner0 string/b x 382c30bd091SSascha Wildner>0 beshort%31 =0 383c30bd091SSascha Wildner>>0 byte&0xf =8 384c30bd091SSascha Wildner>>>0 byte&0x80 =0 zlib compressed data 38582c5fa3eSPeter Avalos!:mime application/zlib 3866fca56fbSSascha Wildner 3876fca56fbSSascha Wildner# BWC compression 3886fca56fbSSascha Wildner0 string BWC 3896fca56fbSSascha Wildner>3 byte 0 BWC compressed data 3906fca56fbSSascha Wildner 3916fca56fbSSascha Wildner# UCL compression 3926fca56fbSSascha Wildner0 bequad 0x00e955434cff011a UCL compressed data 3936fca56fbSSascha Wildner 3946fca56fbSSascha Wildner# Softlib archive 3956fca56fbSSascha Wildner0 string SLIB Softlib archive 3966fca56fbSSascha Wildner>4 leshort x \b, version %d 3976fca56fbSSascha Wildner>6 leshort x (contains %d files) 3986fca56fbSSascha Wildner 3996fca56fbSSascha Wildner# URL: https://github.com/lzfse/lzfse/blob/master/src/lzfse_internal.h#L276 4006fca56fbSSascha Wildner# From: Eric Hall <eric.hall@darkart.com> 4016fca56fbSSascha Wildner0 string bvx- lzfse encoded, no compression 4026fca56fbSSascha Wildner0 string bvx1 lzfse compressed, uncompressed tables 4036fca56fbSSascha Wildner0 string bvx2 lzfse compressed, compressed tables 4046fca56fbSSascha Wildner0 string bvxn lzfse encoded, lzvn compressed 405c990e5baSDaniel Fojt 406c990e5baSDaniel Fojt# pcxLib.exe compression program 407c990e5baSDaniel Fojt# http://www.shikadi.net/moddingwiki/PCX_Library 408c990e5baSDaniel Fojt0 string/b pcxLib 409c990e5baSDaniel Fojt>0x0A string/b Copyright\020(c)\020Genus\020Microprogramming,\020Inc. pcxLib compressed 410