Executable and Linkable Format

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Added Kaitai Struct link)
(Provide links to sample files available on discmaster.textfiles.com. Provide more software used for analyzing ELF files and references. Add Wikipedia page on DWARF in links.)
Line 4: Line 4:
 
|pronom={{PRONOM|fmt/688}}, {{PRONOM|fmt/689}}, {{PRONOM|fmt/690}}, {{PRONOM|fmt/691}}
 
|pronom={{PRONOM|fmt/688}}, {{PRONOM|fmt/689}}, {{PRONOM|fmt/690}}, {{PRONOM|fmt/691}}
 
|kaitai struct=elf
 
|kaitai struct=elf
|extensions={{noext}}, {{ext|elf}}, {{ext|o}}, {{ext|so}}, {{ext|mod}}
+
|extensions={{noext}}, {{ext|elf}}, {{ext|o}}, {{ext|ko}}, {{ext|so}}, {{ext|mod}}
 
}}
 
}}
 
'''Executable and Linkable Format''' ('''ELF''') is a file format used for executables, shared (dynamically linked) libraries, object code and [[core dump]]s.
 
'''Executable and Linkable Format''' ('''ELF''') is a file format used for executables, shared (dynamically linked) libraries, object code and [[core dump]]s.
Line 16: Line 16:
 
== Software ==
 
== Software ==
 
* [https://www.gnu.org/software/binutils/ GNU Binutils] → objdump
 
* [https://www.gnu.org/software/binutils/ GNU Binutils] → objdump
 +
* [https://www.gnu.org/software/binutils/ GNU Binutils] → nm (used for reading symbols)
 +
* [https://www.gnu.org/software/libc/ GNU C Library] → ldd (prints shared object dependencies)
 
* [https://www.gnu.org/software/binutils/ GNU Binutils] → readelf
 
* [https://www.gnu.org/software/binutils/ GNU Binutils] → readelf
 +
* elfdump (Available in certain *BSD flavors<ref>[https://forums.freebsd.org/threads/type-o-files-how-does-one-edit.40500/post-224795 Post #8 by kpa of "Type *.o files. How does one edit?" - FreeBSD forums]</ref><ref>[https://sourceforge.net/projects/elfdump/ elfdump - SourceForge project page]</ref> and Solaris<ref>[https://docs.oracle.com/cd/E23823_01/html/816-5165/elfdump-1.html Synopsis - man pages section 1: User Commands - Oracle Docs]</ref>)
 +
 +
== Sample files ==
 +
=== <code>.so</code> or shared object ===
 +
See [https://discmaster.textfiles.com/search?mode=deep&extension=so&family=executable&format=elf Search results for extension "so", that also belongs to the executable family, and is also ELF format - Discmaster.textfiles.com] for a huge list of sample files.
 +
 +
=== <code>.ko</code> or kernel object ===
 +
See [https://discmaster.textfiles.com/search?mode=deep&extension=ko&family=executable&format=elf Search results for extension "ko", that also belongs to the executable family, and is also ELF format - Discmaster.textfiles.com] for a huge list of sample files.
  
 
== Links ==
 
== Links ==
 
* [[Wikipedia: Executable and Linkable Format]]
 
* [[Wikipedia: Executable and Linkable Format]]
 +
** [[Wikipedia: DWARF|Debugging With Arbitrary Record Formats (DWARF) on Wikipedia]] - a debugging data format that was designed along with Executable and Linkable Format (ELF)
 
* [https://github.com/corkami/pics/blob/master/ELF101.png ELF101 - a Linux executable walkthrough]
 
* [https://github.com/corkami/pics/blob/master/ELF101.png ELF101 - a Linux executable walkthrough]
 
* [https://onedrive.live.com/view.aspx?resid=EBE7DEDA70D06DA0!107&app=PowerPoint&authkey=!AD-O3oq3Ung7pzk Hacking GCN via OpenGL (it's got an ELF in it)]
 
* [https://onedrive.live.com/view.aspx?resid=EBE7DEDA70D06DA0!107&app=PowerPoint&authkey=!AD-O3oq3Ung7pzk Hacking GCN via OpenGL (it's got an ELF in it)]
 
* [http://www.cirosantilli.com/elf-hello-world/ ELF Hello World Tutorial]
 
* [http://www.cirosantilli.com/elf-hello-world/ ELF Hello World Tutorial]
 +
 +
== References ==
 +
<references/>

Revision as of 00:34, 10 August 2025

File Format
Name Executable and Linkable Format
Ontology
Extension(s) (none), .elf, .o, .ko, .so, .mod
PRONOM fmt/688, fmt/689, fmt/690, fmt/691
Kaitai Struct Spec elf.ksy

Executable and Linkable Format (ELF) is a file format used for executables, shared (dynamically linked) libraries, object code and core dumps.

The Wikipedia article has a long list of links to various specifications.

Contents

Format info

Software

Sample files

.so or shared object

See Search results for extension "so", that also belongs to the executable family, and is also ELF format - Discmaster.textfiles.com for a huge list of sample files.

.ko or kernel object

See Search results for extension "ko", that also belongs to the executable family, and is also ELF format - Discmaster.textfiles.com for a huge list of sample files.

Links

References

  1. Post #8 by kpa of "Type *.o files. How does one edit?" - FreeBSD forums
  2. elfdump - SourceForge project page
  3. Synopsis - man pages section 1: User Commands - Oracle Docs
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox