Основные сведения о форматах Win32

В Win32 память, используемая под программы, данные, ресурсы, таблицы ввода и вывода и другие элементы, представляет собой один сплошной линейный массив адресного пространства. Поэтому для работы с модулем Win32 необходимо знать адрес, в который загрузчик отобразил в памяти исполняемый файл.

Относительным виртуальным адресом (RVA) называется смещение произвольного элемента модуля по отношению к адресу, с которого начинается отображение файла в памяти (базовый адрес).


4.1. Заголовок Win32

Первой областью любого модуля является его заголовок. При этом первые несколько сотен байт заголовка отводятся под заглушку DOS. Эта заглушка предусмотрена на тот случай, когда пользователь запускает программу Win32 в среде, которая не поддерживает Win32, получая при этом предупреждающее сообщение. Здесь же хранится стартовое смещение для обнаружения начала заголовка. Заголовок хранит самую общую информацию о файле. Например:

– тип процессора, для которого предназначен файл;

– количество секций в EXE – файле;

– время создания файла компоновщиком;

– RVA, с которого начинаются программные секции файла;

– RVA, с которого начинаются секции данных файлов.

Секции данных обычно идут последними в памяти, после заголовка модуля и программных секций.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: