libgoblin is a cross-platform trifecta of binary parsing and loading fun. Currently, it only
supports the ELF format, in both 32-bit and 64-bit variants (with especial bias towards 64-bit
formats). The mach parser is in progress, and the PE format will follow.
engineered to be tailored towards very different use-case scenarios, for example:
- a no-std mode; just simply set default features to false
- a endian aware parsing and reading
- for binary loaders which don't require this, simply use
For example, if you are writing a 64-bit kernel, or just want a barebones C-like
header interface which defines the structures, just select
--cfg feature=\"elf64\", which will compile without
Similarly, if you want to use host endianness loading via the various
--cfg feature=\"std\", which will not use the
byteorder extern crate, and read the bytes
from disk in the endianness of the host machine.
If you want endian aware reading, and you don't use
default, then you need to opt in as normal
Implements a simple parser and extractor for a Unix Archive.
The generic ELF module, which gives access to ELF constants and other helper functions, which are independent of ELF bithood. Also defines an ELF struct which has a
The ELF 32-bit struct definitions and associated values
The ELF 64-bit struct definitions and associated values
The mach module: Work in Progress!