1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# $OpenBSD: elf,v 1.14 2004/10/27 18:12:44 pefo Exp $
#------------------------------------------------------------------------------
# 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.
#
# MIPS RS3000 may also be for MIPS RS2000.
# 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
>4 byte 2 64-bit
>5 byte 0 invalid byte order
>5 byte 1 LSB
>>16 leshort 0 no file type,
>>16 leshort 1 relocatable,
>>16 leshort 2 executable,
>>16 leshort 3 shared object,
# only for MIPS
>>18 leshort 8
# only for 32-bit
>>>4 byte 1
>>>>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,
# only for 64-bit
>>>4 byte 2
>>>>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,
# Core handling from Peter Tobias <tobias@server.et-inf.fho-emden.de>
>>16 leshort 4 core file
>>>400 lelong >0 (signal %d),
>>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,
>>18 leshort 4 Motorola 68000 - invalid byte order,
>>18 leshort 5 Motorola 88000 - invalid byte order,
>>18 leshort 6 Intel 80486,
>>18 leshort 7 Intel 80860,
# >>18 leshort 8 MIPS,
>>18 leshort 9 Amdahl - invalid byte order,
>>18 leshort 10 MIPS (deprecated),
>>18 leshort 11 RS6000 - invalid byte order,
>>18 leshort 15 PA-RISC - invalid byte order,
>>18 leshort 16 nCUBE,
>>18 leshort 17 VPP500,
>>18 leshort 18 SPARC32PLUS,
>>18 leshort 20 PowerPC,
>>18 leshort 40 ARM,
>>18 leshort 43 SPARC64 - invalid byte order,
>>18 leshort 62 AMD64,
>>18 leshort 75 VAX,
>>18 leshort 0x9026 Alpha,
>>20 lelong 0 invalid version
>>20 lelong 1 version 1
>>36 lelong 1 MathCoPro/FPU/MAU Required
>5 byte 2 MSB
>>16 beshort 0 no file type,
>>16 beshort 1 relocatable,
>>16 beshort 2 executable,
>>16 beshort 3 shared object,
# only for MIPS
>>18 beshort 8
# only for 32-bit
>>>4 byte 1
>>>>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,
# only for 64-bit
>>>4 byte 2
>>>>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,
>>16 beshort 4 core file,
>>>400 lelong >0 (signal %d),
>>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,
>>18 beshort 4 Motorola 68000,
>>18 beshort 5 Motorola 88000,
>>18 beshort 6 Intel 80486 - invalid byte order,
>>18 beshort 7 Intel 80860,
# >>18 beshort 8 MIPS,
>>18 beshort 9 Amdahl,
>>18 beshort 10 MIPS (deprecated),
>>18 beshort 11 RS6000,
>>18 beshort 15 PA-RISC,
>>18 beshort 16 nCUBE,
>>18 beshort 17 VPP500,
>>18 beshort 18 SPARC32PLUS,
>>18 beshort 20 PowerPC,
>>18 beshort 40 ARM,
>>18 beshort 43 SPARC64,
>>18 beshort 62 AMD64 - invalid byte order,
>>18 beshort 75 VAX - invalid byte order,
>>18 beshort 0x9026 Alpha,
>>20 belong 0 invalid version
>>20 belong 1 version 1
>>36 belong 1 MathCoPro/FPU/MAU Required
|