pub struct Macho<'a> {
pub is64bit: bool,
pub arch: Architecture,
pub has_overlay: Option<bool>,
pub ordering: Ordering,
pub executable_type: ExecutableType,
pub os: OperatingSystem,
pub sections: Option<Vec<Section<'a>>>,
pub imports: Option<Imports>,
pub contents: &'a [u8],
}Available on crate feature
macho only.Expand description
A struct presenting Mach Objects (Mach-O) files
These are executables or libraries used on macOS, iOS, iPadOS, tvOS, watchOS, etc. They began
as the file format for NeXTSTEP.
Because of the different architectures, these files could be bi-endian.
Fields§
§is64bit: boolIf the program is 64-bit
arch: ArchitectureInstruction set architecture for this binary
has_overlay: Option<bool>If the binary has extra data after the last section, could be used to hide something
ordering: OrderingByte ordering for this binary
executable_type: ExecutableTypeExecutable subtype: Program, Library, or Core file?
os: OperatingSystemOperating System for this binary, going to be Mac OS or some derivative, could be NeXTSTEP
sections: Option<Vec<Section<'a>>>Sections of this binary
imports: Option<Imports>External libraries used by this application or library
contents: &'a [u8]The array containing the raw bytes used to parse this program
Implementations§
Trait Implementations§
Source§impl ExecutableFile for Macho<'_>
impl ExecutableFile for Macho<'_>
Source§fn architecture(&self) -> Option<Architecture>
fn architecture(&self) -> Option<Architecture>
Get the architecture type
Source§fn pointer_size(&self) -> usize
fn pointer_size(&self) -> usize
Get the pointer size, 32- or 64-bit
Source§fn operating_system(&self) -> OperatingSystem
fn operating_system(&self) -> OperatingSystem
Get the operating system type for a binary
Source§fn compiled_timestamp(&self) -> Option<DateTime<Utc>>
fn compiled_timestamp(&self) -> Option<DateTime<Utc>>
Get the compilation timestamp, if available
Source§fn num_sections(&self) -> u32
fn num_sections(&self) -> u32
Number of sections for a binary
Source§fn import_hash(&self) -> Option<String>
fn import_hash(&self) -> Option<String>
Import hash of the binary
Source§fn fuzzy_imports(&self) -> Option<String>
fn fuzzy_imports(&self) -> Option<String>
SSDeep fuzzy hash of the binarySource§impl SpecimenFile for Macho<'_>
impl SpecimenFile for Macho<'_>
Auto Trait Implementations§
impl<'a> Freeze for Macho<'a>
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more