Закрепление библиотеки DLL в памяти (увеличение количества ссылок)
Я пытаюсь запустить приложение, но оно закрывается из-за нарушения прав доступа. Запустив приложение в отладчике, я вижу, что это вызвано незагруженной библиотекой. Я не могу дождаться следующей версии приложения, поэтому я пытаюсь обойти проблему.
Интересно, предоставляет ли WinDbg способ увеличения счетчика ссылок загруженного модуля, подобно вызову C ++ LoadLibrary (). Затем я могу прервать загрузку модуля и увеличить количество ссылок на уязвимую DLL, чтобы посмотреть, смогу ли я использовать приложение тогда.
Я уже искал команды, начинающиеся с.load
, !load
, .lock
, !lock
, .mod
а также!mod
в WinDbg помогите. .load загрузит DLL как расширение в процесс отладчика, а не в целевой процесс.
Обновить
Забыл упомянуть, что у меня нет исходного кода, поэтому я не могу просто реализовать вызов LoadLibrary () в качестве обходного пути и перекомпилировать.
Комментарий Ганса Пассанта приводит меня к.call
и я пытался использовать его как
.call /v kernel32!LoadLibraryA("....dll")
но выдает сообщение об ошибке
Символ не является функцией в .call / v kernel32! LoadLibraryA (".... dll") '
Обновление 2
Вероятно, строка для имени файла в.call
должен быть указатель на некоторую память в целевом процессе вместо строки, которая находится в WinDbg.exe, где я набираю команду. Это снова означает, что я, вероятно, хотел бы выделить немного памяти для хранения строки внутри, так что это может стать более сложным.