Struct goblin::mach::MachO [−][src]
pub struct MachO<'a> { pub header: Header, pub load_commands: Vec<LoadCommand>, pub segments: Segments<'a>, pub symbols: Option<Symbols<'a>>, pub libs: Vec<&'a str>, pub rpaths: Vec<&'a str>, pub entry: u64, pub old_style_entry: bool, pub name: Option<&'a str>, pub little_endian: bool, pub is_64: bool, // some fields omitted }
Expand description
A cross-platform, zero-copy, endian-aware, 32/64 bit Mach-o binary parser
Fields
header: Header
The mach-o header
load_commands: Vec<LoadCommand>
The load commands tell the kernel and dynamic linker how to use/interpret this binary
segments: Segments<'a>
The load command “segments” - typically the pieces of the binary that are loaded into memory
symbols: Option<Symbols<'a>>
The “Nlist” style symbols in this binary - strippable
libs: Vec<&'a str>
The dylibs this library depends on
rpaths: Vec<&'a str>
The runtime search paths for dylibs this library depends on
entry: u64
The entry point (as a virtual memory address), 0 if none
old_style_entry: bool
Whether entry
refers to an older LC_UNIXTHREAD
instead of the newer LC_MAIN
entrypoint
name: Option<&'a str>
The name of the dylib, if any
little_endian: bool
Are we a little-endian binary?
is_64: bool
Are we a 64-bit binary
Implementations
Is this a relocatable object file?
pub fn symbols(&self) -> SymbolIterator<'a>ⓘNotable traits for SymbolIterator<'a>
impl<'a> Iterator for SymbolIterator<'a> type Item = Result<(&'a str, Nlist)>;
pub fn symbols(&self) -> SymbolIterator<'a>ⓘNotable traits for SymbolIterator<'a>
impl<'a> Iterator for SymbolIterator<'a> type Item = Result<(&'a str, Nlist)>;
Return an iterator over all the symbols in this binary
Return a vector of the relocations in this binary
Return the exported symbols in this binary (if any)
Return the imported symbols in this binary that dyld knows about (if any)
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for MachO<'a>
impl<'a> UnwindSafe for MachO<'a>