2000-11-05 08:33:55 +00:00
|
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
# elf: file(1) magic for ELF executables
|
|
|
|
#
|
|
|
|
# We have to check the byte order flag to see what byte order all the
|
|
|
|
# other stuff in the header is in.
|
|
|
|
#
|
|
|
|
# What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
|
|
|
|
#
|
|
|
|
# updated by Daniel Quinlan (quinlan@yggdrasil.com)
|
|
|
|
0 string \177ELF ELF
|
|
|
|
>4 byte 0 invalid class
|
|
|
|
>4 byte 1 32-bit
|
2002-09-16 05:54:26 +00:00
|
|
|
# only for MIPS - in the future, the ABI field of e_flags should be used.
|
2004-08-09 08:45:41 +00:00
|
|
|
>>18 leshort 8
|
|
|
|
>>>36 lelong &0x20 N32
|
|
|
|
>>18 leshort 10
|
|
|
|
>>>36 lelong &0x20 N32
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 8
|
2004-08-09 08:45:41 +00:00
|
|
|
>>>36 belong &0x20 N32
|
2000-11-26 21:26:20 +00:00
|
|
|
>>18 beshort 10
|
2004-08-09 08:45:41 +00:00
|
|
|
>>>36 belong &0x20 N32
|
2000-11-05 08:33:55 +00:00
|
|
|
>4 byte 2 64-bit
|
|
|
|
>5 byte 0 invalid byte order
|
|
|
|
>5 byte 1 LSB
|
2002-09-16 05:54:26 +00:00
|
|
|
# The official e_machine number for MIPS is now #8, regardless of endianness.
|
|
|
|
# The second number (#10) will be deprecated later. For now, we still
|
|
|
|
# say something if #10 is encountered, but only gory details for #8.
|
2000-11-26 21:26:20 +00:00
|
|
|
>>18 leshort 8
|
|
|
|
# only for 32-bit
|
|
|
|
>>>4 byte 1
|
2002-09-16 05:54:26 +00:00
|
|
|
>>>>36 lelong&0xf0000000 0x00000000 MIPS-I
|
|
|
|
>>>>36 lelong&0xf0000000 0x10000000 MIPS-II
|
|
|
|
>>>>36 lelong&0xf0000000 0x20000000 MIPS-III
|
|
|
|
>>>>36 lelong&0xf0000000 0x30000000 MIPS-IV
|
|
|
|
>>>>36 lelong&0xf0000000 0x40000000 MIPS-V
|
|
|
|
>>>>36 lelong&0xf0000000 0x60000000 MIPS32
|
|
|
|
>>>>36 lelong&0xf0000000 0x70000000 MIPS64
|
|
|
|
>>>>36 lelong&0xf0000000 0x80000000 MIPS32 rel2
|
|
|
|
>>>>36 lelong&0xf0000000 0x90000000 MIPS64 rel2
|
2000-11-26 21:26:20 +00:00
|
|
|
# only for 64-bit
|
|
|
|
>>>4 byte 2
|
2002-09-16 05:54:26 +00:00
|
|
|
>>>>48 lelong&0xf0000000 0x00000000 MIPS-I
|
|
|
|
>>>>48 lelong&0xf0000000 0x10000000 MIPS-II
|
|
|
|
>>>>48 lelong&0xf0000000 0x20000000 MIPS-III
|
|
|
|
>>>>48 lelong&0xf0000000 0x30000000 MIPS-IV
|
|
|
|
>>>>48 lelong&0xf0000000 0x40000000 MIPS-V
|
|
|
|
>>>>48 lelong&0xf0000000 0x60000000 MIPS32
|
|
|
|
>>>>48 lelong&0xf0000000 0x70000000 MIPS64
|
|
|
|
>>>>48 lelong&0xf0000000 0x80000000 MIPS32 rel2
|
|
|
|
>>>>48 lelong&0xf0000000 0x90000000 MIPS64 rel2
|
2000-11-05 08:33:55 +00:00
|
|
|
>>16 leshort 0 no file type,
|
|
|
|
>>16 leshort 1 relocatable,
|
|
|
|
>>16 leshort 2 executable,
|
|
|
|
>>16 leshort 3 shared object,
|
|
|
|
# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
|
|
|
|
# corrections by Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de>
|
|
|
|
>>16 leshort 4 core file
|
2002-09-16 05:54:26 +00:00
|
|
|
# Core file detection is not reliable.
|
|
|
|
#>>>(0x38+0xcc) string >\0 of '%s'
|
|
|
|
#>>>(0x38+0x10) lelong >0 (signal %d),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>16 leshort &0xff00 processor-specific,
|
|
|
|
>>18 leshort 0 no machine,
|
|
|
|
>>18 leshort 1 AT&T WE32100 - invalid byte order,
|
|
|
|
>>18 leshort 2 SPARC - invalid byte order,
|
|
|
|
>>18 leshort 3 Intel 80386,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 leshort 4 Motorola
|
|
|
|
>>>36 lelong &0x01000000 68000 - invalid byte order,
|
|
|
|
>>>36 lelong &0x00810000 CPU32 - invalid byte order,
|
|
|
|
>>>36 lelong 0 68020 - invalid byte order,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 5 Motorola 88000 - invalid byte order,
|
|
|
|
>>18 leshort 6 Intel 80486,
|
|
|
|
>>18 leshort 7 Intel 80860,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 leshort 8 MIPS,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 9 Amdahl - invalid byte order,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 leshort 10 MIPS (deprecated),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 11 RS6000 - invalid byte order,
|
|
|
|
>>18 leshort 15 PA-RISC - invalid byte order,
|
2001-03-25 18:37:04 +00:00
|
|
|
>>>50 leshort 0x0214 2.0
|
|
|
|
>>>48 leshort &0x0008 (LP64),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 16 nCUBE,
|
|
|
|
>>18 leshort 17 Fujitsu VPP500,
|
|
|
|
>>18 leshort 18 SPARC32PLUS,
|
|
|
|
>>18 leshort 20 PowerPC,
|
2004-08-09 08:45:41 +00:00
|
|
|
>>18 leshort 22 IBM S/390,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 36 NEC V800,
|
|
|
|
>>18 leshort 37 Fujitsu FR20,
|
|
|
|
>>18 leshort 38 TRW RH-32,
|
|
|
|
>>18 leshort 39 Motorola RCE,
|
2001-04-25 07:41:21 +00:00
|
|
|
>>18 leshort 40 ARM,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 41 Alpha,
|
2004-08-09 08:45:41 +00:00
|
|
|
>>18 leshort 0xa390 IBM S/390 (obsolete),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 42 Hitachi SH,
|
|
|
|
>>18 leshort 43 SPARC V9 - invalid byte order,
|
|
|
|
>>18 leshort 44 Siemens Tricore Embedded Processor,
|
|
|
|
>>18 leshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
|
|
|
|
>>18 leshort 46 Hitachi H8/300,
|
|
|
|
>>18 leshort 47 Hitachi H8/300H,
|
|
|
|
>>18 leshort 48 Hitachi H8S,
|
|
|
|
>>18 leshort 49 Hitachi H8/500,
|
|
|
|
>>18 leshort 50 IA-64 (Intel 64 bit architecture)
|
|
|
|
>>18 leshort 51 Stanford MIPS-X,
|
|
|
|
>>18 leshort 52 Motorola Coldfire,
|
|
|
|
>>18 leshort 53 Motorola M68HC12,
|
2001-10-08 22:50:54 +00:00
|
|
|
>>18 leshort 62 AMD x86-64,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 75 Digital VAX,
|
2004-12-28 04:31:47 +00:00
|
|
|
>>18 leshort 88 Renesas M32R,
|
2003-02-28 05:19:36 +00:00
|
|
|
>>18 leshort 97 NatSemi 32k,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 leshort 0x9026 Alpha (unofficial),
|
|
|
|
>>20 lelong 0 invalid version
|
|
|
|
>>20 lelong 1 version 1
|
|
|
|
>>36 lelong 1 MathCoPro/FPU/MAU Required
|
|
|
|
>5 byte 2 MSB
|
2002-09-16 05:54:26 +00:00
|
|
|
# only for MIPS - see comment in little-endian section above.
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 8
|
|
|
|
# only for 32-bit
|
|
|
|
>>>4 byte 1
|
2002-09-16 05:54:26 +00:00
|
|
|
>>>>36 belong&0xf0000000 0x00000000 MIPS-I
|
|
|
|
>>>>36 belong&0xf0000000 0x10000000 MIPS-II
|
|
|
|
>>>>36 belong&0xf0000000 0x20000000 MIPS-III
|
|
|
|
>>>>36 belong&0xf0000000 0x30000000 MIPS-IV
|
|
|
|
>>>>36 belong&0xf0000000 0x40000000 MIPS-V
|
|
|
|
>>>>36 belong&0xf0000000 0x60000000 MIPS32
|
|
|
|
>>>>36 belong&0xf0000000 0x70000000 MIPS64
|
|
|
|
>>>>36 belong&0xf0000000 0x80000000 MIPS32 rel2
|
|
|
|
>>>>36 belong&0xf0000000 0x90000000 MIPS64 rel2
|
2000-11-05 08:33:55 +00:00
|
|
|
# only for 64-bit
|
|
|
|
>>>4 byte 2
|
2002-09-16 05:54:26 +00:00
|
|
|
>>>>48 belong&0xf0000000 0x00000000 MIPS-I
|
|
|
|
>>>>48 belong&0xf0000000 0x10000000 MIPS-II
|
|
|
|
>>>>48 belong&0xf0000000 0x20000000 MIPS-III
|
|
|
|
>>>>48 belong&0xf0000000 0x30000000 MIPS-IV
|
|
|
|
>>>>48 belong&0xf0000000 0x40000000 MIPS-V
|
|
|
|
>>>>48 belong&0xf0000000 0x60000000 MIPS32
|
|
|
|
>>>>48 belong&0xf0000000 0x70000000 MIPS64
|
|
|
|
>>>>48 belong&0xf0000000 0x80000000 MIPS32 rel2
|
|
|
|
>>>>48 belong&0xf0000000 0x90000000 MIPS64 rel2
|
2000-11-05 08:33:55 +00:00
|
|
|
>>16 beshort 0 no file type,
|
|
|
|
>>16 beshort 1 relocatable,
|
|
|
|
>>16 beshort 2 executable,
|
|
|
|
>>16 beshort 3 shared object,
|
|
|
|
>>16 beshort 4 core file,
|
2002-09-16 05:54:26 +00:00
|
|
|
#>>>(0x38+0xcc) string >\0 of '%s'
|
|
|
|
#>>>(0x38+0x10) belong >0 (signal %d),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>16 beshort &0xff00 processor-specific,
|
|
|
|
>>18 beshort 0 no machine,
|
|
|
|
>>18 beshort 1 AT&T WE32100,
|
|
|
|
>>18 beshort 2 SPARC,
|
|
|
|
>>18 beshort 3 Intel 80386 - invalid byte order,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 beshort 4 Motorola
|
|
|
|
>>>36 belong &0x01000000 68000,
|
|
|
|
>>>36 belong &0x00810000 CPU32,
|
|
|
|
>>>36 belong 0 68020,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 5 Motorola 88000,
|
|
|
|
>>18 beshort 6 Intel 80486 - invalid byte order,
|
|
|
|
>>18 beshort 7 Intel 80860,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 beshort 8 MIPS,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 9 Amdahl,
|
2002-09-16 05:54:26 +00:00
|
|
|
>>18 beshort 10 MIPS (deprecated),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 11 RS6000,
|
2001-03-25 18:37:04 +00:00
|
|
|
>>18 beshort 15 PA-RISC
|
|
|
|
>>>50 beshort 0x0214 2.0
|
|
|
|
>>>48 beshort &0x0008 (LP64)
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 16 nCUBE,
|
|
|
|
>>18 beshort 17 Fujitsu VPP500,
|
|
|
|
>>18 beshort 18 SPARC32PLUS,
|
|
|
|
>>>36 belong&0xffff00 &0x000100 V8+ Required,
|
|
|
|
>>>36 belong&0xffff00 &0x000200 Sun UltraSPARC1 Extensions Required,
|
|
|
|
>>>36 belong&0xffff00 &0x000400 HaL R1 Extensions Required,
|
|
|
|
>>>36 belong&0xffff00 &0x000800 Sun UltraSPARC3 Extensions Required,
|
|
|
|
>>18 beshort 20 PowerPC or cisco 4500,
|
|
|
|
>>18 beshort 21 cisco 7500,
|
2004-08-09 08:45:41 +00:00
|
|
|
>>18 beshort 22 IBM S/390,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 24 cisco SVIP,
|
|
|
|
>>18 beshort 25 cisco 7200,
|
|
|
|
>>18 beshort 36 NEC V800 or cisco 12000,
|
|
|
|
>>18 beshort 37 Fujitsu FR20,
|
|
|
|
>>18 beshort 38 TRW RH-32,
|
|
|
|
>>18 beshort 39 Motorola RCE,
|
2001-04-25 07:41:21 +00:00
|
|
|
>>18 beshort 40 ARM,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 41 Alpha,
|
|
|
|
>>18 beshort 42 Hitachi SH,
|
|
|
|
>>18 beshort 43 SPARC V9,
|
|
|
|
>>18 beshort 44 Siemens Tricore Embedded Processor,
|
|
|
|
>>18 beshort 45 Argonaut RISC Core, Argonaut Technologies Inc.,
|
|
|
|
>>18 beshort 46 Hitachi H8/300,
|
|
|
|
>>18 beshort 47 Hitachi H8/300H,
|
|
|
|
>>18 beshort 48 Hitachi H8S,
|
|
|
|
>>18 beshort 49 Hitachi H8/500,
|
|
|
|
>>18 beshort 50 Intel Merced Processor,
|
|
|
|
>>18 beshort 51 Stanford MIPS-X,
|
|
|
|
>>18 beshort 52 Motorola Coldfire,
|
|
|
|
>>18 beshort 53 Motorola M68HC12,
|
2001-07-30 03:09:46 +00:00
|
|
|
>>18 beshort 73 Cray NV1,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 75 Digital VAX,
|
2004-12-28 04:31:47 +00:00
|
|
|
>>18 beshort 88 Renesas M32R,
|
2003-02-28 05:19:36 +00:00
|
|
|
>>18 beshort 97 NatSemi 32k,
|
2000-11-05 08:33:55 +00:00
|
|
|
>>18 beshort 0x9026 Alpha (unofficial),
|
2004-08-09 08:45:41 +00:00
|
|
|
>>18 beshort 0xa390 IBM S/390 (obsolete),
|
2000-11-05 08:33:55 +00:00
|
|
|
>>20 belong 0 invalid version
|
|
|
|
>>20 belong 1 version 1
|
|
|
|
>>36 belong 1 MathCoPro/FPU/MAU Required
|
2004-08-09 08:45:41 +00:00
|
|
|
# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
|
|
|
|
# like proper ELF, but extracting the string had bad results.
|
|
|
|
>4 byte <0x80
|
|
|
|
>>8 string >\0 (%s)
|
2001-07-30 03:09:46 +00:00
|
|
|
>8 string \0
|
|
|
|
>>7 byte 0 (SYSV)
|
|
|
|
>>7 byte 1 (HP-UX)
|
|
|
|
>>7 byte 2 (NetBSD)
|
|
|
|
>>7 byte 3 (GNU/Linux)
|
|
|
|
>>7 byte 4 (GNU/Hurd)
|
|
|
|
>>7 byte 5 (86Open)
|
|
|
|
>>7 byte 6 (Solaris)
|
|
|
|
>>7 byte 7 (Monterey)
|
|
|
|
>>7 byte 8 (IRIX)
|
|
|
|
>>7 byte 9 (FreeBSD)
|
|
|
|
>>7 byte 10 (Tru64)
|
|
|
|
>>7 byte 11 (Novell Modesto)
|
|
|
|
>>7 byte 12 (OpenBSD)
|
|
|
|
>>7 byte 97 (ARM)
|
|
|
|
>>7 byte 255 (embedded)
|