![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
.reloc
Kerk © (2004-03-20 10:33:00)При запуске ехешник всегда загружается по тому адресу, которому хочет (ибо вирт.память), в этом случае секция .reloc ему не нужна. Эта секция может понадобиться, если кто-то грузит ехешник с помощью LoadLibrary.
Такие образом, если export size = 0, то секцию .reloc можно убивать? Правильно?
Kerk (2004-03-21 14:56:00) [1]
> Игорь Шевченко © (21.03.04 00:22) [3]
Обо всем, что ты сказал, я в принципе и так догадывался.
Вопрос задал, чтобы уточнить вот что:
Эта секция может понадобиться, если кто-то грузит ехешник с помощью LoadLibrary.
Игорь Шевченко (2004-03-21 00:22:00) [2]Примерчик показал, что перебазируются Known DLLs (за редким исключением, при попытке влезть в диапазон адресов, занятый Kernel32.dll приложение тихо умерло).
Я полагаю, что в большинстве случаев .reloc можно убирать для EXE-файлов. Могу ошибаться, но в списке модулей, живущих в адресном простанстве процесса, я пока не видел EXEшников, живущих не по своему базовому адресу.
Игорь Шевченко (2004-03-21 00:09:00) [3]Рано на Enter нажал.
> Такие образом, если export size = 0, то секцию .reloc можно
> убивать?
Если не допускать предположения, что EXEшник перекроет область Known DLLs, я не уверен, кто из будет перебазирован. Можно пример написать :)
Игорь Шевченко (2004-03-20 23:59:00) [4]
> При запуске ехешник всегда загружается по тому адресу, которому
> хочет (ибо вирт.память),
Ибо проецируется на адресное пространство процесса первым, согласно Рихтеру.