This is a work-in-progress library for reading ELF files. Once complete, at minimum, it will allow the user to read the symbol table, associate source code location information with instruction addresses, etc.
- Get better at writing OCaml and document key lessons
- Make the library feature complete
- Make it fast
- Make the code production-ready
- Uses the
Result
monad (instead of exceptions) for error handling - Uses true 64-bit unsigned integer types for uint64 fields, instead of
int64
- Checks for buffer overflows before reading bytes
- Supports both little- and big-endian encoding
-
let-def/owee: Owee is an excellent library with identical goals, but Owee has limited support for DWARF5.
-
golang/go: I am using the ELF and DWARF code as the reference implementation for my project.
-
elftoolchain: The ELF Toolchain project contains a handy elfc script, which generates binary ELF files based on a YAML description.
Owl is licensed under CC0. No rights reserved.