Project Design
The whole project can be divided into two parts.
- Extracting raw bytes from the ELF.
- Interpreting those raw bytes and creating a c-style dump of it.
Structure
elf_parser
└─ build-steps
...
...
└─ core_api
└─ parser.c
└─ parser.h
└─ dump_structure
└─ dump.c
└─ dump.h
└─ mappings.c
└─ mappings.h
└─ reference
└─ hello_elf
└─ hello_world.c
└─ readelf_output
└─ elf_spec.h
└─ main.c
Few Things About The Project
- It is not perfect.
- I am not trying to compete with projects like
binutils
, which hostsreadelf
orpax-utils
, which hostsdumpelf
or any other project. It is purely to understand the elf specification not by reading docs but by implementing something myself. - It is verbose by design because I am not familiar with things that reduce code but at the cost of readability. I wanted something straightforward.
- It is great for educational purposes, where beginners can read the code and understand it themselves, where things obscure to them are not used to do the thing.
Timeline
Started on July 24, 2025
Finished writing core API on July 31, 2025
Finished writing c-style dumps on August 02, 2025
Starting documentation on August 03, 2025
Improvements ahead.
Last updated on