#elf #parser #elf64 #32-64 #ehdr #phdr

no-std elf_parser

一个最小化无需std的ELF(32/64)解析器

2 个版本

0.1.1 2022年1月29日
0.1.0 2022年1月29日

#2354解析器实现

MIT/Apache

36KB
1K SLoC

包含 (ELF 可执行文件/库, 24KB) tests/data/elf64, (ELF 可执行文件/库, 8KB) tests/data/elf32

elf_parser

一个最小化无需std的ELF(32/64)解析器。

示例用法

use elf_parser::Elf64;
 
fn main() {
    let bytes = include_bytes!("path/to/elf_file");
    let elf64 = Elf64::from_bytes(bytes).unwrap();
    let ehdr = elf64.ehdr();
    dbg!(ehdr);
     
    let phdr_iter = elf64.phdr_iter();
    for phdr_res in phdr_iter {
        let phdr = phdr_res.unwrap();        
        dbg!(phdr);
    }
}

lib.rs:

一个最小化无需std的ELF(32/64)解析器。

示例用法

use elf_parser::Elf64;

fn main() {
    let bytes = include_bytes!("path/to/elf_file");
    let elf64 = Elf64::from_bytes(bytes).unwrap();
    let ehdr = elf64.ehdr();
    dbg!(ehdr);
    
    let phdr_iter = elf64.phdr_iter();
    for phdr in phdr_iter {     
        dbg!(phdr);
    }
}

无运行时依赖