#binary-parser #parser #pe #parse #winapi

no-std bin+lib binper

BINPER 是一个 Rust 的二进制解析库

6 个版本

0.1.4 2020年5月31日
0.1.3 2020年5月31日
0.0.2 2020年5月21日

#22 in #win32

MIT 许可证

115KB
890 lines

包含 (DOS 可执行文件, 56KB) samples/pe.exe

BINPER

MIT licensed

描述

BINPER 是一个 Rust 的二进制解析库。

🔒 使用 100% 安全的 Rust 实现,并在 Rust 支持的所有平台上运行

安装

cargo install binper

二进制使用

binper [BIN_FILE_PATH]

⚠️ 警告 ⚠️

目前,仅实现了 PE 文件解析

库使用

use std::fs::File;
use std::io::Read;

use binper::pe::pe::PE;

fn main() -> binper::error::Result<()> {
    let mut f = File::open("samples/pe.exe")?;
    let mut data = Vec::new();
    f.read_to_end(&mut data)?;
    let pe:PE = PE::new(&data)?;
    println!("{}", pe);

    Ok(())
}

进度

Windows 二进制 PE

  • DOS 头
  • PE 头
  • 可选头
  • 数据目录
  • 导出、导入表
  • 资源

Linux 二进制 ELF

  • ELF 头
  • 程序头表

贡献

如果您想添加一些功能,修复错误或改进代码(根据 MIT 许可证定义),无需任何额外条款或条件,我将非常乐意接受。

⚠️ 警告 ⚠️

这是一个 alpha 版本。
我不建议您将其用于生产应用程序。
对象的架构可能会更改。

许可证

binper 在 MIT 许可证的条款下分发。

有关详细信息,请参阅 LICENSE

致谢

本项目受到了 goblin 项目的启发。

依赖项

~5MB
~86K SLoC