Common Object File Format (COFF) — формат исполняемых файлов, файлов объектного кода и динамических библиотек. Формат появился в системе Unix System V, заменив прежний a.out. Послужил основой для расширенных спецификаций, таких как XCOFF и ECOFF, и был впоследствии заменён форматом ELF. Продолжает использоваться в некоторых UNIX-подобных операционных системах, в Microsoft Windows и других системах.

Формат файла Файл формата COFF включает в себя заголовок файла, дополнительный заголовок, таблицу секций и одну или несколько секций кода и данных. + Заголовок файла COFF Смещение Длина Поле Описание 0 2 f_magic Идентификатор типа машины, на которой файл может исполняться 2 2 f_nscns Количество секций 4 4 f_timdat Младшие 32 бита количества секунд, прошедших с 0:00 1 января 1970 г. в момент создания файла 8 4 f_symptr Положение в файле таблицы символов (используется для отладки) 12 4 f_nsyms Количество элементов в таблице символов 16 2 f_opthdr Размер дополнительного заголовка, для объектных файлов равен нулю 18 2 f_flags Флаги, указывающие атрибуты файла

Дополнительный заголовок файла содержит информацию, необходимую для загрузчика. Размер заголовка может быть разным, в зависимости от системы и версии. + Дополнительный заголовок (для MIPS) Смещение Длина Поле Описание 0 2 magic Тип файла 2 2 vstamp Версия 4 4 tsize Суммарный размер всех секций, содержащих исполняемый код 8 4 dsize Суммарный размер всех секций, содержащих инициализированные данные 12 4 bsize Суммарный размер всех секций, содержащих неинициализированные данные 16 4 entry Адрес точки входа в программу (0 — если не используется) 20 4 text_start Адрес загрузки кода 24 4 data_start Адрес загрузки инициализированных данных 28 4 bss_start Адрес размещения неинициализированных данных 32 4 gprmask 36 4 cprmas 40 4 gp_value

Таблица секций находится непосредственно за дополнительным заголовком. Каждая строка в таблице является заголовком соответствующей секции. + Строка таблицы секций Смещение Длина Поле Описание 0 8 s_name Имя секции 8 4 s_paddr Физический адрес 12 4 s_vaddr Виртуальный адрес 16 4 s_size Размер секции 20 4 s_scnpt Положение секции в файле 28 4 s_relptr Положение в файле таблицы настройки адресов секции 32 4 s_lnnoptr 36 2 s_nreloc Количество элементов в таблице настройки адресов 38 2 s_nlnno 40 4 s_flags Флаги

Примечания

Ссылки MIPS COFF Spec

Категория:Форматы исполняемых файлов