Crush — Format Reference

Built from crush/data/build_formats_db.py at commit 640a2a9928f4 on 2026-10-21 06:46:19 UTC.

← All formats

Mach-O Executable

FormatMach-O Executable
Short nameMach-O
Categoryexecution
PlatformsmacOS, iOS
Crush supportNot yet supported
StatusReviewed
Last reviewed2026-10-04

Forensic relevance

Native executable, library, and object format for iOS and macOS. App binaries can be analysed for hardcoded strings, URLs, API endpoints, encryption keys, and embedded credentials. Entitlements (XML embedded via LC_CODE_SIGNATURE) define app sandbox capabilities and permissions — relevant for identifying over-privileged apps or jailbreak bypass attempts. Code signatures link the binary to a developer identity and detect tampering. Fat/Universal Binaries contain multiple architecture slices (e.g. arm64 + x86_64) in a single file, preceded by a fat_header with magic 0xCAFEBABE — the same magic as Java class files, so the following bytes (architecture count vs. class file version) must be checked to tell them apart.

Signatures

OffsetHex ASCII (non-printable as .)Description
offset 0 (0x0)CF FA ED FE....Mach-O 64-bit little-endian (arm64, x86_64) — most common on modern devices
offset 0 (0x0)CE FA ED FE....Mach-O 32-bit little-endian
offset 0 (0x0)CA FE BA BE....Fat/Universal Binary — contains multiple architecture slices (same magic as Java class files)
offset 0 (0x0)FE ED FA CF....Mach-O 64-bit big-endian
offset 0 (0x0)FE ED FA CE....Mach-O 32-bit big-endian

Known extensions

.dylib, .o

References

Cite this entry

Crush Format Reference, “Mach-O Executable”. https://kalink0.github.io/crush-forensics/formats/mach-o/ — source: crush/data/build_formats_db.py at commit 640a2a9928f4e36a976b89901512a8dce824d093, built 2026-10-21 06:46:19 UTC.

Entry in the source at this commit · Change history of the source · Report a correction