Skip to content

Yessi-cmd/spectra

Repository files navigation

Spectra — Mach-O File Visualizer

A fast, lightweight GUI viewer for Mach-O binaries — built with Tauri 2 + React + Rust. No Xcode required. Just drop a file and explore.

Why Spectra?

Most Mach-O tools are either CLI-based (otool, nm, objdump) or heavyweight IDE plugins. Spectra is a standalone native macOS app that gives you an interactive, visual way to explore any Mach-O binary in seconds.

Features

📋 Header Magic, CPU type, file type, flags
📦 Load Commands All LCs with full field breakdown — LC_SEGMENT, LC_DYLIB, LC_RPATH, LC_UUID, LC_MAIN, LC_BUILD_VERSION, …
🧩 Segments & Sections VM address, file offset, protection, section type (S_REGULAR, S_ZEROFILL, …)
🔤 Symbol Table Real-time search, full type parsing — N_SECT, N_FUN, N_SO, N_GSYM, STAB debug symbols
🔗 Dynamic Libraries Dependency list with current & compatibility versions
🔢 Hex View Paginated viewer, seek slider, jump-to-offset, byte-range highlight
🖱️ Cross-navigation Double-click any node → jump to its exact bytes in Hex View
🍎 FAT binary Switch between x86_64 / ARM64 architectures

UX extras: drag & drop, recent files, resizable sidebar, keyboard navigation, copy-to-clipboard on every value.

Demo

demo

Installation

Download the latest .dmg from Releases, open it, and drag Spectra.app to Applications.

First launch: right-click → Open to bypass Gatekeeper (unsigned build).

Requirements: macOS 11+, Apple Silicon (ARM64)

Build from Source

# Prerequisites: Rust (stable) + Node.js ≥ 18

git clone https://github.com/Yessi-cmd/spectra
cd spectra
npm install
npm run tauri dev      # development
npm run tauri build    # production .dmg

Tech Stack

Desktop shell Tauri 2
Frontend React 19 + TypeScript + Vite
Mach-O parser goblin (Rust)
Styling Hand-written CSS, zero UI libraries

Project Structure

src/
├── App.tsx              # Root, state management
├── types.ts             # TS interfaces (mirrors Rust structs)
└── components/
    ├── Toolbar.tsx      # Top bar + recent files dropdown
    ├── Sidebar.tsx      # Tree navigator (keyboard support)
    ├── DetailPanel.tsx  # Detail views for every node type
    ├── HexViewer.tsx    # Hex viewer with highlight
    └── WelcomeScreen.tsx
src-tauri/src/
├── lib.rs               # Tauri command handlers
└── parser.rs            # Mach-O parser (goblin wrapper)

License

MIT

About

A lightweight Mach-O binary visualizer & analyzer built with Tauri 2 + React + Rust

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors