diff options
author | Christos Zoulas <christos@zoulas.com> | 2023-03-29 22:50:03 +0000 |
---|---|---|
committer | Christos Zoulas <christos@zoulas.com> | 2023-03-29 22:50:03 +0000 |
commit | 3bcef79527c101d311c216e937897925b03dd092 (patch) | |
tree | 06408a12f94f17cd2fb7e10574329cc5cfc2d4be | |
parent | 89f1ba6fbafd710cf03013e015d2eb59d3c54be6 (diff) | |
download | file-git-3bcef79527c101d311c216e937897925b03dd092.tar.gz |
Strengthen and disambiguate the DOS Device Driver magic. Unfortunately there
is no magic bullet. (Joerg Jenderek)
-rw-r--r-- | magic/Magdir/msdos | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/magic/Magdir/msdos b/magic/Magdir/msdos index 228a1839..0760b239 100644 --- a/magic/Magdir/msdos +++ b/magic/Magdir/msdos @@ -1,6 +1,6 @@ #------------------------------------------------------------------------------ -# $File: msdos,v 1.167 2023/02/04 18:49:42 christos Exp $ +# $File: msdos,v 1.168 2023/03/29 22:50:03 christos Exp $ # msdos: file(1) magic for MS-DOS files # @@ -740,14 +740,18 @@ 0 string \xffKEYB\ \ \ \0\0\0\0 >12 string \0\0\0\0`\004\360 MS-DOS KEYBoard Layout file -# DOS device driver updated by Joerg Jenderek at May 2011,Mar 2017,Aug 2020 +# DOS device driver updated by Joerg Jenderek at May 2011,Mar 2017,Aug 2020,Mar 2023 # URL: http://fileformats.archiveteam.org/wiki/DOS_device_driver # Reference: http://www.delorie.com/djgpp/doc/rbinter/it/46/16.html -# https://amaus.net/static/S100/IBM/software/DOS/DOS%20techref/CHAPTER.009 +# http://www.o3one.org/hwdocs/bios_doc/dosref22.html 0 ulequad&0x07a0ffffffff 0xffffffff # skip OS/2 INI ./os2 >4 ubelong !0x14000000 ->>0 use msdos-driver +#>>10 ubequad x MAYBE_DRIVER_NAME=%16.16llx +# https://bugs.astron.com/view.php?id=434 +# skip OOXML document fragment 0000.dat where driver name is "empty" instead of "ASCII like" +>>10 ubequad !0 +>>>0 use msdos-driver 0 name msdos-driver DOS executable ( #!:mime application/octet-stream !:mime application/x-dosdriver @@ -779,8 +783,8 @@ >>40 search/7 UPX! >>40 default x # leading/trailing nulls, zeros or non ASCII characters in 8-byte name field at offset 10 are skipped -# 1 space char before device driver name to get phrase like "device driver PROTMAN$" ->>>12 ubyte >0x2E \b +# 1 space char before device driver name to get phrase like "device driver PROTMAN$" "device driver HP-150II" "device driver PC$MOUSE" +>>>12 ubyte >0x23 \b >>>>10 ubyte >0x20 >>>>>10 ubyte !0x2E >>>>>>10 ubyte !0x2A \b%c |