Я пишу ручной инжектор карт x86 для Windows 10, но при написании кода, отвечающего за разрешение импорта, я нашел функцию из kernel32.dll (windows\syswow64\kernel32.dll) под названием «SleepConditionVariableSRW», которая является пересылкой на «api-ms-win-core-synch-l1-2-0.SleepConditionVariableSRW». Dll, с которой я тестировал мой инжектор, полагается на нее и импортирует ее из kernel32.dll. Когда я загружаю модуль (из windows\syswow64\downlevel) и смотрю на экспорт, SleepConditionVariableSRW снова является сервером пересылки, но снова для kernel32.dll... Я бы понял, если бы это была обычная обратная пересылка и набор API пересылался в базу ядра .dll или что-то в этом роде, но для меня это просто не имеет смысла.
Я тестирую dll с импортом функции из kernel32.dll
kernel32.dll экспорт функции в качестве пересылки в набор API
Набор API экспортирует функцию в качестве пересылки обратно в kernel32.dll, которая в первую очередь пересылает в набор API
Я просмотрел каждую копию этого набора API на всем моем диске и проверил экспорты, чтобы увидеть, пересылал ли какой-либо из них, даже x64, эту функцию в какой-либо модуль, кроме kernel32.dll, но они этого не сделали. Я внедрил dll, которую тестировал, с помощью LoadLibraryA, проверил ссылки на функцию, и она вызывает SleepConditionVariableSRW из kernelbase.dll. Как загрузчик изображений Windows определил, в каком модуле она находится? я думал, что имя пересылки функции всегда будет содержать правильный модуль для поиска экспорта.
Подробнее здесь: https://stackoverflow.com/questions/790 ... rnel32-dll
В kernel32.dll существует, казалось бы, бесконечный цикл обратной пересылки. ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
В kernel32.dll существует, казалось бы, бесконечный цикл обратной пересылки.
Anonymous » » в форуме C++ - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-