7个版本
0.3.1 | 2023年10月13日 |
---|---|
0.3.0 | 2023年1月16日 |
0.2.0 | 2021年12月8日 |
0.1.3 | 2020年5月30日 |
0.1.0 | 2019年4月3日 |
#293 in 解析器实现
2,547 每月下载量
在 3 crates 中使用
72KB
940 行
包含 (ELF 可执行文件/库, 135KB) tests/data/ls
elf_rs
这是一个用于处理ELF文件的无需std库。它支持ELF32和ELF64格式。
用法
要读取ELF文件,请将elf_rs::Elf
与一个&[u8]
内存一起提供
extern crate elf_rs;
use std::io::Read;
use std::fs::File;
use std::env;
use elf_rs::*;
fn read_elf(filename: &String) {
let mut elf_file = File::open(filename).expect("open file failed");
let mut elf_buf = Vec::<u8>::new();
elf_file.read_to_end(&mut elf_buf).expect("read file failed");
let elf = Elf::from_bytes(&elf_buf).expect("load elf file failed");
println!("{:?} header: {:?}", elf, elf.elf_header());
for p in elf.program_header_iter() {
println!("{:x?}", p);
}
for s in elf.section_header_iter() {
println!("{:x?}", s);
}
let s = elf.lookup_section(b".text");
println!("s {:?}", s);
}
在示例目录下有一个演示readelf
,用于读取ELF文件。
$ cargo run --example readelf <path_to_elf_file>
许可证
它根据MIT许可证条款分发。
有关详细信息,请参阅LICENSE文件。
依赖关系
~175–255KB