linux revision 68349
168349Sobrien 268349Sobrien#------------------------------------------------------------------------------ 368349Sobrien# linux: file(1) magic for Linux files 468349Sobrien# 568349Sobrien# Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com> 668349Sobrien# The following basic Linux magic is useful for reference, but using 768349Sobrien# "long" magic is a better practice in order to avoid collisions. 868349Sobrien# 968349Sobrien# 2 leshort 100 Linux/i386 1068349Sobrien# >0 leshort 0407 impure executable (OMAGIC) 1168349Sobrien# >0 leshort 0410 pure executable (NMAGIC) 1268349Sobrien# >0 leshort 0413 demand-paged executable (ZMAGIC) 1368349Sobrien# >0 leshort 0314 demand-paged executable (QMAGIC) 1468349Sobrien# 1568349Sobrien0 lelong 0x00640107 Linux/i386 impure executable (OMAGIC) 1668349Sobrien>16 lelong 0 \b, stripped 1768349Sobrien0 lelong 0x00640108 Linux/i386 pure executable (NMAGIC) 1868349Sobrien>16 lelong 0 \b, stripped 1968349Sobrien0 lelong 0x0064010b Linux/i386 demand-paged executable (ZMAGIC) 2068349Sobrien>16 lelong 0 \b, stripped 2168349Sobrien0 lelong 0x006400cc Linux/i386 demand-paged executable (QMAGIC) 2268349Sobrien>16 lelong 0 \b, stripped 2368349Sobrien# 2468349Sobrien0 string \007\001\000 Linux/i386 object file 2568349Sobrien>20 lelong >0x1020 \b, DLL library 2668349Sobrien# Linux-8086 stuff: 2768349Sobrien0 string \01\03\020\04 Linux-8086 impure executable 2868349Sobrien>28 long !0 not stripped 2968349Sobrien0 string \01\03\040\04 Linux-8086 executable 3068349Sobrien>28 long !0 not stripped 3168349Sobrien# 3268349Sobrien0 string \243\206\001\0 Linux-8086 object file 3368349Sobrien# 3468349Sobrien0 string \01\03\020\20 Minix-386 impure executable 3568349Sobrien>28 long !0 not stripped 3668349Sobrien0 string \01\03\040\20 Minix-386 executable 3768349Sobrien>28 long !0 not stripped 3868349Sobrien# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov> 3968349Sobrien216 lelong 0421 Linux/i386 core file 4068349Sobrien>220 string >\0 of '%s' 4168349Sobrien>200 lelong >0 (signal %d) 4268349Sobrien# 4368349Sobrien# LILO boot/chain loaders, from Daniel Quinlan <quinlan@yggdrasil.com> 4468349Sobrien# this can be overridden by the DOS executable (COM) entry 4568349Sobrien2 string LILO Linux/i386 LILO boot/chain loader 4668349Sobrien# 4768349Sobrien# Debian Packages, from Peter Tobias <tobias@server.et-inf.fho-emden.de> 4868349Sobrien0 string 0.9 4968349Sobrien>8 byte 0x0a old Debian Binary Package 5068349Sobrien>>3 byte >0 \b, created by dpkg 0.9%c 5168349Sobrien>>4 byte >0 pl%c 5268349Sobrien# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com> 5368349Sobrien0 leshort 0x0436 Linux/i386 PC Screen Font data, 5468349Sobrien>2 byte 0 256 characters, no directory, 5568349Sobrien>2 byte 1 512 characters, no directory, 5668349Sobrien>2 byte 2 256 characters, Unicode directory, 5768349Sobrien>2 byte 3 512 characters, Unicode directory, 5868349Sobrien>3 byte >0 8x%d 5968349Sobrien# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com> 6068349Sobrien4086 string SWAP-SPACE Linux/i386 swap file 6168349Sobrien# ECOFF magic for OSF/1 and Linux (only tested under Linux though) 6268349Sobrien# 6368349Sobrien# from Erik Troan (ewt@redhat.com) examining od dumps, so this 6468349Sobrien# could be wrong 6568349Sobrien# updated by David Mosberger (davidm@azstarnet.com) based on 6668349Sobrien# GNU BFD and MIPS info found below. 6768349Sobrien# 6868349Sobrien0 leshort 0x0183 ECOFF alpha 6968349Sobrien>24 leshort 0407 executable 7068349Sobrien>24 leshort 0410 pure 7168349Sobrien>24 leshort 0413 demand paged 7268349Sobrien>8 long >0 not stripped 7368349Sobrien>8 long 0 stripped 7468349Sobrien>23 leshort >0 - version %ld. 7568349Sobrien# 7668349Sobrien# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu> 7768349Sobrien# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de> 7868349Sobrien# and Nicol�s Lichtmaier <nick@debian.org> 7968349Sobrien# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29 8068349Sobrien514 string HdrS Linux kernel 8168349Sobrien>518 leshort >0 8268349Sobrien>>529 byte 0 zImage data, 8368349Sobrien>>529 byte 1 bzImage data, 8468349Sobrien>0x048c byte 0x31 8568349Sobrien>>0x048c string x version %s 8668349Sobrien>0x0493 byte 0x31 8768349Sobrien>>0x0493 string x version %s 8868349Sobrien>0x048c byte 0x32 8968349Sobrien>>0x048c string x version %s 9068349Sobrien>0x0493 byte 0x32 9168349Sobrien>>0x0493 string x version %s 9268349Sobrien>0x04df byte 0x32 9368349Sobrien>>0x04df string x version %s 9468349Sobrien>0x04fb byte 0x32 9568349Sobrien>>0x04fb string x version %s 9668349Sobrien# This also matches new kernels, which were caught above by "HdrS". 9768349Sobrien0 belong 0xb8c0078e Linux kernel 9868349Sobrien>0x1e3 string Loading version 1.3.79 or older 9968349Sobrien>0x1e9 string Loading from prehistoric times 10068349Sobrien# LSM entries - Nicol�s Lichtmaier <nick@feedback.net.ar> 10168349Sobrien0 string Begin3 Linux Software Map entry text 102