Что является основой изображения (в файлах Windows PE) - PullRequest
0 голосов
/ 06 декабря 2018

Прочитал документацию о формате PE на MSDN, там указано:

Предпочтительный адрес первого байта изображения при загрузке в память;должен быть кратным 64 К. По умолчанию для DLL это 0x10000000.По умолчанию для Windows CE EXE-файлов 0x00010000.По умолчанию для Windows NT, Windows 2000, Windows XP, Windows 95, Windows 98 и Windows Me - 0x00400000

Я не совсем понимаю это.Что такое «предпочтительный адрес»?Как это поле используется окнами при создании нового процесса / загрузке исполняемого файла?

1 Ответ

0 голосов
/ 06 декабря 2018

Это адрес в виртуальной памяти, куда должен быть загружен исполняемый файл, чтобы избежать каких-либо настроек инструкций абсолютного перехода в коде.ОС может загрузить модуль по другому адресу (в том случае, если, например, 2 DLL, необходимые для одной и той же программы, имеют одинаковую базу изображений), но в этом случае код должен быть исправлен при загрузке.

Для получения дополнительной информациисм. https://msdn.microsoft.com/en-us/library/ms809762.aspx (найдите там базу изображений).

...