Формат заголовка NE-executable ЕХЕ-файла
В состав старого заголовка входят:
- обычный ЕХЕ-заголовок (Таблица А-2);
- зарезервированная часть;
- указатель на новый заголовок (если в ЕХЕ-заголовке в начале таб-
лицы перемещаемых элементов - по смещению 18h - стоит 40h или
больше, то слово, расположенное по смещению 3Ch, содержит сме-
щение начала нового заголовка);
- DOS-программа (STUB).
В состав нового заголовка входят:
- инфоблок (Таблица А-3);
- таблица сегментов (Таблица А-4);
- таблица ресурсов (Таблица А-5);
- таблица резидентных имен;
- таблица ссылок на модули;
/
Таблица А-2. Формат обычного ЕХЕ-заголовка в NE-executable ЕХЕ-файпе.
Смещ. |
Описание |
+00h |
HdrSize - длина заголовка в параграфах (по 16 байт) |
+20h |
Резерв |
+3Ch |
Смещение начала нового заголовка |
+40h |
DOS-программа (STUB) |
Таблица А-3. Формат NE-заголовка.
Смещ. |
Описание |
|
+00h |
Сигнатура NE-executable ('NE') |
|
+02h |
Версия редактора связей |
|
+03h |
Номер версии редактора связей |
|
+04h |
Смещение таблицы входов (относительно начала заголовка) |
|
+06h |
Длина таблицы входов (в байтах) |
|
+08h |
Зарезервировано: 32-битная контрольная сумма |
|
+OCh |
Набор флагов: (16 бит) |
|
Бит 0 |
SINGLEDATA, в файле содержится только один сегмент данных. Если файл является DLL, бит устанавливается редактором связей |
Таблица А-3. Формат NE-заголовка. (Продолжение}
Смещ. |
Описание |
|
+OCh |
Набор флагов: (16 бит) |
|
Бит1 |
MULTIPLEDATA, в файле содержится несколько сегментов данных. Независимо от этого формат файла NOAUTODATA, и в нем нет автосегментов данных |
|
|
Бит 2 |
Зарезервировано |
|
БитЗ |
Файл может быть загружен только в защищенном режиме |
|
Бит 8 |
Содержится код, не совместимый с библиотеками MSWindows для OS/2 |
|
Бит 9 |
Код, совместимый с библиотеками MS Windows |
|
Бит 11 |
В первом сегменте содержится код, загружающий прикладную программу |
Бит 13 |
Файл был создан, несмотря на обнаруженные редактором связи ошибки |
|
Бит 14 |
Исполняемый файл размещается в EMS |
|
Бит 15 |
Библиотечный модуль. При загрузке библиотеки CS:IP указывает на процедуру инициализации, а регистр АХ равен определителю модуля |
|
+OEh |
Число автосегментов данных: если SINGLEDATA равен нулю, MULTIPLEDATA не указывается |
|
+10h |
Начальный размер (в байтах) локальной кучи. При ее отсутствии равен нулю |
|
+12h |
Начальный размер стека (в байтах). Равен нулю, если SS не равно DS, как в библиотеках |
|
+14h |
CS:IP |
|
+18h |
SS:SP |
|
+lCh |
Число входов в таблице сегментов |
|
+lEh |
Число входов в таблице ссылок на модули |
|
+20h |
Число байт в таблице нерезидентного имени i |
|
+22h |
Относительное смещение начала таблицы сегментов от начала нового заголовка |
|
+24h |
Относительное смещение начала таблицы ресурсов от начала нового заголовка |
|
+26h |
Относительное смещение начала таблицы резидентного имени от начала нового заголовка |
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий