Struct falcon::loader::ElfLinker
[−]
[src]
pub struct ElfLinker { /* fields omitted */ }
Loader which links together multiple Elf files. Currently only X86 supported.
Methods
impl ElfLinker
[src]
fn new(filename: &Path) -> Result<ElfLinker>
[src]
Takes a path to an Elf and loads the Elf, its dependencies, and links them together.
fn load_elf(&mut self, filename: &Path, base_address: u64) -> Result<()>
[src]
Takes the path to an Elf, and a base address the Elf should be loaded at. Loads the Elf, all it's dependencies (DT_NEEDED), and then handles the supported relocations.
fn add_user_function(&mut self, address: u64)
[src]
Inform the linker of a function at the given address.
This function will be added to calls to function_entries
and will be automatically
lifted when calling to_program
.
Trait Implementations
impl Clone for ElfLinker
[src]
fn clone(&self) -> ElfLinker
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl Debug for ElfLinker
[src]
impl Loader for ElfLinker
[src]
fn memory(&self) -> Result<Memory>
[src]
Get a model of the memory contained in the binary
fn function_entries(&self) -> Result<Vec<FunctionEntry>>
[src]
Get addresses for known function entries
fn program_entry(&self) -> u64
[src]
The address program execution should begin at
fn architecture(&self) -> Result<Architecture>
[src]
Get the architecture of the binary
fn function(&self, address: u64) -> Result<Function>
[src]
Lift just one function from the executable
fn program(&self) -> Result<Program>
[src]
Lift executable into an il::Program