1f72f8299SJan Lentfer 2327e51cbSPeter Avalos#------------------------------------------------------------------------------ 3*614728caSSascha Wildner# $File: apple,v 1.45 2021/04/26 15:56:00 christos Exp $ 4327e51cbSPeter Avalos# apple: file(1) magic for Apple file formats 5327e51cbSPeter Avalos# 6e4d4ce0cSPeter Avalos0 search/1/t FiLeStArTfIlEsTaRt binscii (apple ][) text 7327e51cbSPeter Avalos0 string \x0aGL Binary II (apple ][) data 8327e51cbSPeter Avalos0 string \x76\xff Squeezed (apple ][) data 9327e51cbSPeter Avalos0 string NuFile NuFile archive (apple ][) data 10327e51cbSPeter Avalos0 string N\xf5F\xe9l\xe5 NuFile archive (apple ][) data 11327e51cbSPeter Avalos0 belong 0x00051600 AppleSingle encoded Macintosh file 12327e51cbSPeter Avalos0 belong 0x00051607 AppleDouble encoded Macintosh file 13327e51cbSPeter Avalos 146fca56fbSSascha Wildner# Type: Apple Emulator WOZ format 156fca56fbSSascha Wildner# From: Greg Wildman <greg@apple2.org.za> 166fca56fbSSascha Wildner# Ref: https://applesaucefdc.com/woz/reference/ 176fca56fbSSascha Wildner# Ref: https://applesaucefdc.com/woz/reference2/ 186fca56fbSSascha Wildner# 196fca56fbSSascha Wildner# Note: The following test are mostly identical. I would rather not 206fca56fbSSascha Wildner# use a regex to identify the WOZ format number. 216fca56fbSSascha Wildner0 string WOZ1 226fca56fbSSascha Wildner>4 string \xFF\x0A\x0D\x0A Apple ][ WOZ 1.0 Disk Image 236fca56fbSSascha Wildner>12 string INFO 246fca56fbSSascha Wildner>>21 byte 01 \b, 5.25 inch 256fca56fbSSascha Wildner>>21 byte 02 \b, 3.5 inch 266fca56fbSSascha Wildner>>22 byte 01 \b, write protected 276fca56fbSSascha Wildner>>23 byte 01 \b, cross track synchronized 286fca56fbSSascha Wildner>>25 string/T x \b, %.32s 296fca56fbSSascha Wildner0 string WOZ2 306fca56fbSSascha Wildner>4 string \xFF\x0A\x0D\x0A Apple ][ WOZ 2.0 Disk Image 316fca56fbSSascha Wildner>12 string INFO 326fca56fbSSascha Wildner>>21 byte 01 \b, 5.25 inch 336fca56fbSSascha Wildner>>21 byte 02 \b, 3.5 inch 346fca56fbSSascha Wildner>>22 byte 01 \b, write protected 356fca56fbSSascha Wildner>>23 byte 01 \b, cross track synchronized 366fca56fbSSascha Wildner>>25 string/T x \b, %.32s 376fca56fbSSascha Wildner 386fca56fbSSascha Wildner# Type: Apple Emulator disk images 396fca56fbSSascha Wildner# From: Greg Wildman <greg@apple2.org.za> 406fca56fbSSascha Wildner# ProDOS boot loader? 416fca56fbSSascha Wildner0 string \x01\x38\xB0\x03\x4C Apple ProDOS Image 426fca56fbSSascha Wildner# Detect Volume Directory block ($02) 436fca56fbSSascha Wildner>0x400 string \x00\x00\x03\x00 446fca56fbSSascha Wildner>>0x404 byte &0xF0 456fca56fbSSascha Wildner>>>0x405 string x \b, Volume /%s 466fca56fbSSascha Wildner>>>0x429 leshort x \b, %u Blocks 476fca56fbSSascha Wildner# ProDOS ordered ? 486fca56fbSSascha Wildner>0xb00 string \x00\x00\x03\x00 496fca56fbSSascha Wildner>>0xb04 byte &0xF0 506fca56fbSSascha Wildner>>>0xb05 string x \b, Volume /%s 516fca56fbSSascha Wildner>>>0xb29 leshort x \b, %u Blocks 526fca56fbSSascha Wildner# 536fca56fbSSascha Wildner# DOS3.3 boot loader? 546fca56fbSSascha Wildner0 string \x01\xA5\x27\xC9\x09\xD0\x18\xA5\x2B 556fca56fbSSascha Wildner>0x11001 string \x11\x0F\x03 Apple DOS 3.3 Image 566fca56fbSSascha Wildner>>0x11006 byte x \b, Volume %u 576fca56fbSSascha Wildner>>0x11034 byte x \b, %u Tracks 586fca56fbSSascha Wildner>>0x11035 byte x \b, %u Sectors 596fca56fbSSascha Wildner>>0x11036 leshort x \b, %u bytes per sector 606fca56fbSSascha Wildner# DOS3.2 ? 616fca56fbSSascha Wildner>0x11001 string \x11\x0C\x02 Apple DOS 3.2 Image 626fca56fbSSascha Wildner>>0x11006 byte x \b, Volume %u 636fca56fbSSascha Wildner>>0x11034 byte x \b, %u Tracks 646fca56fbSSascha Wildner>>0x11035 byte x \b, %u Sectors 656fca56fbSSascha Wildner>>0x11036 leshort x \b, %u bytes per sector 666fca56fbSSascha Wildner# DOS3.1 ? 676fca56fbSSascha Wildner>0x11001 string \x11\x0C\x01 686fca56fbSSascha Wildner>>0x11c00 string \x00\x11\x0B Apple DOS 3.1 Image 696fca56fbSSascha Wildner# 706fca56fbSSascha Wildner# Pascal boot loader? 716fca56fbSSascha Wildner0 string \x01\xE0\x60\xF0\x03\x4C\xE3\x08\xAD 726fca56fbSSascha Wildner>0xd6 pstring SYSTEM.APPLE 736fca56fbSSascha Wildner>>0xb00 leshort 0x0000 746fca56fbSSascha Wildner>>>0xb04 leshort 0x0000 Apple Pascal Image 756fca56fbSSascha Wildner>>>>0xb06 pstring x \b, Volume %s: 766fca56fbSSascha Wildner>>>>0xb0e leshort x \b, %u Blocks 776fca56fbSSascha Wildner>>>>0xb10 leshort x \b, %u Files 786fca56fbSSascha Wildner# 796fca56fbSSascha Wildner# Diversi Dos boot loader? 806fca56fbSSascha Wildner0 string \x01\xA8\xAD\x81\xC0\xEE\x09\x08\xAD 816fca56fbSSascha Wildner>0x11001 string \x11\x0F\x03 Apple Diversi Dos Image 826fca56fbSSascha Wildner>>0x11006 byte x \b, Volume %u 836fca56fbSSascha Wildner>>0x11034 byte x \b, %u Tracks 846fca56fbSSascha Wildner>>0x11035 byte x \b, %u Sectors 856fca56fbSSascha Wildner>>0x11036 leshort x \b, %u bytes per sector 866fca56fbSSascha Wildner 8779343712SPeter Avalos# Type: Apple Emulator 2IMG format 8879343712SPeter Avalos# From: Radek Vokal <rvokal@redhat.com> 896fca56fbSSascha Wildner# Update: Greg Wildman <greg@apple2.org.za> 9079343712SPeter Avalos0 string 2IMG Apple ][ 2IMG Disk Image 916fca56fbSSascha Wildner>4 clear x 9279343712SPeter Avalos>4 string XGS! \b, XGS 9379343712SPeter Avalos>4 string CTKG \b, Catakig 9479343712SPeter Avalos>4 string ShIm \b, Sheppy's ImageMaker 956fca56fbSSascha Wildner>4 string SHEP \b, Sheppy's ImageMaker 9679343712SPeter Avalos>4 string WOOF \b, Sweet 16 9779343712SPeter Avalos>4 string B2TR \b, Bernie ][ the Rescue 986fca56fbSSascha Wildner>4 string \!nfc \b, ASIMOV2 996fca56fbSSascha Wildner>4 string \>BD\< \b, Brutal Deluxe's Cadius 1006fca56fbSSascha Wildner>4 string CdrP \b, CiderPress 1016fca56fbSSascha Wildner>4 string Vi][ \b, Virtual ][ 1026fca56fbSSascha Wildner>4 string PRFS \b, ProFUSE 1036fca56fbSSascha Wildner>4 string FISH \b, FishWings 1046fca56fbSSascha Wildner>4 string RVLW \b, Revival for Windows 1056fca56fbSSascha Wildner>4 default x 1066fca56fbSSascha Wildner>>4 string x \b, Creator tag "%-4.4s" 10779343712SPeter Avalos>0xc byte 00 \b, DOS 3.3 sector order 10879343712SPeter Avalos>>0x10 byte 00 \b, Volume 254 10979343712SPeter Avalos>>0x10 byte&0x7f x \b, Volume %u 11079343712SPeter Avalos>0xc byte 01 \b, ProDOS sector order 1116fca56fbSSascha Wildner# Detect Volume Directory block ($02) + 2mg header offset 1126fca56fbSSascha Wildner>>0x440 string \x00\x00\x03\x00 1136fca56fbSSascha Wildner>>>0x444 byte &0xF0 1146fca56fbSSascha Wildner>>>>0x445 string x \b, Volume /%s 1156fca56fbSSascha Wildner>>>>0x469 leshort x \b, %u Blocks 11679343712SPeter Avalos>0xc byte 02 \b, NIB data 11779343712SPeter Avalos 118327e51cbSPeter Avalos# magic for Newton PDA package formats 119327e51cbSPeter Avalos# from Ruda Moura <ruda@helllabs.org> 120327e51cbSPeter Avalos0 string package0 Newton package, NOS 1.x, 121327e51cbSPeter Avalos>12 belong &0x80000000 AutoRemove, 122327e51cbSPeter Avalos>12 belong &0x40000000 CopyProtect, 123327e51cbSPeter Avalos>12 belong &0x10000000 NoCompression, 124327e51cbSPeter Avalos>12 belong &0x04000000 Relocation, 125327e51cbSPeter Avalos>12 belong &0x02000000 UseFasterCompression, 126327e51cbSPeter Avalos>16 belong x version %d 127327e51cbSPeter Avalos 128327e51cbSPeter Avalos0 string package1 Newton package, NOS 2.x, 129327e51cbSPeter Avalos>12 belong &0x80000000 AutoRemove, 130327e51cbSPeter Avalos>12 belong &0x40000000 CopyProtect, 131327e51cbSPeter Avalos>12 belong &0x10000000 NoCompression, 132327e51cbSPeter Avalos>12 belong &0x04000000 Relocation, 133327e51cbSPeter Avalos>12 belong &0x02000000 UseFasterCompression, 134327e51cbSPeter Avalos>16 belong x version %d 135327e51cbSPeter Avalos 136327e51cbSPeter Avalos0 string package4 Newton package, 137327e51cbSPeter Avalos>8 byte 8 NOS 1.x, 138327e51cbSPeter Avalos>8 byte 9 NOS 2.x, 139327e51cbSPeter Avalos>12 belong &0x80000000 AutoRemove, 140327e51cbSPeter Avalos>12 belong &0x40000000 CopyProtect, 141327e51cbSPeter Avalos>12 belong &0x10000000 NoCompression, 142327e51cbSPeter Avalos 143327e51cbSPeter Avalos# The following entries for the Apple II are for files that have 144327e51cbSPeter Avalos# been transferred as raw binary data from an Apple, without having 145327e51cbSPeter Avalos# been encapsulated by any of the above archivers. 146327e51cbSPeter Avalos# 147327e51cbSPeter Avalos# In general, Apple II formats are hard to identify because Apple DOS 148327e51cbSPeter Avalos# and especially Apple ProDOS have strong typing in the file system and 149327e51cbSPeter Avalos# therefore programmers never felt much need to include type information 150327e51cbSPeter Avalos# in the files themselves. 151327e51cbSPeter Avalos# 152327e51cbSPeter Avalos# Eric Fischer <enf@pobox.com> 153327e51cbSPeter Avalos 154327e51cbSPeter Avalos# AppleWorks word processor: 155c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/AppleWorks 156c30bd091SSascha Wildner# Reference: http://www.gno.org/pub/apple2/doc/apple/filetypes/ftn.1a.xxxx 157c30bd091SSascha Wildner# Update: Joerg Jenderek 158c30bd091SSascha Wildner# NOTE: 159327e51cbSPeter Avalos# The "O" is really the magic number, but that's so common that it's 160327e51cbSPeter Avalos# necessary to check the tab stops that follow it to avoid false positives. 161c30bd091SSascha Wildner# and/or look for unused bits of booleans bytes like zoom, paginated, mail merge 162c30bd091SSascha Wildner# the newer AppleWorks is from claris with extension CWK 163c30bd091SSascha Wildner4 string O 164c30bd091SSascha Wildner# test for unused bits of zoom- , paginated-boolean bytes 165c30bd091SSascha Wildner>84 ubequad ^0x00Fe00000000Fe00 166c30bd091SSascha Wildner# look for tabstop definitions "=" no tab, "|" no tab 167c30bd091SSascha Wildner# "<" left tab,"^" center tab,">" right tab, "." decimal tab, 168c30bd091SSascha Wildner# unofficial "!" other , "\x8a" other 169c30bd091SSascha Wildner# official only if SFMinVers is nonzero 170c30bd091SSascha Wildner>>5 regex/s [=.<>|!^\x8a]{79} AppleWorks Word Processor 171c30bd091SSascha Wildner# AppleWorks Word Processor File (Apple II) 172c30bd091SSascha Wildner# ./apple (version 5.25) labeled the entry as "AppleWorks word processor data" 173c30bd091SSascha Wildner# application/x-appleworks is mime type for claris version with cwk extension 174c30bd091SSascha Wildner!:mime application/x-appleworks3 175c30bd091SSascha Wildner# http://home.earthlink.net/~hughhood/appleiiworksenvoy/ 176c30bd091SSascha Wildner# ('p' + 1-byte ProDOS File Type + 2-byte ProDOS Aux Type') 177c30bd091SSascha Wildner# $70 $1A $F8 $FF is this the apple type ? 1786fca56fbSSascha Wildner#:apple pdosp^Z\xf8\xff 179c30bd091SSascha Wildner!:ext awp 180c30bd091SSascha Wildner# minimum version needed to read this files. SFMinVers (0 , 30~3.0 ) 181c30bd091SSascha Wildner>>>183 ubyte 30 3.0 182c30bd091SSascha Wildner>>>183 ubyte !30 183*614728caSSascha Wildner>>>>183 ubyte !0 %#x 184c30bd091SSascha Wildner# usual tabstop start sequence "=====<" 185c30bd091SSascha Wildner>>>5 string x \b, tabstop ruler "%6.6s" 186c30bd091SSascha Wildner# tabstop ruler 187c30bd091SSascha Wildner#>>>5 string >\0 \b, tabstops "%-79s" 188c30bd091SSascha Wildner# zoom switch 189c30bd091SSascha Wildner>>>85 byte&0x01 >0 \b, zoomed 190c30bd091SSascha Wildner# whether paginated 191c30bd091SSascha Wildner>>>90 byte&0x01 >0 \b, paginated 192c30bd091SSascha Wildner# contains any mail-merge commands 193c30bd091SSascha Wildner>>>92 byte&0x01 >0 \b, with mail merge 194c30bd091SSascha Wildner# left margin in 1/10 inches ( normally 0 or 10 ) 195c30bd091SSascha Wildner>>>91 ubyte >0 196c30bd091SSascha Wildner>>>>91 ubyte x \b, %d/10 inch left margin 197327e51cbSPeter Avalos 198327e51cbSPeter Avalos# AppleWorks database: 199327e51cbSPeter Avalos# 200327e51cbSPeter Avalos# This isn't really a magic number, but it's the closest thing to one 201327e51cbSPeter Avalos# that I could find. The 1 and 2 really mean "order in which you defined 202327e51cbSPeter Avalos# categories" and "left to right, top to bottom," respectively; the D and R 203327e51cbSPeter Avalos# mean that the cursor should move either down or right when you press Return. 204327e51cbSPeter Avalos 205327e51cbSPeter Avalos#30 string \x01D AppleWorks database data 206327e51cbSPeter Avalos#30 string \x02D AppleWorks database data 207327e51cbSPeter Avalos#30 string \x01R AppleWorks database data 208327e51cbSPeter Avalos#30 string \x02R AppleWorks database data 209327e51cbSPeter Avalos 210327e51cbSPeter Avalos# AppleWorks spreadsheet: 211327e51cbSPeter Avalos# 212327e51cbSPeter Avalos# Likewise, this isn't really meant as a magic number. The R or C means 213327e51cbSPeter Avalos# row- or column-order recalculation; the A or M means automatic or manual 214327e51cbSPeter Avalos# recalculation. 215327e51cbSPeter Avalos 216327e51cbSPeter Avalos#131 string RA AppleWorks spreadsheet data 217327e51cbSPeter Avalos#131 string RM AppleWorks spreadsheet data 218327e51cbSPeter Avalos#131 string CA AppleWorks spreadsheet data 219327e51cbSPeter Avalos#131 string CM AppleWorks spreadsheet data 220327e51cbSPeter Avalos 221327e51cbSPeter Avalos# Applesoft BASIC: 222327e51cbSPeter Avalos# 223327e51cbSPeter Avalos# This is incredibly sloppy, but will be true if the program was 224327e51cbSPeter Avalos# written at its usual memory location of 2048 and its first line 225327e51cbSPeter Avalos# number is less than 256. Yuck. 226e8af9738SPeter Avalos# update by Joerg Jenderek at Feb 2013 227327e51cbSPeter Avalos 228e8af9738SPeter Avalos# GRR: this test is still too general as it catches also Gujin BOOT144.SYS (0xfa080000) 229e8af9738SPeter Avalos#0 belong&0xff00ff 0x80000 Applesoft BASIC program data 230e8af9738SPeter Avalos0 belong&0x00ff00ff 0x00080000 231e8af9738SPeter Avalos# assuming that line number must be positive 232e8af9738SPeter Avalos>2 leshort >0 Applesoft BASIC program data, first line number %d 233327e51cbSPeter Avalos#>2 leshort x \b, first line number %d 234327e51cbSPeter Avalos 235327e51cbSPeter Avalos# ORCA/EZ assembler: 236327e51cbSPeter Avalos# 237327e51cbSPeter Avalos# This will not identify ORCA/M source files, since those have 238327e51cbSPeter Avalos# some sort of date code instead of the two zero bytes at 6 and 7 239327e51cbSPeter Avalos# XXX Conflicts with ELF 240327e51cbSPeter Avalos#4 belong&0xff00ffff 0x01000000 ORCA/EZ assembler source data 241327e51cbSPeter Avalos#>5 byte x \b, build number %d 242327e51cbSPeter Avalos 243327e51cbSPeter Avalos# Broderbund Fantavision 244327e51cbSPeter Avalos# 245327e51cbSPeter Avalos# I don't know what these values really mean, but they seem to recur. 246327e51cbSPeter Avalos# Will they cause too many conflicts? 247327e51cbSPeter Avalos 248327e51cbSPeter Avalos# Probably :-) 249327e51cbSPeter Avalos#2 belong&0xFF00FF 0x040008 Fantavision movie data 250327e51cbSPeter Avalos 251327e51cbSPeter Avalos# Some attempts at images. 252327e51cbSPeter Avalos# 253327e51cbSPeter Avalos# These are actually just bit-for-bit dumps of the frame buffer, so 254327e51cbSPeter Avalos# there's really no reasonably way to distinguish them except for their 255327e51cbSPeter Avalos# address (if preserved) -- 8192 or 16384 -- and their length -- 8192 256327e51cbSPeter Avalos# or, occasionally, 8184. 257327e51cbSPeter Avalos# 258327e51cbSPeter Avalos# Nevertheless this will manage to catch a lot of images that happen 259327e51cbSPeter Avalos# to have a solid-colored line at the bottom of the screen. 260327e51cbSPeter Avalos 26179343712SPeter Avalos# GRR: Magic too weak 26279343712SPeter Avalos#8144 string \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F Apple II image with white background 26379343712SPeter Avalos#8144 string \x55\x2A\x55\x2A\x55\x2A\x55\x2A Apple II image with purple background 26479343712SPeter Avalos#8144 string \x2A\x55\x2A\x55\x2A\x55\x2A\x55 Apple II image with green background 26579343712SPeter Avalos#8144 string \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA Apple II image with blue background 26679343712SPeter Avalos#8144 string \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5 Apple II image with orange background 267327e51cbSPeter Avalos 268327e51cbSPeter Avalos# Beagle Bros. Apple Mechanic fonts 269327e51cbSPeter Avalos 270327e51cbSPeter Avalos0 belong&0xFF00FFFF 0x6400D000 Apple Mechanic font 271327e51cbSPeter Avalos 272327e51cbSPeter Avalos# Apple Universal Disk Image Format (UDIF) - dmg files. 273327e51cbSPeter Avalos# From Johan Gade. 274327e51cbSPeter Avalos# These entries are disabled for now until we fix the following issues. 275327e51cbSPeter Avalos# 276327e51cbSPeter Avalos# Note there might be some problems with the "VAX COFF executable" 277327e51cbSPeter Avalos# entry. Note this entry should be placed before the mac filesystem section, 278327e51cbSPeter Avalos# particularly the "Apple Partition data" entry. 279327e51cbSPeter Avalos# 280327e51cbSPeter Avalos# The intended meaning of these tests is, that the file is only of the 281327e51cbSPeter Avalos# specified type if both of the lines are correct - i.e. if the first 282327e51cbSPeter Avalos# line matches and the second doesn't then it is not of that type. 283327e51cbSPeter Avalos# 284327e51cbSPeter Avalos#0 long 0x7801730d 285327e51cbSPeter Avalos#>4 long 0x62626060 UDIF read-only zlib-compressed image (UDZO) 286327e51cbSPeter Avalos# 287327e51cbSPeter Avalos# Note that this entry is recognized correctly by the "Apple Partition 288327e51cbSPeter Avalos# data" entry - however since this entry is more specific - this 289327e51cbSPeter Avalos# information seems to be more useful. 290327e51cbSPeter Avalos#0 long 0x45520200 291327e51cbSPeter Avalos#>0x410 string disk\ image UDIF read/write image (UDRW) 292327e51cbSPeter Avalos 293327e51cbSPeter Avalos# From: Toby Peterson <toby@apple.com> 294327e51cbSPeter Avalos0 string bplist00 Apple binary property list 295327e51cbSPeter Avalos 296327e51cbSPeter Avalos# Apple binary property list (bplist) 297327e51cbSPeter Avalos# Assumes version bytes are hex. 298327e51cbSPeter Avalos# Provides content hints for version 0 files. Assumes that the root 299327e51cbSPeter Avalos# object is the first object (true for CoreFoundation implementation). 300327e51cbSPeter Avalos# From: David Remahl <dremahl@apple.com> 301327e51cbSPeter Avalos0 string bplist 302*614728caSSascha Wildner>6 byte x \bCoreFoundation binary property list data, version %#c 303327e51cbSPeter Avalos>>7 byte x \b%c 304327e51cbSPeter Avalos>6 string 00 \b 305327e51cbSPeter Avalos>>8 byte&0xF0 0x00 \b 306327e51cbSPeter Avalos>>>8 byte&0x0F 0x00 \b, root type: null 307327e51cbSPeter Avalos>>>8 byte&0x0F 0x08 \b, root type: false boolean 308327e51cbSPeter Avalos>>>8 byte&0x0F 0x09 \b, root type: true boolean 309327e51cbSPeter Avalos>>8 byte&0xF0 0x10 \b, root type: integer 310327e51cbSPeter Avalos>>8 byte&0xF0 0x20 \b, root type: real 311327e51cbSPeter Avalos>>8 byte&0xF0 0x30 \b, root type: date 312327e51cbSPeter Avalos>>8 byte&0xF0 0x40 \b, root type: data 313327e51cbSPeter Avalos>>8 byte&0xF0 0x50 \b, root type: ascii string 314327e51cbSPeter Avalos>>8 byte&0xF0 0x60 \b, root type: unicode string 315327e51cbSPeter Avalos>>8 byte&0xF0 0x80 \b, root type: uid (CORRUPT) 316327e51cbSPeter Avalos>>8 byte&0xF0 0xa0 \b, root type: array 317327e51cbSPeter Avalos>>8 byte&0xF0 0xd0 \b, root type: dictionary 318327e51cbSPeter Avalos 319327e51cbSPeter Avalos# Apple/NeXT typedstream data 320327e51cbSPeter Avalos# Serialization format used by NeXT and Apple for various 321327e51cbSPeter Avalos# purposes in YellowStep/Cocoa, including some nib files. 322327e51cbSPeter Avalos# From: David Remahl <dremahl@apple.com> 323327e51cbSPeter Avalos2 string typedstream NeXT/Apple typedstream data, big endian 32482c5fa3eSPeter Avalos>0 byte x \b, version %d 325327e51cbSPeter Avalos>0 byte <5 \b 326327e51cbSPeter Avalos>>13 byte 0x81 \b 32782c5fa3eSPeter Avalos>>>14 ubeshort x \b, system %d 328327e51cbSPeter Avalos2 string streamtyped NeXT/Apple typedstream data, little endian 32982c5fa3eSPeter Avalos>0 byte x \b, version %d 330327e51cbSPeter Avalos>0 byte <5 \b 331327e51cbSPeter Avalos>>13 byte 0x81 \b 33282c5fa3eSPeter Avalos>>>14 uleshort x \b, system %d 333327e51cbSPeter Avalos 334327e51cbSPeter Avalos#------------------------------------------------------------------------------ 335327e51cbSPeter Avalos# CAF: Apple CoreAudio File Format 336327e51cbSPeter Avalos# 337327e51cbSPeter Avalos# Container format for high-end audio purposes. 338327e51cbSPeter Avalos# From: David Remahl <dremahl@apple.com> 339327e51cbSPeter Avalos# 340327e51cbSPeter Avalos0 string caff CoreAudio Format audio file 341327e51cbSPeter Avalos>4 beshort <10 version %d 342327e51cbSPeter Avalos>6 beshort x 343327e51cbSPeter Avalos 344327e51cbSPeter Avalos 345327e51cbSPeter Avalos#------------------------------------------------------------------------------ 346327e51cbSPeter Avalos# Keychain database files 347327e51cbSPeter Avalos0 string kych Mac OS X Keychain File 348327e51cbSPeter Avalos 349327e51cbSPeter Avalos#------------------------------------------------------------------------------ 350327e51cbSPeter Avalos# Code Signing related file types 351327e51cbSPeter Avalos0 belong 0xfade0c00 Mac OS X Code Requirement 352327e51cbSPeter Avalos>8 belong 1 (opExpr) 353327e51cbSPeter Avalos>4 belong x - %d bytes 354327e51cbSPeter Avalos 355327e51cbSPeter Avalos0 belong 0xfade0c01 Mac OS X Code Requirement Set 356327e51cbSPeter Avalos>8 belong >1 containing %d items 357327e51cbSPeter Avalos>4 belong x - %d bytes 358327e51cbSPeter Avalos 359327e51cbSPeter Avalos0 belong 0xfade0c02 Mac OS X Code Directory 360327e51cbSPeter Avalos>8 belong x version %x 361*614728caSSascha Wildner>12 belong >0 flags %#x 362327e51cbSPeter Avalos>4 belong x - %d bytes 363327e51cbSPeter Avalos 364327e51cbSPeter Avalos0 belong 0xfade0cc0 Mac OS X Detached Code Signature (non-executable) 365327e51cbSPeter Avalos>4 belong x - %d bytes 366327e51cbSPeter Avalos 367327e51cbSPeter Avalos0 belong 0xfade0cc1 Mac OS X Detached Code Signature 368327e51cbSPeter Avalos>8 belong >1 (%d elements) 369327e51cbSPeter Avalos>4 belong x - %d bytes 370327e51cbSPeter Avalos 371327e51cbSPeter Avalos# From: "Nelson A. de Oliveira" <naoliv@gmail.com> 372327e51cbSPeter Avalos# .vdi 373327e51cbSPeter Avalos4 string innotek\ VirtualBox\ Disk\ Image %s 374e8af9738SPeter Avalos 375c30bd091SSascha Wildner# Apple disk partition stuff 376c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/Apple_Partition_Map 377c30bd091SSascha Wildner# Reference: https://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/sys/sys/bootblock.h 378c30bd091SSascha Wildner# Update: Joerg Jenderek 379c30bd091SSascha Wildner# "ER" is APPLE_DRVR_MAP_MAGIC signature 380e8af9738SPeter Avalos0 beshort 0x4552 381c30bd091SSascha Wildner# display Apple Driver Map (strength=50) after Syslinux bootloader (71) 382c30bd091SSascha Wildner#!:strength +0 383c30bd091SSascha Wildner# strengthen the magic by looking for used blocksizes 512 2048 384c30bd091SSascha Wildner>2 ubeshort&0xf1FF 0 Apple Driver Map 385c30bd091SSascha Wildner# last 6 bytes for padding found are 0 or end with 55AAh marker for MBR hybrid 386c30bd091SSascha Wildner#>>504 ubequad&0x0000FFffFFff0000 0 387c30bd091SSascha Wildner!:mime application/x-apple-diskimage 388c30bd091SSascha Wildner!:apple ????devr 389c30bd091SSascha Wildner# https://en.wikipedia.org/wiki/Apple_Disk_Image 390c30bd091SSascha Wildner!:ext dmg/iso 391c30bd091SSascha Wildner# sbBlkSize for driver descriptor map 512 2048 392e8af9738SPeter Avalos>>2 beshort x \b, blocksize %d 393c30bd091SSascha Wildner# sbBlkCount sometimes garbish like 394c30bd091SSascha Wildner# 0xb0200000 for unzlibed install_flash_player_19.0.0.245_osx.dmg 395c30bd091SSascha Wildner# 0xf2720100 for bunziped Firefox 48.0-2.dmg 396c30bd091SSascha Wildner# 0xeb02ffff for super_grub2_disk_hybrid_2.02s3.iso 397c30bd091SSascha Wildner# 0x00009090 by syslinux-6.03/utils/isohybrid.c 398c30bd091SSascha Wildner>>4 ubelong x \b, blockcount %u 399c30bd091SSascha Wildner# following device/driver information not very useful 400c30bd091SSascha Wildner# device type 0 1 (37008 garbage for super_grub2_disk_hybrid_2.02s3.iso) 401c30bd091SSascha Wildner>>8 ubeshort x \b, devtype %u 402c30bd091SSascha Wildner# device id 0 1 (37008 garbage for super_grub2_disk_hybrid_2.02s3.iso) 403c30bd091SSascha Wildner>>10 ubeshort x \b, devid %u 404c30bd091SSascha Wildner# driver data 0 (2425393296 garbage for super_grub2_disk_hybrid_2.02s3.iso) 405c30bd091SSascha Wildner>>12 ubelong >0 406c30bd091SSascha Wildner>>>12 ubelong x \b, driver data %u 407c30bd091SSascha Wildner# number of driver descriptors sbDrvrCount <= 61 408c30bd091SSascha Wildner# (37008 garbage for super_grub2_disk_hybrid_2.02s3.iso) 409c30bd091SSascha Wildner>>16 ubeshort x \b, driver count %u 410c30bd091SSascha Wildner# 61 * apple_drvr_descriptor[8]. information not very useful or same as in partition map 411c30bd091SSascha Wildner# >>18 use apple-driver-map 412c30bd091SSascha Wildner# >>26 use apple-driver-map 413c30bd091SSascha Wildner# # ... 414c30bd091SSascha Wildner# >>500 use apple-driver-map 415c30bd091SSascha Wildner# number of partitions is always same in every partition (map block count) 416c30bd091SSascha Wildner#>>0x0204 ubelong x \b, %u partitions 417c30bd091SSascha Wildner>>0x0204 ubelong >0 \b, contains[@0x200]: 418c30bd091SSascha Wildner>>>0x0200 use apple-apm 419c30bd091SSascha Wildner>>0x0204 ubelong >1 \b, contains[@0x400]: 420c30bd091SSascha Wildner>>>0x0400 use apple-apm 421c30bd091SSascha Wildner>>0x0204 ubelong >2 \b, contains[@0x600]: 422c30bd091SSascha Wildner>>>0x0600 use apple-apm 423c30bd091SSascha Wildner>>0x0204 ubelong >3 \b, contains[@0x800]: 424c30bd091SSascha Wildner>>>0x0800 use apple-apm 425c30bd091SSascha Wildner>>0x0204 ubelong >4 \b, contains[@0xA00]: 426c30bd091SSascha Wildner>>>0x0A00 use apple-apm 427c30bd091SSascha Wildner>>0x0204 ubelong >5 \b, contains[@0xC00]: 428c30bd091SSascha Wildner>>>0x0C00 use apple-apm 429c30bd091SSascha Wildner>>0x0204 ubelong >6 \b, contains[@0xE00]: 430c30bd091SSascha Wildner>>>0x0E00 use apple-apm 431c30bd091SSascha Wildner>>0x0204 ubelong >7 \b, contains[@0x1000]: 432c30bd091SSascha Wildner>>>0x1000 use apple-apm 433c30bd091SSascha Wildner# display apple driver descriptor map (start-block, # blocks in sbBlkSize sizes, type) 434c30bd091SSascha Wildner0 name apple-driver-map 435c30bd091SSascha Wildner>0 ubequad !0 436c30bd091SSascha Wildner# descBlock first block of driver 437c30bd091SSascha Wildner>>0 ubelong x \b, driver start block %u 438c30bd091SSascha Wildner# descSize driver size in blocks 439c30bd091SSascha Wildner>>4 ubeshort x \b, size %u 440c30bd091SSascha Wildner# descType driver system type 1 701h F8FFh FFFFh 441*614728caSSascha Wildner>>6 ubeshort x \b, type %#x 442e8af9738SPeter Avalos 443c30bd091SSascha Wildner# URL: https://en.wikipedia.org/wiki/Apple_Partition_Map 4446fca56fbSSascha Wildner# Reference: https://opensource.apple.com/source/IOStorageFamily/IOStorageFamily-116/IOApplePartitionScheme.h 445c30bd091SSascha Wildner# Update: Joerg Jenderek 446c30bd091SSascha Wildner# Yes, the 3rd and 4th bytes pmSigPad are reserved, but we use them to make the 447e8af9738SPeter Avalos# magic stronger. 448c30bd091SSascha Wildner# for apple partition map stored as a single file 449c30bd091SSascha Wildner0 belong 0x504d0000 450c30bd091SSascha Wildner# to display Apple Partition Map (strength=70) after Syslinux bootloader (71) 451c30bd091SSascha Wildner#!:strength +0 452c30bd091SSascha Wildner>0 use apple-apm 453c30bd091SSascha Wildner# magic/Magdir/apple14.test, 365: Warning: Current entry does not yet have a description for adding a EXTENSION type 454c30bd091SSascha Wildner# file: could not find any valid magic files! 455c30bd091SSascha Wildner#!:ext bin 456c30bd091SSascha Wildner# display apple partition map. Normally called after Apple driver map 457c30bd091SSascha Wildner0 name apple-apm 458c30bd091SSascha Wildner>0 belong 0x504d0000 Apple Partition Map 459c30bd091SSascha Wildner# number of partitions 460c30bd091SSascha Wildner>>4 ubelong x \b, map block count %u 461c30bd091SSascha Wildner# logical block (512 bytes) start of partition 462c30bd091SSascha Wildner>>8 ubelong x \b, start block %u 463c30bd091SSascha Wildner>>12 ubelong x \b, block count %u 464c30bd091SSascha Wildner>>16 string >0 \b, name %s 465c30bd091SSascha Wildner>>48 string >0 \b, type %s 466c30bd091SSascha Wildner# processor type dpme_process_id[16] e.g. "68000" "68020" 467c30bd091SSascha Wildner>>120 string >0 \b, processor %s 468c30bd091SSascha Wildner# A/UX boot arguments BootArgs[128] 469c30bd091SSascha Wildner>>136 string >0 \b, boot arguments %s 470c30bd091SSascha Wildner# status of partition dpme_flags 471c30bd091SSascha Wildner>>88 belong & 1 \b, valid 472c30bd091SSascha Wildner>>88 belong & 2 \b, allocated 473c30bd091SSascha Wildner>>88 belong & 4 \b, in use 474c30bd091SSascha Wildner>>88 belong & 8 \b, has boot info 475c30bd091SSascha Wildner>>88 belong & 16 \b, readable 476c30bd091SSascha Wildner>>88 belong & 32 \b, writable 477c30bd091SSascha Wildner>>88 belong & 64 \b, pic boot code 478c30bd091SSascha Wildner>>88 belong & 128 \b, chain compatible driver 479c30bd091SSascha Wildner>>88 belong & 256 \b, real driver 480c30bd091SSascha Wildner>>88 belong & 512 \b, chain driver 481c30bd091SSascha Wildner# mount automatically at startup APPLE_PS_AUTO_MOUNT 482c30bd091SSascha Wildner>>88 ubelong &0x40000000 \b, mount at startup 483c30bd091SSascha Wildner# is the startup partition APPLE_PS_STARTUP 484c30bd091SSascha Wildner>>88 ubelong &0x80000000 \b, is the startup partition 485e8af9738SPeter Avalos 4866fca56fbSSascha Wildner#https://wiki.mozilla.org/DS_Store_File_Format 4876fca56fbSSascha Wildner#https://en.wikipedia.org/wiki/.DS_Store 488e8af9738SPeter Avalos0 string \0\0\0\1Bud1\0 Apple Desktop Services Store 489c30bd091SSascha Wildner 490c30bd091SSascha Wildner# HFS/HFS+ Resource fork files (andrew.roazen@nau.edu Apr 13 2015) 491c30bd091SSascha Wildner# Usually not in separate files, but have either filename rsrc with 492c30bd091SSascha Wildner# no extension, or a filename corresponding to another file, with 493c30bd091SSascha Wildner# extensions rsr/rsrc 494c30bd091SSascha Wildner0 string \000\000\001\000 495c30bd091SSascha Wildner>4 leshort 0 496c30bd091SSascha Wildner>>16 lelong 0 Apple HFS/HFS+ resource fork 497c30bd091SSascha Wildner 498c30bd091SSascha Wildner#https://en.wikipedia.org/wiki/AppleScript 499c30bd091SSascha Wildner0 string FasdUAS AppleScript compiled 500c30bd091SSascha Wildner 501c30bd091SSascha Wildner# AppleWorks/ClarisWorks 502c30bd091SSascha Wildner# https://github.com/joshenders/appleworks_format 503c30bd091SSascha Wildner# http://fileformats.archiveteam.org/wiki/AppleWorks 504c30bd091SSascha Wildner0 name appleworks 505c30bd091SSascha Wildner>0 belong&0x00ffffff 0x07e100 AppleWorks CWK Document 506c30bd091SSascha Wildner>0 belong&0x00ffffff 0x008803 ClarisWorks CWK Document 507c30bd091SSascha Wildner>0 default x 508c30bd091SSascha Wildner>>0 belong x AppleWorks/ClarisWorks CWK Document 509c30bd091SSascha Wildner>0 byte x \b, version %d 510c30bd091SSascha Wildner>30 beshort x \b, %d 511c30bd091SSascha Wildner>32 beshort x \bx%d 512c30bd091SSascha Wildner!:ext cwk 513c30bd091SSascha Wildner 514c30bd091SSascha Wildner4 string BOBO 515c30bd091SSascha Wildner>0 byte >4 516c30bd091SSascha Wildner>>12 belong 0 517c30bd091SSascha Wildner>>>26 belong 0 518c30bd091SSascha Wildner>>>>0 use appleworks 519c30bd091SSascha Wildner>0 belong 0x0481ad00 520c30bd091SSascha Wildner>>0 use appleworks 5216fca56fbSSascha Wildner 5226fca56fbSSascha Wildner# magic for Apple File System (APFS) 5236fca56fbSSascha Wildner# from Alex Myczko <alex@aiei.ch> 5246fca56fbSSascha Wildner32 string NXSB Apple File System (APFS) 5256fca56fbSSascha Wildner>36 ulelong x \b, blocksize %u 5266fca56fbSSascha Wildner 5276fca56fbSSascha Wildner# iTunes cover art (versions 1 and 2) 5286fca56fbSSascha Wildner4 string itch 5296fca56fbSSascha Wildner>24 string artw 5306fca56fbSSascha Wildner>>0x1e8 string data iTunes cover art 5316fca56fbSSascha Wildner>>>0x1ed string PNG (PNG) 5326fca56fbSSascha Wildner>>>0x1ec beshort 0xffd8 (JPEG) 5336fca56fbSSascha Wildner 5346fca56fbSSascha Wildner# MacPaint image 5356fca56fbSSascha Wildner65 string PNTGMPNT MacPaint image data 5366fca56fbSSascha Wildner#0 belong 2 MacPaint image data 537