Tiny Online Tools logoTiny Online ToolssearchSearch tools…grid_viewAll Tools
Homechevron_rightReverse Engineering Toolschevron_rightMach-O InspectorMach-O Inspector

Mach-O Inspector

Inspect macOS and iOS Mach-O binaries: architecture, load commands, segments, sections and linked libraries, right in your browser.

Select a Mach-O binaryupload_file

Click to browse or drag & drop files here

Executable, .dylib or bundle — any file works, no extension required

Accepted: */*

Similar Tools

ELF File Inspector

ELF File Inspector

Inspect Linux and Unix ELF binaries: headers, sections, segments, symbols and shared library dependencies, right in your browser.

PE/EXE Inspector

PE/EXE Inspector

Inspect Windows PE executables and DLLs: COFF headers, sections, imports, exports and resource types, directly in your browser.

Universal Binary Inspector

Universal Binary Inspector

Drop in any file and automatically detect whether it's an ELF, PE/EXE, Mach-O or WebAssembly binary, then see its key structure at a glance.

3D Model Inspector

3D Model Inspector

Inspect the complete anatomy of a GLB, GLTF, OBJ, STL, FBX, DAE, USDZ or point cloud file in your browser.

Email Thread Reconstructor

Email Thread Reconstructor

Group exported EML, MSG and MBOX messages into conversation threads using References and In-Reply-To.

SVG Circular Pattern Generator

SVG Circular Pattern Generator

Generate decorative SVG patterns from concentric rings, dot grids, or honeycomb-style offset dots.

BPM Detector

BPM Detector

Estimate the beats per minute of an audio track using onset detection and autocorrelation. Fully private, runs in your browser.

apps

More Tools

Browse our full collection of free online tools.

What this tool reads

Drop in any Mach-O binary — an executable, a dynamic library (.dylib), a bundle, or a fat/universal binary carrying several architectures — and this tool parses it entirely in your browser, the way otool does, showing:

  • The Mach header: CPU type and subtype, file type (executable, dylib, bundle, core, …), load command count, and header flags (PIE, two-level namespace, TLV descriptors, and more).
  • Load commands: every LC_SEGMENT/LC_SEGMENT_64 with its contained sections (name, address, size), LC_LOAD_DYLIB/LC_ID_DYLIB for linked libraries with their versions, LC_SYMTAB location, LC_UUID, and LC_BUILD_VERSION/LC_VERSION_MIN_*. Any load command this tool does not specifically decode is still listed by its numeric code and size — nothing is silently dropped.
  • Segments and sections: click a segment to see the sections inside it, with their addresses and sizes.
  • Linked libraries: every LC_LOAD_DYLIB path with its current and compatibility version.

Fat (universal) binaries — an honesty note

A fat binary bundles several thin Mach-O images, one per architecture, behind a fat_header/fat_arch table. This tool implements that structure directly from the public <mach-o/fat.h> header and will list each architecture separately. However, no live universal binary was available to test this against — the fat-binary code path is verified structurally (it follows the documented format) but not against a real multi-architecture sample. The thin, single-architecture path (the common case — most binaries you'll actually inspect) is fully verified against a real macOS executable. If you inspect a fat binary and something looks off, that is why.

Why this is useful

Check what libraries a downloaded macOS binary actually links against, confirm which minimum OS version and SDK a build targets, inspect a binary's segment layout, or explore Mach-O internals without a Mac.

Privacy

Everything happens locally in your browser using JavaScript. The file you choose is never uploaded anywhere.