Истории о вирусах



              

Формат заголовка 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

Относительное смещение начала таблицы резидентного имени от начала

нового заголовка

<


Содержание  Назад  Вперед