pub struct FatMacho<'a> {
pub binaries: Vec<Macho<'a>>,
pub has_overlay: Option<bool>,
pub contents: &'a [u8],
}Available on crate feature
macho only.Expand description
Fat Mach-O files contain executable code for more than one architecture, allowing the same binary to be run on different hardware, such as the same file working on Power PC, Intel, and Apple Silicon machines.
This format is an array of Mach-O files. However, the magic number is also used for Java class files, so we need to make sure the amount of stored binaries makes sense. Too high, and it’s probably the Java class version and not the number of contained Mach Objects.
Fields§
§binaries: Vec<Macho<'a>>The embedded Mach-O files within
has_overlay: Option<bool>If the binary has extra data after the last section, could be used to hide something
contents: &'a [u8]The array containing the raw bytes used to parse this program
Implementations§
Trait Implementations§
Source§impl ExecutableFile for FatMacho<'_>
impl ExecutableFile for FatMacho<'_>
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<Uuid>
fn import_hash(&self) -> Option<Uuid>
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 FatMacho<'_>
impl SpecimenFile for FatMacho<'_>
Auto Trait Implementations§
impl<'a> Freeze for FatMacho<'a>
impl<'a> RefUnwindSafe for FatMacho<'a>
impl<'a> Send for FatMacho<'a>
impl<'a> Sync for FatMacho<'a>
impl<'a> Unpin for FatMacho<'a>
impl<'a> UnwindSafe for FatMacho<'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