#elf-file #elf #binary-format #bin #reading #file-format #intended

elfio

ELFIO是一个用于读取和生成ELF二进制格式文件的Rust库

3个版本

0.3.3 2021年7月30日
0.3.2 2021年7月9日
0.3.1 2021年7月5日

#973 in 文件系统

MIT/Apache

98KB
1.5K SLoC

包含(ELF可执行文件/库,70KB)tests/files/hello_ppc64,(ELF可执行文件/库,5KB)tests/files/hello_32,(ELF可执行文件/库,7KB)tests/files/hello_64,(ELF可执行文件/库,7KB)tests/files/hello_ppc,(ELF可执行文件/库,14KB)tests/files/i2c-gpio.ko

ELFIO

ELFIO是一个用于读取和生成ELF二进制格式文件的Rust库。该库支持32位和64位架构的ELF文件处理,不论其字节序如何

ELFIO是名为ELFIO的C++库的Rust语言移植版

状态

开发中。目前仅实现了ELF文件读取器。欢迎您的贡献!

文档和教程

使用cargo生成库文档

cargo doc

教程作为示例源代码提供。要编译教程,请使用以下cargo命令

cargo test --example tutorial

许可协议为以下之一


lib.rs:

'elfio'是一个用于读取和生成ELF二进制格式文件的Rust库。该库支持32位和64位架构的ELF文件处理,不论其字节序如何

例如

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(())
}

依赖项

~155KB