LIEF is a cross-platform library to parse, inspect, modify, and rebuild executable formats through a consistent API. It supports ELF, PE, Mach-O, COFF, DEX, OAT, VDEX, ART, and more, with bindings for C++, Python, Rust, Java, and C.
It turns out that many projects need to parse executable formats and they usually re-implement their own parser. Moreover, these parsers are usually bound to one language.
LIEF fills this void with one well-tested abstraction used by reverse-engineering tools, security products, instrumentation pipelines, and research projects.