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

libpefile

library to parse PE files (only iterating over MESSAGE_TABLE entries is supported at the moment)

5 releases

0.2.2 Jul 2, 2021
0.2.1 Jul 2, 2021
0.2.0 Jun 30, 2021
0.1.1 Jun 30, 2021
0.1.0 Jun 30, 2021

#8 in #moment

Custom license and GPL-3.0 licenses

190KB
764 lines

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

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

libpefile

library to parse PE files

Installation

cargo install libpefile

Usage example

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(())
}

Dependencies

~5.5MB
~163K SLoC