#pe #parse #entries #iterating #moment #message-table

libpefile

用于解析 PE 文件的库(目前仅支持遍历 MESSAGE_TABLE 条目)

5 个版本

0.2.2 2021 年 7 月 2 日
0.2.1 2021 年 7 月 2 日
0.2.0 2021 年 6 月 30 日
0.1.1 2021 年 6 月 30 日
0.1.0 2021 年 6 月 30 日

8#moment

自定义许可GPL-3.0许可

190KB
764 代码行(不包括注释)

包含(Windows DLL,155KB)samples/msaudite.dll

https://crates.io/crates/libpefile Build-and-Test

libpefile

用于解析 PE 文件的库

安装

cargo install libpefile

使用示例

use libpefile::*;
use std::path::PathBuf;

fn main() -> std::io::Result<()> {
    let manifest_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap();
    let dll_file = PathBuf::from(format!("{}/samples/msaudite.dll", manifest_dir));
    let pefile = PEFile::new(dll_file)?;

    for msg in pefile.messages_iter()?.filter_map(|r| r.ok()) {
        println!("{}: '{}'", msg.msg_id, msg.text);
    }
    Ok(())
}

依赖项

~5.5MB
~163K SLoC