elf 13 KB

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