Crates.io | elrond |
lib.rs | elrond |
version | 1.0.0 |
source | src |
created_at | 2016-12-31 20:45:07.363252 |
updated_at | 2018-01-04 17:42:52.984851 |
description | Standard conformant elf parser |
homepage | https://github.com/valarauca/elrdon |
repository | https://github.com/valarauca/elrond |
max_upload_size | |
id | 7877 |
size | 2,351,222 |
Elrond
Add this to your Cargo.toml
[dependencies]
elrond = "1.0.0"
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