Meta tags:
Headings (most frequently used words):
header, unix, executable, and, linkable, format, contents, file, layout, tools, applications, specifications, 86open, fatelf, universal, binaries, for, linux, see, also, references, further, reading, external, links, elf, example, hexdump, program, section, like, systems, non, adoption, game, consoles, powerpc, mobile, phones, blockchain, platforms,
Text of the page (most frequently used words):
the (176), elf (78), and (66), for (55), #format (43), file (42), bit (41), header (37), #section (31), retrieved (27), linux (26), executable (25), this (25), edit (24), from (23), system (22), table (21), with (21), binary (20), unix (20), archived (18), abi (18), that (17), object (17), program (17), size (17), processor (17), operating (16), systems (16), version (15), contains (15), interface (13), original (13), risc (13), motorola (13), bytes (13), segment (13), was (12), formats (12), org (12), use (11), files (11), supplement (11), information (11), field (11), offset (11), e_ident (11), articles (10), shared (10), are (10), standard (10), architecture (10), set (10), which (10), powerpc (10), reserved (10), code (9), page (9), 86open (9), project (9), solaris (9), also (9), data (9), has (9), microcontroller (9), entry (9), 0x10 (9), specific (9), may (8), all (8), 1999 (8), application (8), specification (8), embedded (8), playstation (8), like (8), binaries (8), x86 (8), some (8), entries (8), 0x20 (8), 0x04 (8), wikipedia (7), october (7), links (7), wayback (7), sco (7), 1997 (7), fatelf (7), used (7), byte (7), example (7), can (7), core (7), 0x28 (7), type (7), value (7), linkable (6), about (6), non (6), sections (6), pdf (6), machine (6), article (6), libraries (6), freebsd (6), 2007 (6), software (6), linking (6), gnu (6), other (6), main (6), run (6), mips (6), siemens (6), tools (6), 0x40 (6), 0x18 (6), address (6), memory (6), 0x08 (6), dynamic (6), 0x00 (6), different (6), mobile (5), available (5), statements (5), 2021 (5), into (5), 2016 (5), link (5), out (5), library (5), april (5), solana (5), portable (5), glibc (5), intel (5), instruction (5), applications (5), uses (5), phones (5), range (5), structure (5), 0x38 (5), 0x30 (5), identifies (5), meaning (5), name (5), number (5), toggle (4), contents (4), search (4), external (4), cs1 (4), maint (4), deprecated (4), archival (4), service (4), index (4), cite (4), com (4), group (4), drepper (4), july (4), linker (4), netbsd (4), relocation (4), executables (4), 2000 (4), 2010 (4), 1998 (4), 2015 (4), specifications (4), programs (4), android (4), symbian (4), windows (4), 2018 (4), 2014 (4), git (4), compatibility (4), support (4), kernel (4), implementation (4), amd64 (4), sparc (4), arm (4), its (4), platforms (4), feature (4), needed (4), replaced (4), read (4), end (4), one (4), each (4), zero (4), 0x14 (4), image (4), p_flags (4), inclusive (4), layout (4), 0x34 (4), target (4), respectively (4), digital (4), stmicroelectronics (4), hitachi (4), hide (4), move (4), sidebar (4), view (3), under (3), dead (3), 2025 (3), containing (3), unsourced (3), february (3), november (3), web (3), ibm (3), ulrich (3), list (3), based (3), guide (3), relocatable (3), objects (3), 1995 (3), 2004 (3), further (3), 2009 (3), ryan (3), gordon (3), leibovitch (3), evan (3), update (3), linuxfoundation (3), 2024 (3), 2017 (3), 2019 (3), sourceware (3), tool (3), history (3), position (3), virtual (3), see (3), cpu (3), platform (3), versions (3), long (3), through (3), vendors (3), chosen (3), began (3), lxrun (3), open (3), later (3), beos (3), after (3), common (3), case (3), runtime (3), native (3), citation (3), sony (3), wii (3), game (3), consoles (3), where (3), adoption (3), help (3), binutils (3), more (3), contain (3), 0x24 (3), alignment (3), depending (3), 0x2c (3), 0x1c (3), 0x0c (3), 0x4 (3), 0x2 (3), 0x1 (3), start (3), 0x12 (3), array (3), 0x0f (3), 0x0e (3), symbol (3), 0x0b (3), 0x0a (3), unused (3), purpose (3), create (3), interpretation (3), either (3), dsp (3), corp (3), 0x09 (3), 0x07 (3), 0x06 (3), 0x03 (3), 0x02 (3), 0x01 (3), ei_abiversion (3), fields (3), segments (3), any (3), many (3), release (3), languages (2), developers (2), contact (2), privacy (2), policy (2), terms (2), you (2), wikimedia (2), foundation (2), commons (2), 2026 (2), potentially (2), dated (2), 2023 (2), template (2), turned (2), prose (2), pages (2), needing (2), cleanup (2), short (2), description (2), wikidata (2), https (2), linkers (2), loaders (2), comparison (2), hunk (2), coff (2), august (2), 2006 (2), september (2), bruce (2), perens (2), announce (2), engineering (2), manual (2), definition (2), 2005 (2), debugging (2), 2003 (2), introduction (2), how (2), 2011 (2), published (2), morgan (2), kaufmann (2), programming (2), 2020 (2), isbn (2), reading (2), joe (2), icculus (2), better (2), record (2), ronald (2), 2008 (2), lsb (2), referenced (2), compile (2), e_machine (2), linked (2), microsoft (2), subsystem (2), hewlett (2), packard (2), 2012 (2), port (2), wiki (2), minix (2), elfutils (2), pygments (2), blob (2), include (2), edition (2), tis (2), revision (2), references (2), portal (2), extension (2), adds (2), abstraction (2), order (2), etc (2), not (2), integrated (2), universal (2), having (2), supported (2), layer (2), itself (2), source (2), via (2), andrew (2), were (2), tim (2), first (2), initial (2), spec (2), above (2), architectures (2), e32image (2), zseries (2), 390 (2), ppc (2), m32r (2), itanium (2), processes (2), compiled (2), berkeley (2), packet (2), filter (2), then (2), bpf (2), these (2), during (2), blockchain (2), patch (2), firmware (2), known (2), load (2), most (2), produced (2), them (2), running (2), nokia (2), aros (2), extended (2), but (2), nonstop (2), stratus (2), openvms (2), openbsd (2), irix (2), utility (2), including (2), dump (2), provides (2), objdump (2), free (2), otherwise (2), required (2), power (2), two (2), several (2), purposes (2), sh_info (2), associated (2), special (2), thread (2), local (2), execution (2), 0x60000000 (2), defined (2), 0x13 (2), 0x11 (2), constructors (2), addends (2), string (2), should (2), p_align (2), p_offset (2), p_vaddr (2), dependent (2), flags (2), physical (2), process (2), e_phentsize (2), e_phnum (2), e_phoff (2), hexdump (2), 0x3e (2), 0x32 (2), 0x3c (2), explained (2), below (2), will (2), typically (2), 0x3a (2), 0x2e (2), 0x36 (2), 0x2a (2), depends (2), points (2), bits (2), point (2), specifies (2), family (2), logic (2), technologies (2), equipment (2), pdp (2), fujitsu (2), future (2), little (2), 0x05 (2), unknown (2), ignored (2), ei_pad (2), treats (2), defines (2), requested (2), ei_osabi (2), current (2), signify (2), followed (2), magic (2), 0x7f (2), time (2), describing (2), extensible (2), named (2), dumps (2), ago (2), appearance (2), upload (2), changes (2), subsection (2), log (2), account (2), donate (2), menu (2), add, topic, cookie, statement, statistics, conduct, legal, safety, contacts, disclaimers, text, additional, apply, using, site, agree, registered, trademark, profit, organization, inc, creative, attribution, sharealike, license, rendered, parsoid, last, edited, utc, hidden, categories, webarchive, need, matches, category, php, title, executable_and_linkable_format, oldid, 1378065486, sample, exe, xcoff, pef, 360, omf, mach, goff, ecoff, cmd, aif, groklaw, discussion, declaration, announcement, debian, mailing, today, eresi, reverse, oracle, faq, handbook, github, pat, beirne, study, loading, relocs, elfsh, team, without, ptrace, julien, vanegue, brian, raiter, whirlwind, tutorial, creating, really, teensy, eric, youngdale, dissection, libelf, gelf, manipulate, peter, seebach, december, unsung, hero, hardworking, write, author, www, akkadia, errata, book, series, san, francisco, usa, 42413382, oclc, 55860, 496, levine, john, fangrui, song, evolution, brockmeier, june, weekly, news, self, anatomy, alleged, failure, holwerda, thom, osnews, halts, turns, liked, uncertainty, the86open, final, bulletin, status, frequently, asked, questions, leverages, llvm, compiler, infrastructure, chapter, thomas, romain, jan, quarks, lab, rosen, kenneth, host, douglas, klee, rachel, rosinski, richard, mcgraw, hill, professional, 707, dynamically, called, 9780071706988, complete, reference, encrypted, relocated, psp, foley, mary, zdnet, hood, enterprise, guardian, programmer, riscos, info, gccsdk, state, x86_64, minix3, 2013, minixreleases, lexers, sysdeps, ldsodefs, libc, abis, lxr, 1993, appendix, independent, dso, vdso, dwarf, computer, capabilities, aimed, additionally, word, there, potential, advantage, multiple, been, mainline, fat, bsds, added, decided, industry, declare, dissolved, progressed, mid, developing, able, openserver, unixware, announced, official, linuxworld, march, sun, microsystems, officially, supporting, early, moved, containers, steering, committee, marc, ewing, dion, johnson, roach, bryan, wayne, sparks, linus, torvalds, people, keith, bostic, chuck, cranor, michael, davidson, chris, demetriou, don, dugger, steve, ginzburg, jon, maddog, hall, ron, holt, jordan, hubbard, dave, jensen, kean, johnston, josey, robert, lipe, bela, lubkin, marsland, greg, ruckle, joel, silverstein, chia, tien, erik, troan, companies, represented, bsdi, sunsoft, email, discussions, met, together, santa, cruz, operation, offices, eventually, specifically, had, involved, facto, form, consensus, compatible, encourage, idea, standardize, small, subset, 1170, predecessor, single, enable, unmodified, originally, designated, 150, supplements, specified, base, 64bit, 32bit, 6800, eabi, documentation, 2022, conventions, intel386, generic, chain, deployed, executed, environment, loader, validates, deployment, smart, contracts, assembly, underground, modding, culture, avr32, texas, instruments, msp430, implementations, notably, apple, almost, machines, company, atmel, avr, elfpack, art, default, since, lollipop, installation, possible, package, managers, termux, sources, clang, gcc, repositories, java, tablets, n900, meego, maemo, samsung, wave, s8500, bada, e398, slvr, v3i, phone, lte2, applied, v360, sgold, sgold2, s75, benq, e71, el71, c65, w610, w300, w800i, ericsson, devices, café, morphos, prior, ehf, amigas, equipped, expansion, cards, amigaos, nintendo, gamecube, dreamcast, gp2x, vita, only, deos, hpe, tpf, fuchsia, skyos, vos, reimplementation, haiku, computers, stayed, preferred, seen, such, neutrino, qnx, except, continue, som, syllable, dragonfly, bsd, redox, illumos, older, various, environments, appropriate, editing, converting, display, intended, wide, back, descriptor, command, viewing, elfdump, alternative, purely, displays, provided, readelf, fixed, sh_entsize, must, sh_addralign, extra, sh_link, sh_size, sh_offset, loaded, sh_addr, attributes, excluded, unless, allocated, shf_exclude, 0x8000000, ordering, requirement, shf_ordered, 0x4000000, shf_maskproc, 0xf0000000, shf_maskos, 0x0ff00000, hold, shf_tls, 0x400, member, shf_group, 0x200, handling, shf_os_nonconforming, 0x100, preserve, combining, shf_link_order, 0x80, sht, shf_info_link, null, terminated, strings, shf_strings, might, merged, shf_merge, shf_execinstr, occupies, shf_alloc, writable, shf_write, sh_flags, sht_loos, types, sht_num, indices, sht_symtab_shndx, sht_group, pre, sht_preinit_array, destructors, sht_fini_array, sht_init_array, sht_dynsym, sht_shlib, sht_rel, 0x9, space, bss, sht_nobits, 0x8, notes, sht_note, 0x7, sht_dynamic, 0x6, hash, sht_hash, 0x5, sht_rela, sht_strtab, 0x3, sht_symtab, sht_progbits, sht_null, 0x0, sh_type, represents, shstrtab, sh_name, specify, positive, integral, equating, modulus, flag, definitions, p_memsz, p_filesz, relevant, p_paddr, readable, pf_r, writeable, pf_w, pf_x, pt_hiproc, 0x7fffffff, pt_loproc, 0x70000000, pt_hios, 0x6fffffff, pt_loos, storage, pt_tls, 0x00000007, pt_phdr, 0x00000006, pt_shlib, 0x00000005, auxiliary, pt_note, 0x00000004, interpreter, pt_interp, 0x00000003, pt_dynamic, 0x00000002, loadable, pt_load, 0x00000001, pt_null, 0x00000000, p_type, tells, found, consists, slightly, because, location, reasons, structured, 00000010, 00000000, names, e_shstrndx, e_shnum, e_shentsize, normally, e_ehsize, e_flags, e_shoff, usually, follows, immediately, following, making, starts, executing, earlier, doesn, have, holds, e_entry, e_version, examples, loongarch, 0x102, wdc, 65c816, 0x101, 0xf7, 0xf3, zilog, z80, 0xdc, armv8, aarch64, 0xb7, mcst, elbrus, e2k, 0xaf, tms320c6000, 0x8c, lsi, 0x4f, element, 0x4e, infineon, 0x4d, axis, communications, 0x4c, vax, 0x4b, st19, 0x4a, silicon, graphics, svx, 0x49, mc68hc05, 0x48, mc68hc08, 0x47, mc68hc11, 0x46, mc68hc16, 0x45, st7, 0x44, st9, 0x43, fx66, 0x42, 0x41, 0x3f, amd, advanced, tinyj, 0x3d, st100, toyota, me16, 0x3b, star, denso, ndr1, microprocessor, 0x39, ncpu, pcp, 0x37, mma, multimedia, accelerator, m68hc12, 0x35, coldfire, stanford, 0x33, 500, 0x31, h8s, 300h, 0x2f, 300, argonaut, 0x2d, tricore, 0x2b, superh, alpha, 0x29, armv7, aarch32, rce, 0x27, trw, 0x26, fr20, 0x25, nec, v800, 0x23, spu, spc, 0x17, s390x, s390, 0x16, 0x15, 80960, rs3000, endian, 370, 80860, mcu, 88000, m88k, 68000, m68k, 32100, isa, et_hiproc, 0xffff, et_loproc, 0xff00, et_hios, 0xfeff, et_loos, 0xfe00, et_core, et_dyn, et_exec, et_rel, et_none, e_type, padding, currently, filled, zeros, when, least, statically, features, level, refuses, greater, than, largest, openvos, nuxi, cloudabi, fenixos, 0x0d, novell, modesto, tru64, monterey, aix, hurd, ei_version, big, affects, multi, starting, endianness, ei_data, ei_class, four, constitute, ascii, ei_mag3, ei_mag0, whether, addresses, three, affected, setting, follow, while, important, entire, owned, orphan, occur, unowned, key, highlighted, referred, made, design, flexible, instance, supports, sizes, does, exclude, particular, allowed, adopted, hardware, endiannesses, cross, formerly, svr4, quickly, accepted, among, processors, device, drivers, computing, views, shows, whereas, lists, container, year, latest, years, laboratories, developed, none, appimage, mod, puff, prx, bin, axf, filename, encyclopedia, item, projects, printable, download, print, export, switch, legacy, parser, get, shortened, url, permanent, related, what, here, general, actions, english, talk, українська, svenska, slovenčina, සිංහල, русский, português, polski, norsk, bokmål, nederlands, മലയാളം, 한국어, 日本語, italiano, français, suomi, فارسی, español, deutsch, čeština, català, top, personal, recent, community, learn, contribute, random, events, navigation, jump, content,
Text of the page (random words):
the table of contents executable and linkable format 21 languages català čeština deutsch español فارسی suomi français italiano 日本語 한국어 മലയാളം nederlands norsk bokmål polski português русский සිංහල slovenčina svenska українська 中文 edit links article talk english read edit view history tools tools move to sidebar hide actions read edit view history general what links here related changes upload file permanent link page information cite this page get shortened url switch to legacy parser print export download as pdf printable version in other projects wikimedia commons wikidata item appearance move to sidebar hide from wikipedia the free encyclopedia standard file format for executables object code shared libraries and core dumps executable and linkable format filename extension none axf bin elf o out prx puff ko mod appimage and so magic number 0x7f e l f developed by unix system laboratories 1 3 initial release 14 may 1998 28 years ago 1998 05 14 latest release 4 2 2 2025 1 year ago 2025 type of format binary executable object shared library core dump container for many executable binary formats an elf file has two views the program header shows the segments used at run time whereas the section header lists the set of sections in computing the executable and linkable format 3 elf formerly named extensible linking format is a common standard file format for executable files object code shared libraries device drivers and core dumps first published in the specification for the application binary interface abi of the unix operating system version named system v release 4 svr4 4 and later in the tool interface standard 1 it was quickly accepted among different vendors of unix systems in 1999 it was chosen as the standard binary file format for unix and unix like systems on x86 processors by the 86open project by design the elf format is flexible extensible and cross platform for instance it supports different endiannesses and address sizes so it does not exclude any particular cpu or instruction set architecture this has allowed it to be adopted by many different operating systems on many different hardware platforms file layout edit each elf file is made up of one elf header followed by file data the data can include program header table describing zero or more memory segments section header table describing zero or more sections data referred to by entries in the program header table or section header table structure of an elf file with key entries highlighted the segments contain information that is needed for run time execution of the file while sections contain important data for linking and relocation any byte in the entire file can be owned by one section at most and orphan bytes can occur which are unowned by any section elf header edit the elf header defines whether to use 32 bit or 64 bit addresses the header contains three fields that are affected by this setting and offset other fields that follow them the elf header is 52 or 64 bytes long for 32 bit and 64 bit binaries respectively elf header 5 offset size bytes field purpose 32 bit 64 bit 32 bit 64 bit 0x00 4 e_ident ei_mag0 through e_ident ei_mag3 0x7f followed by elf 45 4c 46 in ascii these four bytes constitute the magic number 0x04 1 e_ident ei_class this byte is set to either 1 or 2 to signify 32 or 64 bit format respectively 0x05 1 e_ident ei_data this byte is set to either 1 or 2 to signify little or big endianness respectively this affects interpretation of multi byte fields starting with offset 0x10 0x06 1 e_ident ei_version set to 1 for the original and current version of elf 0x07 1 e_ident ei_osabi identifies the target operating system abi value abi 0x00 system v 0x01 hp ux 0x02 netbsd 0x03 linux 0x04 gnu hurd 0x06 solaris 0x07 aix monterey 0x08 irix 0x09 freebsd 0x0a tru64 0x0b novell modesto 0x0c openbsd 0x0d openvms 0x0e nonstop kernel 0x0f aros 0x10 fenixos 0x11 nuxi cloudabi 0x12 stratus technologies openvos 0x08 1 e_ident ei_abiversion further specifies the abi version its interpretation depends on the target abi linux kernel after at least 2 6 has no definition of it 6 so it is ignored for statically linked executables in that case offset and size of ei_pad are 8 glibc 2 12 in case e_ident ei_osabi 3 treats this field as abi version of the dynamic linker 7 it defines a list of dynamic linker s features 8 treats e_ident ei_abiversion as a feature level requested by the shared object executable or dynamic library and refuses to load it if an unknown feature is requested i e e_ident ei_abiversion is greater than the largest known feature 9 0x09 7 e_ident ei_pad reserved padding bytes currently unused should be filled with zeros and ignored when read 0x10 2 e_type identifies object file type value type meaning 0x00 et_none unknown 0x01 et_rel relocatable file 0x02 et_exec executable file 0x03 et_dyn shared object 0x04 et_core core file 0xfe00 et_loos reserved inclusive range operating system specific 0xfeff et_hios 0xff00 et_loproc reserved inclusive range processor specific 0xffff et_hiproc 0x12 2 e_machine specifies target instruction set architecture some examples are value isa 0x00 no specific instruction set 0x01 at t we 32100 0x02 sparc 0x03 x86 0x04 motorola 68000 m68k 0x05 motorola 88000 m88k 0x06 intel mcu 0x07 intel 80860 0x08 mips 0x09 ibm system 370 0x0a mips rs3000 little endian 0x0b 0x0e reserved for future use 0x0f hewlett packard pa risc 0x13 intel 80960 0x14 powerpc 0x15 powerpc 64 bit 0x16 s390 including s390x 0x17 ibm spu spc 0x18 0x23 reserved for future use 0x24 nec v800 0x25 fujitsu fr20 0x26 trw rh 32 0x27 motorola rce 0x28 arm up to armv7 aarch32 0x29 digital alpha 0x2a superh 0x2b sparc version 9 0x2c siemens tricore embedded processor 0x2d argonaut risc core 0x2e hitachi h8 300 0x2f hitachi h8 300h 0x30 hitachi h8s 0x31 hitachi h8 500 0x32 ia 64 0x33 stanford mips x 0x34 motorola coldfire 0x35 motorola m68hc12 0x36 fujitsu mma multimedia accelerator 0x37 siemens pcp 0x38 sony ncpu embedded risc processor 0x39 denso ndr1 microprocessor 0x3a motorola star core processor 0x3b toyota me16 processor 0x3c stmicroelectronics st100 processor 0x3d advanced logic corp tinyj embedded processor family 0x3e amd x86 64 0x3f sony dsp processor 0x40 digital equipment corp pdp 10 0x41 digital equipment corp pdp 11 0x42 siemens fx66 microcontroller 0x43 stmicroelectronics st9 8 16 bit microcontroller 0x44 stmicroelectronics st7 8 bit microcontroller 0x45 motorola mc68hc16 microcontroller 0x46 motorola mc68hc11 microcontroller 0x47 motorola mc68hc08 microcontroller 0x48 motorola mc68hc05 microcontroller 0x49 silicon graphics svx 0x4a stmicroelectronics st19 8 bit microcontroller 0x4b digital vax 0x4c axis communications 32 bit embedded processor 0x4d infineon technologies 32 bit embedded processor 0x4e element 14 64 bit dsp processor 0x4f lsi logic 16 bit dsp processor 0x8c tms320c6000 family 0xaf mcst elbrus e2k 0xb7 arm 64 bits armv8 aarch64 0xdc zilog z80 0xf3 risc v 0xf7 berkeley packet filter 0x101 wdc 65c816 0x102 loongarch 0x14 4 e_version set to 1 for the original version of elf 0x18 4 8 e_entry this is the memory address of the entry point from where the process starts executing this field is either 32 or 64 bits long depending on the format defined earlier byte 0x04 if the file doesn t have an associated entry point then this holds zero 0x1c 0x20 4 8 e_phoff points to the start of the program header table it usually follows the file header immediately following this one making the offset 0x34 or 0x40 for 32 and 64 bit elf executables respectively 0x20 0x28 4 8 e_shoff points to the start of the section header table 0x24 0x30 4 e_flags interpretation of this field depends on the target architecture 0x28 0x34 2 e_ehsize contains the size of this header normally 64 bytes for 64 bit and 52 bytes for 32 bit format 0x2a 0x36 2 e_phentsize contains the size of a program header table entry as explained below this will typically be 0x20 32 bit or 0x38 64 bit 0x2c 0x38 2 e_phnum contains the number of entries in the program header table 0x2e 0x3a 2 e_shentsize contains the size of a section header table entry as explained below this will typically be 0x28 32 bit or 0x40 64 bit 0x30 0x3c 2 e_shnum contains the number of entries in the section header table 0x32 0x3e 2 e_shstrndx contains index of the section header table entry that contains the section names 0x34 0x40 end of elf header size example hexdump edit 00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 elf 00000010 02 00 3e 00 01 00 00 00 c5 48 40 00 00 00 00 00 h 10 program header edit the program header table tells the system how to create a process image it is found at file offset e_phoff and consists of e_phnum entries each with size e_phentsize the layout is slightly different in 32 bit elf vs 64 bit elf because the p_flags are in a different structure location for alignment reasons each entry is structured as program header 11 offset size bytes field purpose 32 bit 64 bit 32 bit 64 bit 0x00 4 p_type identifies the type of the segment value name meaning 0x00000000 pt_null program header table entry unused 0x00000001 pt_load loadable segment 0x00000002 pt_dynamic dynamic linking information 0x00000003 pt_interp interpreter information 0x00000004 pt_note auxiliary information 0x00000005 pt_shlib reserved 0x00000006 pt_phdr segment containing program header table itself 0x00000007 pt_tls thread local storage template 0x60000000 pt_loos reserved inclusive range operating system specific 0x6fffffff pt_hios 0x70000000 pt_loproc reserved inclusive range processor specific 0x7fffffff pt_hiproc 0x04 4 p_flags segment dependent flags position for 64 bit structure value name meaning 0x1 pf_x executable segment 0x2 pf_w writeable segment 0x4 pf_r readable segment 0x04 0x08 4 8 p_offset offset of the segment in the file image 0x08 0x10 4 8 p_vaddr virtual address of the segment in memory 0x0c 0x18 4 8 p_paddr on systems where physical address is relevant reserved for segment s physical address 0x10 0x20 4 8 p_filesz size in bytes of the segment in the file image may be 0 0x14 0x28 4 8 p_memsz size in bytes of the segment in memory may be 0 0x18 4 p_flags segment dependent flags position for 32 bit structure see above p_flags field for flag definitions 0x1c 0x30 4 8 p_align 0 and 1 specify no alignment otherwise should be a positive integral power of 2 with p_vaddr equating p_offset modulus p_align 0x20 0x38 end of program header size section header edit offset size bytes field purpose 32 bit 64 bit 32 bit 64 bit 0x00 4 sh_name an offset to a string in the shstrtab section that represents the name of this section 0x04 4 sh_type identifies the type of this header value name meaning 0x0 sht_null section header table entry unused 0x1 sht_progbits program data 0x2 sht_symtab symbol table 0x3 sht_strtab string table 0x4 sht_rela relocation entries with addends 0x5 sht_hash symbol hash table 0x6 sht_dynamic dynamic linking information 0x7 sht_note notes 0x8 sht_nobits program space with no data bss 0x9 sht_rel relocation entries no addends 0x0a sht_shlib reserved 0x0b sht_dynsym dynamic linker symbol table 0x0e sht_init_array array of constructors 0x0f sht_fini_array array of destructors 0x10 sht_preinit_array array of pre constructors 0x11 sht_group section group 0x12 sht_symtab_shndx extended section indices 0x13 sht_num number of defined types 0x60000000 sht_loos start os specific 0x08 4 8 sh_flags identifies the attributes of the section value name meaning 0x1 shf_write writable 0x2 shf_alloc occupies memory during execution 0x4 shf_execinstr executable 0x10 shf_merge might be merged 0x20 shf_strings contains null terminated strings 0x40 shf_info_link sh_info contains sht index 0x80 shf_link_order preserve order after combining 0x100 shf_os_nonconforming non standard os specific handling required 0x200 shf_group section is member of a group 0x400 shf_tls section hold thread local data 0x0ff00000 shf_maskos os specific 0xf0000000 shf_maskproc processor specific 0x4000000 shf_ordered special ordering requirement solaris 0x8000000 shf_exclude section is excluded unless referenced or allocated solaris 0x0c 0x10 4 8 sh_addr virtual address of the section in memory for sections that are loaded 0x10 0x18 4 8 sh_offset offset of the section in the file image 0x14 0x20 4 8 sh_size size in bytes of the section may be 0 0x18 0x28 4 sh_link contains the section index of an associated section this field is used for several purposes depending on the type of section 0x1c 0x2c 4 sh_info contains extra information about the section this field is used for several purposes depending on the type of section 0x20 0x30 4 8 sh_addralign contains the required alignment of the section this field must be a power of two 0x24 0x38 4 8 sh_entsize contains the size in bytes of each entry for sections that contain fixed size entries otherwise this field contains zero 0x28 0x40 end of section header size tools edit main article gnu binutils readelf is a unix binary utility that displays information about one or more elf files a free software implementation is provided by gnu binutils elfutils provides alternative tools to gnu binutils purely for linux 12 elfdump is a command for viewing elf information in an elf file available under solaris and freebsd objdump provides a wide range of information about elf files and other object formats objdump uses the binary file descriptor library as a back end to structure the elf data the unix file utility can display some information about elf files including the instruction set architecture for which the code in a relocatable executable or shared object file is intended or on which an elf core dump was produced applications edit unix like systems edit this article is in list format but may read better as prose you can help by converting this article if appropriate editing help is available november 2016 the elf format has replaced older executable formats in various environments it has replaced a out and coff formats in unix like operating systems linux solaris illumos irix freebsd 13 netbsd openbsd redox dragonfly bsd syllable hp ux except for 32 bit pa risc programs which continue to use som qnx neutrino minix 14 non unix adoption edit elf has also seen some adoption in non unix operating systems such as openvms in its itanium and amd64 versions 15 beos revision 4 and later for x86 based computers where it replaced the portable executable format the powerpc version stayed with preferred executable format haiku an open source reimplementation of beos risc os 16 stratus vos in pa risc and x86 versions skyos fuchsia os z tpf hpe nonstop os 17 deos microsoft windows also uses the elf format but only for its windows subsystem for linux compatibility system 18 game consoles edit some game consoles also use elf playstation portable 19 playstation vita playstation citation needed playstation 2 playstation 3 playstation 4 playstation 5 gp2x dreamcast gamecube nintendo 64 citati...
|