Module pelite::pe32::exports[][src]

Export Directory.

The export directory contains a list of symbols, well, exported by this module. A symbol can refer to a function, static data or a forwarded reference to an exported symbol in another module.

Symbols can be exported by name or by their ordinal number. The ordinal number of an exported function is its index in the exported function list plus the ordinal base.

Examples

use pelite::pe64::{Pe, PeFile};
use pelite::pe64::exports::GetProcAddress;

fn example(file: PeFile<'_>) -> pelite::Result<()> {
    // Most convenient way to get the address of an export
    file.get_proc_address("ThrowException")?;

    // Access the export directory
    let exports = file.exports()?;

    // Print the export DLL name
    let dll_name = exports.dll_name()?;
    println!("dll_name: {}", dll_name);

    // To query the exports
    let by = exports.by()?;

    // For example: query an export by name
    by.name("?__autoclassinit2@Passwds@@QEAAX_K@Z")?;

    // For example: query an export by ordinal
    by.ordinal(6)?;

    // For example: iterate over all the exports.
    for result in by.iter() {
        if let Ok(export) = result {
            println!("export: {:?}", export);
        }
    }

    // For example: iterate over the named exports
    for result in by.iter_names() {
        if let (Ok(name), Ok(export)) = result {
            println!("export {}: {:?}", name, export);
        }
    }

    Ok(())
}

Structs

By

Export directory symbol lookup.

Exports

Export directory.

Enums

Export

Exported symbol.

Traits

GetProcAddress

Convenient way to get an exported address.