]> granicus.if.org Git - file/commitdiff
c32 fixes from Joerg Jenderek
authorChristos Zoulas <christos@zoulas.com>
Tue, 27 Oct 2015 23:24:33 +0000 (23:24 +0000)
committerChristos Zoulas <christos@zoulas.com>
Tue, 27 Oct 2015 23:24:33 +0000 (23:24 +0000)
magic/Magdir/msdos

index 98465209c04250e93ae45e1d80dfc084b8d94b24..92717f011a5edf70924788e02377f822ab4343d9 100644 (file)
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: msdos,v 1.101 2015/08/24 05:08:48 christos Exp $
+# $File: msdos,v 1.102 2015/09/30 20:32:35 christos Exp $
 # msdos:  file(1) magic for MS-DOS files
 #
 
 >>4    string          \ $ARX          DOS executable (COM), ARX self-extracting archive
 >>4    string          \ $LHarc        DOS executable (COM), LHarc self-extracting archive
 >>0x20e string         SFX\ by\ LARC   DOS executable (COM), LARC self-extracting archive
-# updated by Joerg Jenderek at Oct 2008
-#0     byte            0xb8            COM executable
-0      uleshort&0x80ff 0x00b8          
+# updated by Joerg Jenderek at Oct 2008,2015
+# following line is too general
+0      ubyte           0xb8            
+# skip 2 linux kernels like memtest.bin with "\xb8\xc0\x07\x8e" in ./linux
+>0     string          !\xb8\xc0\x07\x8e       
 # modified by Joerg Jenderek
->1     lelong          !0x21cd4cff     COM executable for DOS
+# syslinux COM32 or COM32R executable
+>>1    lelong&0xFFFFFFFe 0x21CD4CFe    COM executable (32-bit COMBOOT
+# http://www.syslinux.org/wiki/index.php/Comboot_API
+# Since version 5.00 c32 modules switched from the COM32 object format to ELF
+!:mime application/x-c32-comboot-syslinux-exec
+!:ext c32
 # http://syslinux.zytor.com/comboot.php
+# older syslinux version ( <4 )
 # (32-bit COMBOOT) programs *.C32 contain 32-bit code and run in flat-memory 32-bit protected mode
 # start with assembler instructions mov eax,21cd4cffh
-0      uleshort&0xc0ff 0xc0b8          
->1     lelong          0x21cd4cff      COM executable (32-bit COMBOOT)
+>>>1   lelong          0x21CD4CFf      \b)
 # syslinux:doc/comboot.txt
 # A COM32R program must start with the byte sequence B8 FE 4C CD 21 (mov
 # eax,21cd4cfeh) as a magic number.
-0       string/b       \xb8\xfe\x4c\xcd\x21    COM executable (COM32R)
-# start with assembler instructions mov eax,21cd4cfeh
-0      uleshort&0xc0ff 0xc0b8          
->1     lelong          0x21cd4cfe      COM executable (32-bit COMBOOT, relocatable)
+# syslinux version (4.x)
+# "COM executable (COM32R)" or "Syslinux COM32 module" by TrID
+>>>1   lelong          0x21CD4CFe      \b, relocatable)
+# remaining are DOS COM executables starting with assembler instruction MOV
+# like FreeDOS BANNER*.COM FINDDISK.COM GIF2RAW.COM WINCHK.COM
+# MS-DOS SYS.COM RESTART.COM
+# SYSLINUX.COM (version 1.40 - 2.13)
+# GFXBOOT.COM (version 3.75)
+# COPYBS.COM POWEROFF.COM INT18.COM
+>>1    default x                       COM executable for DOS
+!:mime application/x-dosexec
+#!:mime        application/x-ms-dos-executable
+#!:mime        application/x-msdos-program
+!:ext com
+
 0      string/b        \x81\xfc                
 >4     string  \x77\x02\xcd\x20\xb9    
 >>36   string  UPX!                    FREE-DOS executable (COM), UPX compressed