About MachOHeaderDumper for iOS (TrollStore)

MachOHeaderDumper for iOS (TrollStore) is one of the most popular iOS applications available on the Apple App Store. Developed by a talented team, this app is designed to enhance your iPhone or iPad experience with powerful features and intuitive functionality.

A native iOS application designed for TrollStore environments to dump Objective-C headers, Swift type information, symbols, and structural details from Mach-O binaries directly on-device. Inspired by class-dump, but built entirely in Swift for iOS.


Overview

MachOHeaderDumper provides developers, security researchers, and tweak developers with a powerful on-device tool to inspect iOS applications, frameworks, and dynamic libraries. By leveraging TrollStore's ability to bypass standard sandbox restrictions, this app performs deep static analysis of Mach-O files without requiring a jailbreak or desktop tools for basic header dumping and structural analysis.

Core Capabilities:

  • Objective-C Header Dumping: Extracts @interface@protocol@property, and @method declarations similar to class-dump.
  • Swift Type Extraction: Identifies Swift classes, structs, enums, and protocols present in the binary metadata. Attempts symbol demangling using dlsym.
  • Mach-O Structure Analysis: Displays detailed header information, load commands (including segments, sections, dylib dependencies, UUID, code signature location, etc.), symbol tables (local, external, undefined), and dynamic linking information (rebase, bind, export opcodes).
  • On-Device Operation: All parsing and analysis happens directly on your iOS device.
  • File Import: Import .dylib.framework, or .app bundle, executable files via the native Files app integration.
  • TrollStore Optimized: Assumes TrollStore installation for necessary file system access outside the standard app sandbox.

Screenshot 1

Features

  • ? Native iOS Interface: Clean and responsive UI built with SwiftUI.
  • ? Robust Mach-O Parser:
    • Handles 64-bit arm64/arm64e Mach-O files (Thin and Fat).
    • Parses essential load commands (LC_SEGMENT_64LC_LOAD_DYLIBLC_UUIDLC_SYMTABLC_DYSYMTABLC_DYLD_INFO_ONLYLC_ENCRYPTION_INFO_64LC_BUILD_VERSION, etc.).
    • Displays segment and section details (addresses, offsets, sizes, flags).
  • ? Objective-C Analysis:
    • Reconstructs interfaces from __objc_classlist__objc_const__objc_catlist__objc_protolist.
    • Resolves method selectors and type encodings.
    • Parses property attributes (nonatomicstrongweakreadonly, etc.).
    • Handles categories and merges them into base class definitions.
    • Identifies class (+) and instance (-) methods and properties.
    • Detects instancetype based on common patterns.
  • ? Swift Analysis (Basic):
    • Parses __swift5_types section to find type context descriptors.
    • Extracts mangled names for Classes, Structs, and Enums.
    • Attempts demangling using _swift_demangle via dlsym (requires the function to be available in loaded images or the target binary).
  • ? Dynamic Linker Info:
    • Parses and displays rebase operations (pointer fixups).
    • Parses and displays bind, weak bind, and lazy bind operations (symbol linking).
    • Parses and displays the export trie information.
  • ? Symbol Table Viewer: Lists symbols with their type, scope (external/local), section, and address/value.
  • ? Export Options:
    • Copy generated Objective-C headers to the clipboard.
    • (Future) Share headers as .h files.
    • (Future) Export parsed structural info (JSON?).
  • ? File Handling:
    • Import binaries using UIDocumentPickerViewController.
    • Automatically resolves executables within .app and .framework bundles.

Technical Details

  • Language: Primarily Swift, leveraging low-level access via mmapUnsafeRawBufferPointer, and direct struct memory binding.
  • Concurrency: Uses async/await and Task.detached for background parsing to keep the UI responsive. Actor isolation (MainActor) is used for UI updates.
  • Parsing: Implements manual parsing of Mach-O structures, Objective-C metadata (class_ro_tmethod_t, etc.), Swift type descriptors, and dyld opcodes (ULEB128/SLEB128 decoding, state machines). Avoids external parsing libraries for core Mach-O structure.
  • Demangling: Relies on runtime availability of _swift_demangle via dlopen/dlsym. Does not bundle a static demangler library.
  • TrollStore: Requires TrollStore installation to grant the app the necessary permissions to:
    • Read files outside its sandbox (e.g., system frameworks, other app bundles).
    • Potentially use dlopen on arbitrary binaries (used for demangling).

Installation (Requires TrollStore)

  1. Download the latest .tipa file from the Releases page.
  2. Open the downloaded .tipa file with TrollStore.
  3. Tap "Install".
  4. The MachOHeaderDumper app will appear on your Home Screen.

Usage

  1. Launch the MachOHeaderDumper app.
  2. Tap the "Import File..." button.
  3. Use the Files browser to navigate to and select the desired .dylib.framework, or .app file/bundle.
  4. The app will parse the binary in the background. Status updates will be shown.
  5. Once parsing and analysis are complete, use the segmented picker at the top to switch between different views:
    • ObjC Header: View the generated Objective-C headers (if any). Use the "Show IVars" toggle if desired.
    • Swift Types: View basic information about detected Swift types (mangled/demangled name, kind).
    • Info: View Mach-O header details and UUID.
    • Load Cmds: View the list of load commands and their parameters.
    • Symbols: Browse the symbol table.
    • DyldInfo: View rebase and bind operations.
    • Exports: View exported symbols.
  6. Text selection is enabled in most detail views.

Limitations & Future Work

  • Swift Analysis: Swift metadata parsing is basic. It doesn't yet extract methods, properties, protocol conformances, or detailed enum cases/struct layouts. Generating full Swift interface files is a future goal.
  • Demangling Reliability: Swift demangling depends on finding _swift_demangle at runtime, which may not always succeed. Bundling a static demangler is a potential improvement.
  • Objective-C Accuracy: Assumes relatively modern Objective-C runtime structures. Parsing highly obfuscated or unusual binaries might yield incomplete results. Doesn't handle runtime-only features like associated objects.
  • Encrypted Binaries: Cannot currently parse encrypted App Store binaries. On-device decryption is a complex future possibility.
  • Error Handling: While basic error handling is present, parsing malformed binaries could still lead to unexpected behavior or crashes.
  • UI/UX: Further refinements like cross-referencing, search/filtering, graphical visualizers, and improved export options are planned.
  • Runtime Analysis: Adding modes for inspecting live processes or loaded libraries is a potential advanced feature.

Building from Source

  1. Clone the repository: git clone https://github.com/speedyfriend433/MachOHeaderDumper.git
  2. Open MachOHeaderDumper.xcodeproj in Xcode.
  3. Select your device or simulator. (Note: dlopen/dlsym behavior might differ on simulator vs. device).
  4. Build the project (Cmd+B).
  5. To install on a device via TrollStore, you'll need to export an unsigned IPA:
    • Product -> Archive.
    • In the Organizer window, select the archive.
    • Click "Distribute App".
    • Choose "Ad Hoc" or "Development".
    • Under "App Thinning", select "None".
    • Crucially, uncheck "Include manifest for over-the-air installation" and ensure code signing is set to "Sign to Run Locally" or manually configured for no signing. (The exact steps depend on Xcode version and project setup. The goal is an unsigned IPA).
    • Export the IPA file.
    • Transfer the IPA to your device and install with TrollStore.
  6.  
 

This comprehensive guide provides detailed information about MachOHeaderDumper for iOS (TrollStore) v1.2.0, including installation instructions, compatibility information, and official download links.

How to Install MachOHeaderDumper for iOS (TrollStore) IPA

Installation Methods

There are multiple methods to install MachOHeaderDumper for iOS (TrollStore) on your iOS device, depending on your device status, iOS version, and preferences. Choose the method that best suits your situation.

Quick Install Options

Online Installation

Join Our Community

Detailed Installation Guide

This IPA file can be installed on your iPhone/iPad using several methods. We recommend TrollStore for permanent installation without 7-day revocation.

1. Install via TrollStore (Recommended)

TrollStore Installation Method

TrollStore is a permanent app installer that supports iOS 14.0-16.6.1 and iOS 17.0 without requiring jailbreak.

  1. Download and install TrollStore on your device
  2. Download the MachOHeaderDumper for iOS (TrollStore) v1.2.0 IPA file
  3. Open the IPA file with TrollStore
  4. Tap "Install" and wait for completion
  5. The app will be permanently installed without expiration

2. Install via AltStore

AltStore Installation Method

AltStore allows sideloading apps using your Apple ID with 7-day refresh requirement.

  1. Install AltStore on your computer
  2. Connect your iOS device via USB
  3. Open AltStore and select "Install App"
  4. Choose the MachOHeaderDumper for iOS (TrollStore) IPA file
  5. Enter your Apple ID credentials when prompted
  6. Wait for installation to complete

3. Install via Sideloadly

Sideloadly Installation Method

Sideloadly is a powerful sideloading tool with advanced features and customization options.

  1. Download and install Sideloadly on your computer
  2. Connect your iOS device to your computer
  3. Open Sideloadly and drag the IPA file into the application
  4. Enter your Apple ID and password
  5. Click "Start" to begin the sideloading process
  6. Trust the developer profile in Settings > General > VPN & Device Management

4. Install via Esign

Esign Installation Method

Esign allows on-device signing and installation of IPA files directly on your iOS device.

  1. Download and install Esign on your device
  2. Import a developer certificate (.p12) into Esign
  3. Import the MachOHeaderDumper for iOS (TrollStore) IPA file into Esign
  4. Select your certificate and tap "Sign"
  5. Install the signed app and trust the profile

What's New in Version 1.2.0

  • <h3>Added</h3> <ul> <li><strong>TabView Navigation:</strong>&nbsp;Replaced the segmented picker with a more scalable&nbsp;<code>TabView</code>&nbsp;for main screen navigation
  • separating content into "Dump"
  • "Structure"
  • "Symbols"
  • and "Dynamic" categor

Previous Versions (1 versions available)

MachOHeaderDumper for iOS (TrollStore) v

Archived

No download links available

Device Compatibility

System Requirements

  • iOS Version: <p>iOS 15 - iOS 16</p>
  • Compatible Devices: iPhone, iPad, iPod touch
  • Storage: Varies with device
  • Network: Wi-Fi or cellular data connection recommended

Supported iOS Versions

This app is compatible with a wide range of iOS versions including iOS 13, iOS 14, iOS 15, iOS 16, iOS 17, and iOS 18. For specific version compatibility, please check the app details or contact support.

Frequently Asked Questions

Is it safe to install IPA files?

While IPA files can be safe when downloaded from trusted sources, we always recommend downloading apps from the official Apple App Store when possible. Third-party installations may void your warranty and could potentially contain malicious code.

Will installing this app void my warranty?

Installing apps through methods other than the App Store (sideloading) may technically void your warranty. However, Apple typically only refuses service if the modification directly caused the issue requiring repair.

Why do sideloaded apps expire after 7 days?

Apps signed with a free Apple Developer account expire after 7 days. To avoid this, use TrollStore (for compatible devices) or refresh the app weekly using AltStore or similar tools.

Can I update sideloaded apps?

Sideloaded apps don't receive automatic updates through the App Store. You'll need to manually download and install newer versions when they become available.

What should I do if the app crashes?

Try restarting your device, ensuring you have the latest iOS version, and reinstalling the app. If problems persist, the app may not be compatible with your device or iOS version.