Восстановление базы DLL означает исправление DLL таким образом, что предпочтительным адресом загрузки является адрес загрузки, который загрузчик действительно может загрузить DLL.
Это может быть достигнуто с помощью инструмента, такого как Rebase.exe
, или путем указания адресов загрузки по умолчанию для всех ваших (собственных) DLL, чтобы они "соответствовали" вашему исполняемому процессу.
Весь смысл управления базовыми адресами DLL таким образом - ускорить загрузку приложений. (Или так я понимаю.)
вопрос: стоит ли беспокоиться?
У меня есть книга Windows через C/С++ от Richter/Nazarre, и они настоятельно рекомендуют [a] убедиться, что адреса загрузки все совпадают, так что загрузчику не нужно перегружать загруженные библиотеки DLL.
Однако они не могут утверждать, что это ускоряет время загрузки приложения до любого значительного количества.
Кроме того, с ASLR кажется сомнительным, что это имеет какое-либо значение вообще, так как адреса загрузки будут рандомизированы в любом случае.
Есть ли какие-либо жесткие факты о про/минусах этого?
[a]: В моем WvС++/5th ed он находится в разделах под названием Rebasing Modules и Binding Modules на стр. 568ff. в главе 20 "Расширенные методы DLL".