Module pelite::pe32::base_relocs[][src]

Base Relocations Directory.

The base relocations directory describes a list of addresses to pointer values within its module which need to be patched when the module is located at a different address than its preferred load address. When the module contains pointers to itself these pointers need to be fixed when the module is loaded at a different address than its preferred load address.

For a quick and easy overview of how the base relocations are laid out, see this helpful stackoverflow answer.

Examples

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

fn example(file: PeFile<'_>) -> pelite::Result<()> {
    // Access the base relocations
    let base_relocs = file.base_relocs()?;

    // Iterate over the rva which need relocation
    base_relocs.for_each(|rva, ty| {});

    // Iterate over the relocation blocks
    for block in base_relocs.iter_blocks() {}

    Ok(())
}

Structs

BaseRelocs

Base Relocations Directory.

Block

Base Relocation Block.

IterBlocks

Iterator over the base relocation blocks.