Мах-О

Мах-О Информация о таблице символов Таблица символов содержит информацию о символах в двоичном файле Mach-O.  Символы могут быть неопределенными, внешними […]

Мах-О

  • Информация о таблице символов

    • Таблица символов содержит информацию о символах в двоичном файле Mach-O. 
    • Символы могут быть неопределенными, внешними или локальными. 
    • Порядок расположения символов в таблице важен для корректной загрузки. 
  • Информация о команде «Информация о таблице символов»

    • Команда используется для получения информации о символах в таблице символов. 
    • Индекс символа умножается на определенные коэффициенты для определения смещения. 
    • Локальные символы используются для отладочной информации, а количество локальных символов — это их количество после индекса символа. 
  • Косвенная таблица и сжатая таблица _LINKEDIT

    • Косвенная таблица используется для загрузки вызовов методов. 
    • Сжатая таблица _LINKEDIT позволяет избежать необходимости в таблице косвенных символов и разделах заглушек и указателей. 
  • Обязательная информация в таблице символов

    • Разделы bind, weak bind и lazy bind имеют одинаковый формат кода операции. 
    • Слабая привязка позволяет загружать символ из другого файла Mach-O при отсутствии в текущем. 
    • Ленивый символ записывается в dyld_stub_binder и заменяется при необходимости. 
  • Основная точка входа в приложение

    • Команда загрузки с типом 0x00000028 указывает адрес начала приложения. 
    • Если сегменты программы не перемещены, то основной точкой входа является точный адрес. 
  • UUID-номер приложения

    • Команда загрузки с типом 0x0000001B указывает универсальный уникальный идентификатор (UUID) приложения. 
    • UUID содержит 128-битный случайный номер для идентификации файла в интернете или магазинах приложений. 
    • Пересказана только часть статьи. Для продолжения перейдите к чтению оригинала. 

Полный текст статьи:

Мах-О — Википедия

Оставьте комментарий

Прокрутить вверх