3 releases
0.3.3 | Jul 30, 2021 |
---|---|
0.3.2 | Jul 9, 2021 |
0.3.1 | Jul 5, 2021 |
#973 in Filesystem
98KB
1.5K
SLoC
Contains (ELF exe/lib, 70KB) tests/files/hello_ppc64, (ELF exe/lib, 5KB) tests/files/hello_32, (ELF exe/lib, 7KB) tests/files/hello_64, (ELF exe/lib, 7KB) tests/files/hello_ppc, (ELF exe/lib, 14KB) tests/files/i2c-gpio.ko
ELFIO
ELFIO is a Rust library intended for reading and generating files in the ELF binary format. The library supports processing of ELF files for 32- and 64-bit architectures regardless of their endianess
ELFIO is a Rust language port of the corresponding C++ library also called ELFIO
Status
Work in progress. Only ELF file reader is implemented so far. Your contribution is welcomed!
Documentation and Tutorial
Use cargo to produce the library documentation:
cargo doc
Tutorial is available as an example source code. To compile the tutorial use the following cargo command:
cargo test --example tutorial
Licensed under either of these
-
MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
-
Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
lib.rs
:
'elfio' is a Rust library intended for reading and generation files in the ELF binary format. The library supports processing of ELF files for 32- and 64-bit architectures regardless of their endianess
For example:
use std::fs::File;
use std::io;
use std::io::BufReader;
use elfio::Elfio;
fn main() -> io::Result<()> {
let elf_file = File::open("tests/files/hello_64")?;
let mut file_reader = BufReader::new(elf_file);
let mut elf = elfio::Elfio::new();
elf.load(&mut file_reader)?;
match elf.get_type() {
elfio::constant::ET_REL => println!("Object ELF file"),
elfio::constant::ET_EXEC => println!("Executable ELF file"),
elfio::constant::ET_DYN => println!("Shared library ELF file"),
elfio::constant::ET_CORE => println!("Core ELF file"),
_ => println!("ELF type is not recognized"),
}
Ok(())
}
Dependencies
~155KB