zeo/metis

GitHub: zeo/metis

一个轻量级的 Rust 库,用于解析 32 位 ELF 文件头并提取魔数、类、端序、目标机器和入口点等元信息。

Stars: 0 | Forks: 0

# metis 一个用于解析 ELF 文件头的小型解析器。给它一个字节切片,它会读取标识字节,根据 ELF 类(32 位或 64 位)进行分发,并返回魔数、类、端序、目标机器和入口点。 ## 安装 ``` [dependencies] metis = { git = "https://github.com/zeo/metis" } ``` ## 示例 ``` use metis::{parse_elf_header, ParseErr}; fn main() -> Result<(), ParseErr> { let bytes = std::fs::read("/bin/ls").unwrap(); let header = parse_elf_header(&bytes)?; println!("class: {}", header.class); println!("machine: {:#06x}", header.machine); println!("entry: {:#x}", header.entry); Ok(()) } ``` 对于 16 字节以下的切片,`parse_elf_header` 会返回 `ParseErr::TooShort`;当魔数或类不匹配时返回 `ParseErr::NotElf`;如果文件头损坏,则返回封装了底层 `object::Error` 的 `ParseErr::Malformed`。 ## 许可证 MIT OR Apache-2.0
标签:ELF解析, Rust, SOC Prime, 二进制解析, 可视化界面, 开发工具, 文件格式, 网络流量审计, 通知系统