Crate goblin [] [src]


say the right

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 and elf64 (and std 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



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 parse method which returns a wrapped Elf64 or Elf32 binary.


The ELF 32-bit struct definitions and associated values


The ELF 64-bit struct definitions and associated values


The mach module: Work in Progress!