3 releases (1 stable)

Uses old Rust 2015

1.0.0 Jan 4, 2018
0.0.2 Oct 18, 2017
0.0.1 Dec 31, 2016

#2 in #elf-parser


3.5K SLoC



To use

Add this to your Cargo.toml

elrond = "1.0.0"

Code Example

extern crate elrond;
use elrond::prelude::*;

let mut v = Vec::with_capacity(4096);
let _ = my_file.read_to_end(v.as_mut_slice())?;
let elf = match elrond::parse_elf(v.as_slice()) {
	Ok(x) => x,
	Err(e) => panic!("Could not read elf file {:?}", e)

This crate is fairly feature complete and standard conformant.

It doesn't support all the GNU extensions which you'll likely encounter in a modern Linux or OSX binary. But MOST of what you want is here.

Also the some standards documents disagree on if the HiOS and LoOS are an inclusive range, or just markers. I'm just treating them as unique markers. Incorrect values are passed as Unknown

This is still a work in progress but a lot of progress has been made