Я работаю над приложением (язык C++), которое использует определенные библиотеки Windows. Например, я могу найти версию любого приложения, используя Version.lib. Я добавил библиотеку в настройки компоновщика Visual Studio. Я не могу указать точное местоположение библиотеки, поскольку это библиотека Windows.
По умолчанию порядок поиска в библиотеке следующий:
- Каталог, из которого загружено приложение
- Текущий рабочий каталог (CWD)
- Системный каталог
- 16-битный системный каталог
- Каталог Windows
- Каталоги, перечисленные в Переменная среды PATH
В связи с тем, что мое приложение используется из каталога пользователя,
Предварительная загрузка DLL атаки могут произойти, когда хакер может поместить собственный файл Version.dll в тот же каталог, из которого загружено мое приложение. Эта пользовательская версия.dll будет загружена, поскольку приложение изначально загружает всю библиотеку dll. Как можно решить эту проблему?
Я даже пытался указать путь к Version.lib в дополнительной зависимости компоновщика, но он все равно сначала выполняет поиск в текущем каталоге. Я использовал Process Monitor, чтобы узнать, что dll сначала ищется в текущем каталоге.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -preloadin