Crate goblin [−] [src]
libgoblin
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. libgoblin
is
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
elf32
andelf64
(andstd
of course)
Example Feature Usage
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 elf64
, --cfg feature=\"elf64\"
, which will compile without std
.
Similarly, if you want to use host endianness loading via the various from_fd
methods, --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
via endian_fd
Modules
archive |
Implements a simple parser and extractor for a Unix Archive. |
elf |
The generic ELF module, which gives access to ELF constants and other helper functions, which are independent of ELF bithood. Also defines an |
elf32 |
The ELF 32-bit struct definitions and associated values |
elf64 |
The ELF 64-bit struct definitions and associated values |
mach |
The mach module: Work in Progress! |