Перейти к содержимому
Aback Tools Logo

Анализатор бинарных файлов Mach-O

Разбирайте заголовки бинарных файлов Mach-O, универсальные FAT-бинарники, архитектуры процессора, команды загрузки, сегменты, секции и таблицы символов - всё в вашем браузере. Поддерживаются 32-битный, 64-битный и FAT (универсальный) форматы Mach-O для macOS, iOS и всех бинарников платформ Apple. Бесплатно, приватно и без регистрации.

Mach-O Binary Analyzer
Parse and analyze Mach-O binary headers including FAT (universal) binaries, 32-bit and 64-bit formats. Inspect CPU architectures, load commands, segments, sections, and symbol tables — all in your browser.
Load Example:
Or paste raw hex bytes or load an example above

Почему стоит использовать наш анализатор бинарных файлов Mach-O?

  • Полная поддержка формата Mach-O: разбираются все варианты Mach-O, включая 32-битный (MH_MAGIC), 64-битный (MH_MAGIC_64) и универсальные FAT-бинарники (FAT_MAGIC). Автоматически определяется порядок байтов (little/big endian) и обрабатываются как простые, так и многоархитектурные бинарники.
  • Определение архитектуры процессора: распознаются все основные архитектуры Apple, включая arm64 (Apple Silicon), x86_64 (Intel 64 бита), i386 (Intel 32 бита), ARM и PowerPC. Показываются тип и подтип процессора, а также специфичные для архитектуры детали с форматированными описаниями.
  • Инспектор команд загрузки и сегментов: разбираются все команды загрузки (LC_SEGMENT, LC_SYMTAB, LC_UUID, LC_BUILD_VERSION, LC_MAIN и более 40 других). Каждый сегмент отображается со своими секциями, виртуальными адресами, смещениями в файле, флагами защиты и записями релокации в сортируемых таблицах.
  • 100 % приватно - загрузка не требуется: весь разбор Mach-O происходит полностью в вашем браузере. Загрузите бинарник или вставьте hex-данные - ничего не отправляется на сервер. Без аккаунта, без регистрации, без отслеживания. Экспортируйте результаты копированием или скачиванием.

Типичные сценарии использования анализатора Mach-O

  • Анализ вредоносного ПО и обратная разработка: специалисты по безопасности используют анализатор Mach-O для проверки подозрительных бинарников macOS и iOS. Определите, скрывает ли файл несколько архитектур как универсальный FAT, проверьте команды загрузки на необычные зависимости dylib и изучите флаги секций на подозрительные права вроде записываемых и исполняемых областей памяти.
  • Проверка и контроль целостности бинарников: убедитесь, что бинарник Mach-O имеет ожидаемую архитектуру процессора, проверьте флаг PIE (позиционно-независимый исполняемый файл), наличие подписи кода и совпадение UUID. Это важно для проверки сборочных конвейеров и правильного выбора архитектуры.
  • Анализ отладочных символов и удаления символов: проверьте, удалены ли из бинарника символы, по размеру таблицы символов и командам загрузки. Обнаруживаются сопутствующие пакеты dSYM, изучаются записи nlist для определения оставшихся символов и выясняется, подписан ли бинарник и нотаризован ли он.
  • Обнаружение обфускации и защиты: выявляйте обфусцированные или защищённые бинарники Mach-O, обнаруживая зашифрованные секции (LC_ENCRYPTION_INFO), проверяя индикаторы fairplay/DRM, изучая необычные атрибуты секций и анализируя аномалии таблицы символов, характерные для защищённых бинарников.
  • Валидатор приложений для App Store macOS/iOS: проверяйте бинарники приложений iOS и macOS перед отправкой в App Store. Проверяйте требуемые архитектуры (arm64 для iOS, arm64 + x86_64 для универсальных бинарников macOS), правильный подтип процессора и требования к минимальной версии ОС по всем срезам Mach-O.
  • Обучение и исследование формата Mach-O: студенты и исследователи могут интерактивно изучать формат файла Mach-O. Загружайте примеры бинарников, чтобы понять структуру заголовка Mach-O, цепочки команд загрузки, связи сегментов и секций, а также записи таблицы символов nlist.

Что такое бинарный файл Mach-O?

Mach-O (Mach Object) - нативный исполняемый формат, используемый в macOS, iOS, iPadOS, watchOS и tvOS. Он заменил старый формат a.out и стал стандартным бинарным форматом всех операционных систем Apple. Каждое приложение, фреймворк, библиотека и консольная утилита на платформах Apple упакованы как бинарник Mach-O. Формат поддерживает несколько архитектур процессора в одном файле через формат FAT (универсальный) с магическим числом 0xCAFEBABE. Файлы Mach-O содержат заголовок, цепочку команд загрузки, описывающих структуру бинарника, и сами данные сегментов (код, данные, таблицы символов и т. д.).

Как работает анализатор Mach-O

  1. Определение входа: анализатор читает первые 4 байта (магическое число), чтобы определить формат - 32 бита (0xFEEDFACE), 64 бита (0xFEEDFACF) или универсальный FAT (0xCAFEBABE) - и определяет порядок байтов (little-endian для Apple Silicon/Intel, big-endian для PowerPC).
  2. Разбор заголовка: заголовок Mach-O разбирается для извлечения типа и подтипа процессора, типа файла (исполняемый, dylib, пакет, объект и т. д.), числа команд загрузки и флагов бинарника (PIE, NOUNDEFS, TWOLEVEL и др.).
  3. Проход по командам загрузки: анализатор проходит по цепочке команд загрузки и разбирает каждую команду по её типу. Команды сегментов (LC_SEGMENT/LC_SEGMENT_64) содержат подтаблицы информации о секциях. Другие команды дают UUID, минимальные версии, ссылки на таблицу символов, смещения подписи кода и другое.
  4. Извлечение таблицы символов: если в бинарнике есть команда LC_SYMTAB, анализатор читает записи nlist (struct nlist_64 для 64 бит) и восстанавливает имена символов из таблицы строк. Первые 50 символов показываются с типом, номером секции, флагами описания и значениями адресов.

Ключевые понятия Mach-O

  • FAT-бинарник (универсальный): начинается с магии 0xCAFEBABE и содержит несколько срезов Mach-O для разных архитектур. У каждого среза свой тип процессора, смещение, размер и выравнивание. В приложениях iOS обычно есть срезы arm64; универсальные бинарники macOS содержат x86_64 + arm64 для Intel и Apple Silicon.
  • Команды загрузки: идут сразу после заголовка Mach-O и описывают структуру бинарника. LC_SEGMENT задаёт отображаемые из файла области памяти; LC_SYMTAB указывает на таблицу символов; LC_UUID даёт уникальный идентификатор; LC_BUILD_VERSION указывает целевую платформу и версию SDK.
  • Сегменты и секции: сегменты (__TEXT, __DATA, __LINKEDIT) напрямую соответствуют областям памяти. Секции внутри сегментов (__text, __cstring, __objc_methlist) содержат определённые типы содержимого. Флаги типа секции показывают, содержит ли секция код, строковые литералы, указатели на символы или инициализаторы.
  • Записи символов nlist: каждый символ в таблице имеет имя (восстанавливается через таблицу строк), тип (неопределённый, абсолютный, определённый в секции или косвенный), номер секции, флаги описания и значение/адрес. Внешние символы помечаются N_EXT для разрешения динамической компоновки.

Приватность и технические ограничения

Анализатор Mach-O обрабатывает все бинарные данные полностью в вашем браузере на JavaScript. Данные никогда не загружаются на сервер. Анализатор разбирает заголовок, команды загрузки, структуры сегментов и секций и таблицу символов, но не дизассемблирует исполняемый код, не распаковывает защищённые бинарники и не расшифровывает зашифрованные файлы Mach-O. Бинарники с DRM FairPlay (зашифрованные для App Store) показывают информацию о шифровании, но их секции кода прочитать нельзя. Для очень больших бинарников (свыше 500 МБ) разбор может быть ограничен памятью браузера. Анализатор предназначен для обучения, исследований обратной разработки и анализа безопасности файлов, на проверку которых у вас есть законное разрешение.

Часто задаваемые вопросы

Mach-O (Mach Object) - нативный исполняемый формат операционных систем Apple (macOS, iOS, watchOS, tvOS). Он использует магические числа 0xFEEDFACE (32 бита), 0xFEEDFACF (64 бита) и 0xCAFEBABE (универсальный FAT-бинарник). В отличие от ELF (Linux/Android) и PE (Windows), Mach-O поддерживает FAT-бинарники с несколькими архитектурами в одном файле и описывает структуру через цепочку команд загрузки.

Проверьте первые четыре байта (магическое число): 0xFEEDFACE для 32 бит, 0xFEEDFACF для 64 бит и 0xCAFEBABE для универсальных FAT-бинарников. Обычные расширения - .o (объект), .dylib (динамическая библиотека) и .bundle (загружаемый пакет). Наш анализатор автоматически определяет и сообщает формат при загрузке.

FAT-бинарник содержит несколько исполняемых файлов Mach-O для разных архитектур процессора в одном файле. Заголовок FAT перечисляет каждую архитектуру с её типом процессора, смещением, размером и выравниванием. При загрузке ОС автоматически выбирает нужную архитектуру. Это позволяет распространять один бинарник, нативно работающий и на Intel (x86_64), и на Apple Silicon (arm64).

Команды загрузки описывают структуру бинарника: LC_SEGMENT задаёт области памяти, LC_SYMTAB указывает на таблицу символов, LC_UUID даёт уникальный идентификатор, LC_BUILD_VERSION указывает целевую платформу и SDK, LC_MAIN задаёт точку входа, LC_ENCRYPTION_INFO показывает статус DRM FairPlay, а LC_CODE_SIGNATURE указывает на данные подписи кода.

Да. Он обнаруживает зашифрованные секции через LC_ENCRYPTION_INFO (cryptid != 0), определяет stripped-бинарники по малым таблицам символов, отмечает подозрительные права доступа (записываемые и исполняемые сегменты) и находит необычные имена или флаги секций. Также сообщается статус PIE, DRM FairPlay и наличие подписи кода.

Безусловно. Вся обработка выполняется локально в вашем браузере. Ваши бинарные данные никогда не покидают устройство, не отправляются на сервер и не сохраняются. Аккаунт не требуется. Вы можете безопасно анализировать проприетарные, конфиденциальные или чувствительные бинарники Mach-O.

Анализатор разбирает заголовки, команды загрузки, структуру сегментов и секций и таблицы символов. Он не дизассемблирует код, не извлекает встроенные ресурсы и не декомпилирует бинарник. При этом он определяет наличие метаданных среды выполнения Objective-C и Swift, а также секций cstring.

Анализатор поддерживает все архитектуры Apple: arm64 (Apple Silicon), x86_64 (Intel 64 бита), i386 (Intel 32 бита), ARM (32 бита), PowerPC и PowerPC 64 бита. FAT-бинарники с любой комбинацией этих архитектур полностью поддерживаются.

Да — 100 % бесплатно, без регистрации, без аккаунта, без ограничений по использованию и без платных тарифов. Все функции, включая загрузку файлов, hex-ввод, анализ FAT, разбор команд загрузки, просмотр сегментов и извлечение таблицы символов, доступны без ограничений.