Вопрос по Inject Code
От: CyberDemon Россия  
Дата: 16.11.08 09:54
Оценка:
Задача — перехватить (inject) код некоторых .dll, использующихся в заранее неизвестном приложении.
В простом варианте делаю через WindowsHook CBT (по активации и по получению фокуса). Далее я вызываю GetModuleHandle для нужного имени .dll и если модуль загружен, делаю инжект.
Однако, если приложение загружает библиотеку не сразу, а позже, такой способ не прокатывает (переключение юзером приложения в неактивное состояние и обратно не считается).
Делаю сейчас как — по CBT хуку запускаю поток, который периодически "пасет", а не появилась ли .dll в списке загруженных. И если появилась, то делает inject.
Понимаю, что это неправильно, ибо при некоторых условиях можно все "уронить". Однако других вариантов я не знаю.

Подскажите, как это делается по уму?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.