Доброго времени суток!
Изучая intercepting в ОС
Windows заметил что всё сводится к
SetWindowsHookEx, технике DLL инъекций (DLL-injection) и драйверам уровня ядра (но тут по всей видимости тоже только
WinAPI).
Возник вопрос, возможно ли перехватить вызов функции из конкретной
DLL не используя эти техники. Допустим нет необходимости перехвата от конкретного процесса, а необходим перехват от всех процессов.
Как я себе представляю, если эта
DLL уже загружена в виртуальную память, следовательно у её функций есть конкретные адреса, которые подставляются в процессе запуска приложения посредством
LoadLibrary (конечно, если приложение зависит от этой библиотеки). Т.е. нужен перехват обращения по этим адресам и не важно какой процесс обращается к библиотеке. И в случае переопределения поведения функций
ГЛОБАЛЬНО, достаточно лишь патчинга этих адресов.
Если я ошибаюсь - поправьте.
Если есть знания по подходам или библиотеки - поделитесь.
Спасибо!