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
sourceimpl<'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>ⓘ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
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)
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for MachO<'a>
impl<'a> Send for MachO<'a>
impl<'a> Sync for MachO<'a>
impl<'a> Unpin for MachO<'a>
impl<'a> UnwindSafe for MachO<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more