MACHO
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Mach-O Preview.
At a glance
| Purpose | A Mach-O executable or library for macOS and iOS, or a universal (fat) binary of several architectures. |
| Extensions | .macho |
| Poka parser | poka-macho |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-macho/src/main.rs (824 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has sample_fat.macho, read by no test. Covers .macho and .bundle. The tree shows each architecture slice (for universal binaries) with its header (magic, CPU, file type, load-command count, flags, UUID, entry point, dynamic linker), its segments with their sections, the linked libraries, and a load-command histogram; all four byte orders are read. Judgement: B3: the structure and linked libraries are decoded, but symbols, signatures and code are not.
What Poka does not read
- The symbol table and exports trie are not read
- The code signature and entitlements are not decoded
- Build version, minimum OS and source version commands are counted in the histogram, not decoded (judgement from the code)
- Code is not disassembled
- Files over 64 MiB are cut (flagged)
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- goblin (candidate; MIT; Rust; https://github.com/m4b/goblin) — Zero-copy, endian-aware 32/64-bit Mach-O parser alongside ELF and PE.
- object (gimli-rs) (candidate; Apache-2.0 OR MIT; Rust; https://github.com/gimli-rs/object) — Reads ELF, Mach-O, PE/COFF, Wasm, XCOFF and archives; can also write Mach-O relocatable objects.
- LIEF (candidate; Apache-2.0; C++, Python, Rust; https://github.com/lief-project/LIEF) — Parses and modifies Mach-O, ELF and PE; includes dyld shared cache and chained fixups support.
- fat-macho (candidate; MIT; Rust; https://github.com/messense/fat-macho-rs.git) — Mach-O Fat Binary Reader and Writer; v0.5.0, updated 2026-09-02; matched on lib.rs, not tested
- macho-core (candidate; MIT; Rust; https://github.com/bryanmatteson/macho.git) — Byte-safe structural Mach-O parsing and validation; v0.5.6, updated 2026-08-03; matched on lib.rs, not tested
Sources
- parsers/poka-macho/src/main.rs
- parsers/poka-macho/plugin.json