Не понятна загрузка Dll в другие процессы при помощи установки Хуков
Как я понимаю процесс в целом:
1) Создается Dll
2) Эта Dll загружается в нужный(-ые) процессы и уже выполняет свои функции по перехвату.
Существует несколько способов загрузки Длл.
Не совсем понятен следующий метод:
1) В руткитовской-Dll в функции DllMain устанавливается SetWindowsHookEx
2) Программа загрузчик загружает эту Dll
И чтоже тогда получается, допустим некоторому процессу идет сообщение, на которое установлен перехватчик в нашей Dll, и как я понял, тогда сама ОС грузит нашу Dll в этот процесс? Так получается? А там дальше идет вызов DllMain и понеслась...
Сделай отдельно функцию для установки hook'a. вынеси код из DllMain в другую функцию. Ставить-то его надо всего-лишь один раз. :о)
Сам таким не занимался, но знаю что у Рихтера очень подробно это расписано. Прочитай, может пригодится. Там целая глава у него посвящена тому, как он внедрял dll'ку :)