ELF
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
ELF Binary Preview.
At a glance
| Purpose | An ELF executable, shared library or object (Linux, BSD and other Unix-like systems). |
| Extensions | .elf |
| Poka parser | poka-elf |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-elf/src/main.rs (724 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has pyelftools_obj_simple32.o.elf, read by no test. Covers .elf, .so and .axf. The tree shows the ELF header (class, endianness, OS/ABI, type, machine, entry, counts, flags), every section with its name, every program header, and the symbol count with up to 32 notable function or global symbols from .symtab or .dynsym. Judgement: B3: the headers, sections and segments are decoded, but the dynamic section and symbols are only sampled.
What Poka does not read
- The dynamic section is not decoded: needed libraries, RPATH and SONAME are not shown
- Only 32 symbols are listed; relocations are not read
- Notes (build ID, ABI tag) and the program interpreter are not decoded
- DWARF debug information is not read
- Code is not disassembled
- Files over 64 MiB are cut without a flag
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- goblin (candidate; MIT; Rust; https://github.com/m4b/goblin) — Parses ELF32/64, Mach-O, PE and archives; no_std capable; well established.
- elf (rust-elf) (candidate; Apache-2.0 OR MIT; Rust; https://github.com/cole14/rust-elf) — Pure safe Rust, no_std, no dependencies, fuzz-tested; ELF only.
- object (candidate; Apache-2.0 OR MIT; Rust; https://github.com/gimli-rs/object) — Reads ELF, Mach-O, PE/COFF, Wasm; README says intended for trusted input only.
- LIEF (candidate; Apache-2.0; C++; https://github.com/lief-project/LIEF) — Parses and modifies ELF, PE, Mach-O; C++, Python and Rust APIs.
- pyelftools (candidate; Public domain; Python; https://github.com/eliben/pyelftools) — Pure-Python ELF and DWARF parser; README says public domain, LICENSE file not read.
- binfarce (candidate; MIT; Rust; https://github.com/Shnatsel/binfarce) — Extremely minimal parser for ELF, Mach-O, PE and ar.; v0.2.2, updated 2026-09-17; matched on lib.rs, not tested
- aya-obj (candidate; MIT OR Apache-2.0; Rust; https://github.com/aya-rs/aya) — An eBPF object file parsing library with BTF and relocation support.; v0.3.0, updated 2026-06-24; matched on lib.rs, not tested
- lddtree (candidate; MIT; Rust; https://github.com/messense/lddtree-rs) — Read the ELF dependency tree; v0.5.1, updated 2026-07-08; matched on lib.rs, not tested
Sources
- parsers/poka-elf/src/main.rs
- parsers/poka-elf/plugin.json