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, 二进制解析, 可视化界面, 开发工具, 文件格式, 网络流量审计, 通知系统