diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-02-22 14:03:40 +0000 |
---|---|---|
committer | <> | 2013-02-28 22:06:04 +0000 |
commit | 3b49db406667ee7189b9ea69b9d9e0bdcc43c5b7 (patch) | |
tree | 13be3ebf87cab39e68c3e4dbb1367151ac0e8a6f /magic/Magdir/cafebabe | |
download | file-3b49db406667ee7189b9ea69b9d9e0bdcc43c5b7.tar.gz |
Imported from /home/lorry/working-area/delta_file/file-5.13.tar.gz.file-5.13baserock/morph
Diffstat (limited to 'magic/Magdir/cafebabe')
-rw-r--r-- | magic/Magdir/cafebabe | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/magic/Magdir/cafebabe b/magic/Magdir/cafebabe new file mode 100644 index 0000000..ea4846d --- /dev/null +++ b/magic/Magdir/cafebabe @@ -0,0 +1,78 @@ + +#------------------------------------------------------------------------------ +# $File: cafebabe,v 1.12 2013/01/11 16:45:23 christos Exp $ +# Cafe Babes unite! +# +# Since Java bytecode and Mach-O universal binaries have the same magic number, +# the test must be performed in the same "magic" sequence to get both right. +# The long at offset 4 in a Mach-O universal binary tells the number of +# architectures; the short at offset 4 in a Java bytecode file is the JVM minor +# version and the short at offset 6 is the JVM major version. Since there are only +# only 18 labeled Mach-O architectures at current, and the first released +# Java class format was version 43.0, we can safely choose any number +# between 18 and 39 to test the number of architectures against +# (and use as a hack). Let's not use 18, because the Mach-O people +# might add another one or two as time goes by... +# +### JAVA START ### +0 belong 0xcafebabe +!:mime application/x-java-applet +>4 belong >30 compiled Java class data, +>>6 beshort x version %d. +>>4 beshort x \b%d +# Which is which? +#>>4 belong 0x032d (Java 1.0) +#>>4 belong 0x032d (Java 1.1) +>>4 belong 0x002e (Java 1.2) +>>4 belong 0x002f (Java 1.3) +>>4 belong 0x0030 (Java 1.4) +>>4 belong 0x0031 (Java 1.5) +>>4 belong 0x0032 (Java 1.6) + +0 belong 0xcafed00d JAR compressed with pack200, +>5 byte x version %d. +>4 byte x \b%d +!:mime application/x-java-pack200 + + +0 belong 0xcafed00d JAR compressed with pack200, +>5 byte x version %d. +>4 byte x \b%d +!:mime application/x-java-pack200 + +### JAVA END ### +### MACH-O START ### + +# 16777216 = 0x01000000 +0 name mach-o \b [ +>0 belong 0xffffffff \bAny +>0 belong 1 \bVax +>0 belong 6 \bMC680x0 +>0 belong 7 \bI386 +>0 belong 8 \bMIPS +>0 belong 10 \bMC98000 +>0 belong 11 \bHPPA +>0 belong 12 \bARM +>0 belong 13 \bMC88000 +>0 belong 14 \bSPARC +>0 belong 15 \bI860 +>0 belong 16 \bALPHA +>0 belong 17 \bPOWERPC +>0 belong 16777223 \bX86_64 +>0 belong 16777233 \bPOWERPC64 +>&(8.L) indirect : +>0 belong x \b] + +0 belong 0xcafebabe +>4 belong 1 Mach-O universal binary with 1 architecture: +>>8 use mach-o +>4 belong >1 +>>4 belong <20 Mach-O universal binary with %ld architectures: +>>>8 use mach-o +>>>28 use mach-o +>>>4 belong >2 +>>>>48 use mach-o +>>>>>4 belong >3 +>>>>>68 use mach-o + +### MACH-O END ### |