3个版本
0.3.3 | 2021年7月30日 |
---|---|
0.3.2 | 2021年7月9日 |
0.3.1 | 2021年7月5日 |
#973 in 文件系统
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
许可协议为以下之一
-
MIT许可证(LICENSE-MIT或https://opensource.org/licenses/MIT)
-
Apache许可证2.0版(LICENSE-APACHE或https://www.apache.org/licenses/LICENSE-2.0)
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