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 reader = BufReader::new(elf_file);
let mut elf = Elfio::new();
elf.load(&mut 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"),
}
match elf.get_class() {
elfio::constant::ELFCLASS32 => println!("32-bit ELF file"),
elfio::constant::ELFCLASS64 => println!("64-bit ELF file"),
_ => println!("ELF class is not recognized"),
}
match elf.get_encoding() {
elfio::constant::ELFDATA2LSB => println!("LSB ELF file"),
elfio::constant::ELFDATA2MSB => println!("MSB ELF file"),
_ => println!("ELF endianess is not recognized"),
}
println!("Start address: 0x{:08X}", elf.get_entry());
Ok(())
}