]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/file/magic/Magdir/elf
MFC r357757: MFV r357712: file 5.38.
[FreeBSD/FreeBSD.git] / contrib / file / magic / Magdir / elf
1
2 #------------------------------------------------------------------------------
3 # $File: elf,v 1.79 2019/12/16 04:24:01 christos Exp $
4 # elf:  file(1) magic for ELF executables
5 #
6 # We have to check the byte order flag to see what byte order all the
7 # other stuff in the header is in.
8 #
9 # What're the correct byte orders for the nCUBE and the Fujitsu VPP500?
10 #
11 # Created by: unknown
12 # Modified by (1): Daniel Quinlan <quinlan@yggdrasil.com>
13 # Modified by (2): Peter Tobias <tobias@server.et-inf.fho-emden.de> (core support)
14 # Modified by (3): Christian 'Dr. Disk' Hechelmann <drdisk@ds9.au.s.shuttle.de> (fix of core support)
15 # Modified by (4): <gerardo.cacciari@gmail.com> (VMS Itanium)
16 # Modified by (5): Matthias Urlichs <smurf@debian.org> (Listing of many architectures)
17
18 0       name            elf-mips
19 >0      lelong&0xf0000000       0x00000000      MIPS-I
20 >0      lelong&0xf0000000       0x10000000      MIPS-II
21 >0      lelong&0xf0000000       0x20000000      MIPS-III
22 >0      lelong&0xf0000000       0x30000000      MIPS-IV
23 >0      lelong&0xf0000000       0x40000000      MIPS-V
24 >0      lelong&0xf0000000       0x50000000      MIPS32
25 >0      lelong&0xf0000000       0x60000000      MIPS64
26 >0      lelong&0xf0000000       0x70000000      MIPS32 rel2
27 >0      lelong&0xf0000000       0x80000000      MIPS64 rel2
28 >0      lelong&0xf0000000       0x90000000      MIPS32 rel6
29 >0      lelong&0xf0000000       0xa0000000      MIPS64 rel6
30
31 0       name            elf-sparc
32 >0      lelong&0x00ffff00       0x00000100      V8+ Required,
33 >0      lelong&0x00ffff00       0x00000200      Sun UltraSPARC1 Extensions Required,
34 >0      lelong&0x00ffff00       0x00000400      HaL R1 Extensions Required,
35 >0      lelong&0x00ffff00       0x00000800      Sun UltraSPARC3 Extensions Required,
36 >0      lelong&0x3              0               total store ordering,
37 >0      lelong&0x3              1               partial store ordering,
38 >0      lelong&0x3              2               relaxed memory ordering,
39
40 0       name            elf-pa-risc
41 >2      leshort         0x020b          1.0
42 >2      leshort         0x0210          1.1
43 >2      leshort         0x0214          2.0
44 >0      leshort         &0x0008         (LP64)
45
46 0       name            elf-le
47 >16     leshort         0               no file type,
48 !:mime  application/octet-stream
49 >16     leshort         1               relocatable,
50 !:mime  application/x-object
51 >16     leshort         2               executable,
52 !:mime  application/x-executable
53 >16     leshort         3               shared object,
54 !:mime  application/x-sharedlib
55 >16     leshort         4               core file,
56 !:mime  application/x-coredump
57 # OS-specific
58 >7      byte            202
59 >>16    leshort         0xFE01          executable,
60 !:mime  application/x-executable
61 # Core file detection is not reliable.
62 #>>>(0x38+0xcc) string  >\0             of '%s'
63 #>>>(0x38+0x10) lelong  >0              (signal %d),
64 >16     leshort         &0xff00         processor-specific,
65 >18     clear           x
66 >18     leshort         0               no machine,
67 >18     leshort         1               AT&T WE32100,
68 >18     leshort         2               SPARC,
69 >18     leshort         3               Intel 80386,
70 >18     leshort         4               Motorola m68k,
71 >>4     byte            1
72 >>>36   lelong          &0x01000000     68000,
73 >>>36   lelong          &0x00810000     CPU32,
74 >>>36   lelong          0               68020,
75 >18     leshort         5               Motorola m88k,
76 >18     leshort         6               Intel 80486,
77 >18     leshort         7               Intel 80860,
78 # The official e_machine number for MIPS is now #8, regardless of endianness.
79 # The second number (#10) will be deprecated later. For now, we still
80 # say something if #10 is encountered, but only gory details for #8.
81 >18     leshort         8               MIPS,
82 >>4     byte            1
83 >>>36   lelong          &0x20           N32
84 >18     leshort         10              MIPS,
85 >>4     byte            1
86 >>>36   lelong          &0x20           N32
87 >18     leshort         8
88 # only for 32-bit
89 >>4     byte            1
90 >>>36   use             elf-mips
91 # only for 64-bit
92 >>4     byte            2
93 >>>48   use             elf-mips
94 >18     leshort         9               Amdahl,
95 >18     leshort         10              MIPS (deprecated),
96 >18     leshort         11              RS6000,
97 >18     leshort         15              PA-RISC,
98 # only for 32-bit
99 >>4     byte            1
100 >>>36   use             elf-pa-risc
101 # only for 64-bit
102 >>4     byte            2
103 >>>48   use             elf-pa-risc
104 >18     leshort         16              nCUBE,
105 >18     leshort         17              Fujitsu VPP500,
106 >18     leshort         18              SPARC32PLUS,
107 # only for 32-bit
108 >>4     byte            1
109 >>>36   use             elf-sparc
110 >18     leshort         19              Intel 80960,
111 >18     leshort         20              PowerPC or cisco 4500,
112 >18     leshort         21              64-bit PowerPC or cisco 7500,
113 >18     leshort         22              IBM S/390,
114 >18     leshort         23              Cell SPU,
115 >18     leshort         24              cisco SVIP,
116 >18     leshort         25              cisco 7200,
117 >18     leshort         36              NEC V800 or cisco 12000,
118 >18     leshort         37              Fujitsu FR20,
119 >18     leshort         38              TRW RH-32,
120 >18     leshort         39              Motorola RCE,
121 >18     leshort         40              ARM,
122 >>4     byte            1
123 >>>36   lelong&0xff000000       0x04000000      EABI4
124 >>>36   lelong&0xff000000       0x05000000      EABI5
125 >>>36   lelong          &0x00800000     BE8
126 >>>36   lelong          &0x00400000     LE8
127 >18     leshort         41              Alpha,
128 >18     leshort         42              Renesas SH,
129 >18     leshort         43              SPARC V9,
130 >>4     byte            2
131 >>>48   use             elf-sparc
132 >18     leshort         44              Siemens Tricore Embedded Processor,
133 >18     leshort         45              Argonaut RISC Core, Argonaut Technologies Inc.,
134 >18     leshort         46              Renesas H8/300,
135 >18     leshort         47              Renesas H8/300H,
136 >18     leshort         48              Renesas H8S,
137 >18     leshort         49              Renesas H8/500,
138 >18     leshort         50              IA-64,
139 >18     leshort         51              Stanford MIPS-X,
140 >18     leshort         52              Motorola Coldfire,
141 >18     leshort         53              Motorola M68HC12,
142 >18     leshort         54              Fujitsu MMA,
143 >18     leshort         55              Siemens PCP,
144 >18     leshort         56              Sony nCPU,
145 >18     leshort         57              Denso NDR1,
146 >18     leshort         58              Start*Core,
147 >18     leshort         59              Toyota ME16,
148 >18     leshort         60              ST100,
149 >18     leshort         61              Tinyj emb.,
150 >18     leshort         62              x86-64,
151 >18     leshort         63              Sony DSP,
152 >18     leshort         64              DEC PDP-10,
153 >18     leshort         65              DEC PDP-11,
154 >18     leshort         66              FX66,
155 >18     leshort         67              ST9+ 8/16 bit,
156 >18     leshort         68              ST7 8 bit,
157 >18     leshort         69              MC68HC16,
158 >18     leshort         70              MC68HC11,
159 >18     leshort         71              MC68HC08,
160 >18     leshort         72              MC68HC05,
161 >18     leshort         73              SGI SVx or Cray NV1,
162 >18     leshort         74              ST19 8 bit,
163 >18     leshort         75              Digital VAX,
164 >18     leshort         76              Axis cris,
165 >18     leshort         77              Infineon 32-bit embedded,
166 >18     leshort         78              Element 14 64-bit DSP,
167 >18     leshort         79              LSI Logic 16-bit DSP,
168 >18     leshort         80              MMIX,
169 >18     leshort         81              Harvard machine-independent,
170 >18     leshort         82              SiTera Prism,
171 >18     leshort         83              Atmel AVR 8-bit,
172 >18     leshort         84              Fujitsu FR30,
173 >18     leshort         85              Mitsubishi D10V,
174 >18     leshort         86              Mitsubishi D30V,
175 >18     leshort         87              NEC v850,
176 >18     leshort         88              Renesas M32R,
177 >18     leshort         89              Matsushita MN10300,
178 >18     leshort         90              Matsushita MN10200,
179 >18     leshort         91              picoJava,
180 >18     leshort         92              OpenRISC,
181 >18     leshort         93              ARC Cores Tangent-A5,
182 >18     leshort         94              Tensilica Xtensa,
183 >18     leshort         95              Alphamosaic VideoCore,
184 >18     leshort         96              Thompson Multimedia,
185 >18     leshort         97              NatSemi 32k,
186 >18     leshort         98              Tenor Network TPC,
187 >18     leshort         99              Trebia SNP 1000,
188 >18     leshort         100             STMicroelectronics ST200,
189 >18     leshort         101             Ubicom IP2022,
190 >18     leshort         102             MAX Processor,
191 >18     leshort         103             NatSemi CompactRISC,
192 >18     leshort         104             Fujitsu F2MC16,
193 >18     leshort         105             TI msp430,
194 >18     leshort         106             Analog Devices Blackfin,
195 >18     leshort         107             S1C33 Family of Seiko Epson,
196 >18     leshort         108             Sharp embedded,
197 >18     leshort         109             Arca RISC,
198 >18     leshort         110             PKU-Unity Ltd.,
199 >18     leshort         111             eXcess: 16/32/64-bit,
200 >18     leshort         112             Icera Deep Execution Processor,
201 >18     leshort         113             Altera Nios II,
202 >18     leshort         114             NatSemi CRX,
203 >18     leshort         115             Motorola XGATE,
204 >18     leshort         116             Infineon C16x/XC16x,
205 >18     leshort         117             Renesas M16C series,
206 >18     leshort         118             Microchip dsPIC30F,
207 >18     leshort         119             Freescale RISC core,
208 >18     leshort         120             Renesas M32C series,
209 >18     leshort         131             Altium TSK3000 core,
210 >18     leshort         132             Freescale RS08,
211 >18     leshort         134             Cyan Technology eCOG2,
212 >18     leshort         135             Sunplus S+core7 RISC,
213 >18     leshort         136             New Japan Radio (NJR) 24-bit DSP,
214 >18     leshort         137             Broadcom VideoCore III,
215 >18     leshort         138             LatticeMico32,
216 >18     leshort         139             Seiko Epson C17 family,
217 >18     leshort         140             TI TMS320C6000 DSP family,
218 >18     leshort         141             TI TMS320C2000 DSP family,
219 >18     leshort         142             TI TMS320C55x DSP family,
220 >18     leshort         160             STMicroelectronics 64bit VLIW DSP,
221 >18     leshort         161             Cypress M8C,
222 >18     leshort         162             Renesas R32C series,
223 >18     leshort         163             NXP TriMedia family,
224 >18     leshort         164             QUALCOMM DSP6,
225 >18     leshort         165             Intel 8051 and variants,
226 >18     leshort         166             STMicroelectronics STxP7x family,
227 >18     leshort         167             Andes embedded RISC,
228 >18     leshort         168             Cyan eCOG1X family,
229 >18     leshort         169             Dallas MAXQ30,
230 >18     leshort         170             New Japan Radio (NJR) 16-bit DSP,
231 >18     leshort         171             M2000 Reconfigurable RISC,
232 >18     leshort         172             Cray NV2 vector architecture,
233 >18     leshort         173             Renesas RX family,
234 >18     leshort         174             META,
235 >18     leshort         175             MCST Elbrus,
236 >18     leshort         176             Cyan Technology eCOG16 family,
237 >18     leshort         177             NatSemi CompactRISC,
238 >18     leshort         178             Freescale Extended Time Processing Unit,
239 >18     leshort         179             Infineon SLE9X,
240 >18     leshort         180             Intel L1OM,
241 >18     leshort         181             Intel K1OM,
242 >18     leshort         183             ARM aarch64,
243 >18     leshort         185             Atmel 32-bit family,
244 >18     leshort         186             STMicroeletronics STM8 8-bit,
245 >18     leshort         187             Tilera TILE64,
246 >18     leshort         188             Tilera TILEPro,
247 >18     leshort         189             Xilinx MicroBlaze 32-bit RISC,
248 >18     leshort         190             NVIDIA CUDA architecture,
249 >18     leshort         191             Tilera TILE-Gx,
250 >18     leshort         197             Renesas RL78 family,
251 >18     leshort         199             Renesas 78K0R,
252 >18     leshort         200             Freescale 56800EX,
253 >18     leshort         201             Beyond BA1,
254 >18     leshort         202             Beyond BA2,
255 >18     leshort         203             XMOS xCORE,
256 >18     leshort         204             Microchip 8-bit PIC(r),
257 >18     leshort         210             KM211 KM32,
258 >18     leshort         211             KM211 KMX32,
259 >18     leshort         212             KM211 KMX16,
260 >18     leshort         213             KM211 KMX8,
261 >18     leshort         214             KM211 KVARC,
262 >18     leshort         215             Paneve CDP,
263 >18     leshort         216             Cognitive Smart Memory,
264 >18     leshort         217             iCelero CoolEngine,
265 >18     leshort         218             Nanoradio Optimized RISC,
266 >18     leshort         243             UCB RISC-V,
267 >18     leshort         247             eBPF,
268 >18     leshort         251             NEC VE,
269 >18     leshort         0x1057          AVR (unofficial),
270 >18     leshort         0x1059          MSP430 (unofficial),
271 >18     leshort         0x1223          Adapteva Epiphany (unofficial),
272 >18     leshort         0x2530          Morpho MT (unofficial),
273 >18     leshort         0x3330          FR30 (unofficial),
274 >18     leshort         0x3426          OpenRISC (obsolete),
275 >18     leshort         0x4688          Infineon C166 (unofficial),
276 >18     leshort         0x5441          Cygnus FRV (unofficial),
277 >18     leshort         0x5aa5          DLX (unofficial),
278 >18     leshort         0x7650          Cygnus D10V (unofficial),
279 >18     leshort         0x7676          Cygnus D30V (unofficial),
280 >18     leshort         0x8217          Ubicom IP2xxx (unofficial),
281 >18     leshort         0x8472          OpenRISC (obsolete),
282 >18     leshort         0x9025          Cygnus PowerPC (unofficial),
283 >18     leshort         0x9026          Alpha (unofficial),
284 >18     leshort         0x9041          Cygnus M32R (unofficial),
285 >18     leshort         0x9080          Cygnus V850 (unofficial),
286 >18     leshort         0xa390          IBM S/390 (obsolete),
287 >18     leshort         0xabc7          Old Xtensa (unofficial),
288 >18     leshort         0xad45          xstormy16 (unofficial),
289 >18     leshort         0xbaab          Old MicroBlaze (unofficial),,
290 >18     leshort         0xbeef          Cygnus MN10300 (unofficial),
291 >18     leshort         0xdead          Cygnus MN10200 (unofficial),
292 >18     leshort         0xf00d          Toshiba MeP (unofficial),
293 >18     leshort         0xfeb0          Renesas M32C (unofficial),
294 >18     leshort         0xfeba          Vitesse IQ2000 (unofficial),
295 >18     leshort         0xfebb          NIOS (unofficial),
296 >18     leshort         0xfeed          Moxie (unofficial),
297 >18     default         x
298 >>18    leshort         x               *unknown arch 0x%x*
299 >20     lelong          0               invalid version
300 >20     lelong          1               version 1
301
302 0       string          \177ELF         ELF
303 !:strength *2
304 >4      byte            0               invalid class
305 >4      byte            1               32-bit
306 >4      byte            2               64-bit
307 >5      byte            0               invalid byte order
308 >5      byte            1               LSB
309 >>0     use             elf-le
310 >5      byte            2               MSB
311 >>0     use             \^elf-le
312 >7      byte            0               (SYSV)
313 >7      byte            1               (HP-UX)
314 >7      byte            2               (NetBSD)
315 >7      byte            3               (GNU/Linux)
316 >7      byte            4               (GNU/Hurd)
317 >7      byte            5               (86Open)
318 >7      byte            6               (Solaris)
319 >7      byte            7               (Monterey)
320 >7      byte            8               (IRIX)
321 >7      byte            9               (FreeBSD)
322 >7      byte            10              (Tru64)
323 >7      byte            11              (Novell Modesto)
324 >7      byte            12              (OpenBSD)
325 >7      byte            13              (OpenVMS)
326 >7      byte            14              (HP NonStop Kernel)
327 >7      byte            15              (AROS Research Operating System)
328 >7      byte            16              (FenixOS)
329 >7      byte            17              (Nuxi CloudABI)
330 >7      byte            97              (ARM)
331 >7      byte            202             (Cafe OS)
332 >7      byte            255             (embedded)