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,
/* private fields */
}
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§
Source§impl<'a> MachO<'a>
impl<'a> MachO<'a>
Sourcepub fn is_object_file(&self) -> bool
pub fn is_object_file(&self) -> bool
Is this a relocatable object file?
Sourcepub fn symbols(&self) -> SymbolIterator<'a> ⓘ
pub fn symbols(&self) -> SymbolIterator<'a> ⓘ
Return an iterator over all the symbols in this binary
Sourcepub fn relocations(
&self,
) -> Result<Vec<(usize, RelocationIterator<'_>, Section)>>
pub fn relocations( &self, ) -> Result<Vec<(usize, RelocationIterator<'_>, Section)>>
Return a vector of the relocations in this binary
Sourcepub fn exports(&self) -> Result<Vec<Export<'_>>>
pub fn exports(&self) -> Result<Vec<Export<'_>>>
Return the exported symbols in this binary (if any)
Sourcepub fn imports(&self) -> Result<Vec<Import<'_>>>
pub fn imports(&self) -> Result<Vec<Import<'_>>>
Return the imported symbols in this binary that dyld knows about (if any)