Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

everettjf/MachOExplorer

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

614 Commits
614 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MachOExplorer

A focused desktop explorer for Mach-O binaries, archives, and dyld shared cache.

Language: English | 简体中文

MachOExplorer Screenshot

License: MIT

Why MachOExplorer

  • Open and inspect Mach-O / Fat Mach-O / .a archive / dyld shared cache in one UI.
  • Drill from structure to code quickly: sections, symbols, disassembly, xref, call graph hints.
  • Understand modern Apple binaries better: ObjC metadata, Swift metadata, dyld exports/fixups.
  • Work safely on suspicious files with hardened parser checks and regression coverage.

Highlights

  • Rich binary views: load commands, sections, symbols, relocations, strings.
  • Optional Capstone disassembly for __TEXT,__text.
  • Swift semantic graph (__swift5_*) and ObjC metadata browsing.
  • Dyld shared cache image listing/extraction and direct drill-in workflow.
  • Productive table UX: filter, copy row(s), CSV export, keyboard navigation.
  • Built-in update check with reminder options and release-page guidance.

Install (macOS)

brew update && brew tap everettjf/homebrew-tap && brew install --cask machoexplorer

Quick Start

  1. Launch MachOExplorer.
  2. Open a sample binary (sample/simple or sample/complex) or your own Mach-O file.
  3. Navigate from Layout tree to sections/symbols/disassembly views.

CLI Analysis Mode (No GUI)

Run full analysis in command-line mode and output to stdout or file:

./build/MachOExplorer --cli sample/simple
./build/MachOExplorer --cli --format json --output /tmp/simple-analysis.json sample/simple

Common options:

  • --format text|json output format (default text)
  • --output <path> write analysis output to file
  • --max-rows <N> limit rows per table (0 means unlimited)
  • --max-depth <N> limit tree depth (0 means unlimited)
  • --root-path <path> export only one matching analysis subtree
  • --name-filter <text> keep nodes whose display names match the text
  • --table-mode <full|headers|summary> control table payload size
  • --include-empty include empty nodes

The JSON output is automation-friendly and now includes stable metadata such as schemaVersion, summary, node path / kind / childIndex, and row cells / rowIndex.

Docs

Contributing

Issues and PRs are welcome:

License

MIT. See LICENSE.

Star History

Star History Chart

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.