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