Безопаснее ли загружать Kernel32.dll по абсолютному пути? - PullRequest
0 голосов
/ 10 января 2019

У меня есть код драйвера со следующей строкой

hKernel32DLL = LoadLibrary( "Kernel32.dll" );

Теперь кто-то просмотрел мой код и предложил загрузить DLL с полным путем. Я сделал быстрый поиск в Интернете о загрузке kernel32.dll, но никто не использовал полный путь.

Может кто-нибудь объяснить мне, почему я должен указать абсолютный путь к kernel32.dll?

1 Ответ

0 голосов
/ 10 января 2019

Безопаснее загружать файлы .DLL с полным путем. Kernel32 уже загружен, потому что вы статически связаны с LoadLibrary, так что в вашем конкретном случае это не имеет значения. (Во всех версиях Windows, кроме 2000, CreateProcess будет загружать Kernel32 в процесс еще до его запуска, но это не относится к другим ядрам .DLL, таким как Gdi32 и User32.)

Если вас беспокоят атаки с использованием .DLL, вы можете вызвать SetDefaultDllDirectories с флагом LOAD_LIBRARY_SEARCH_SYSTEM32, что приведет к загрузке всех .DLL с относительным путем для загрузки из системного каталога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...