Добраться до таблицы интерфейсов
От: alex-eraser Россия http://rmansys.ru/
Дата: 08.02.06 16:12
Оценка:
Добрый день.
Итак предыстория проблемы.
Необходимо, каким-то образом, сделать снимок экрана вместе с overlay поверхность(ями).
Потратил очень много времени на посик информации по данной теме — вообще ничего не нашёл.
Путём тщательного изучения программы, которая умеет "фотографировать" overlay и дизассемблирования её DLL удалось выяснить, что она ставит глобальных хук на клавиатуру, тем самым отслеживая нажатие клавиши Print Screen, и одновременно внедряясь в адресное пространство процесса, который имеет фокус в данный момент...
Далее библиотека производит какие-то монимуляции (уже в адресном пространстве жертвы) (какие точно — не знаю, ну не силён я в чтении ассемблерных команд и в конце концов каким-то образом получает интерфейс IDirectDraw, т.к. далее идёт вызовы EnumSurfaces. Или же вызывается самописная EnumSurfaces... не знаю.
К слову этой программе удаётся перехватить оверлей только если "приложение-жертва" активно, т.е. в нём срабатывает хук на Print Screen, так что это только подтверждает "теорию внедрения".

А теперь проблема — как добраться до таблицы интерфейсов какого-либо процесс, с целью обнаружения там интерфейсов на IDirectDraw?

Если у кого есть советы, или же кто сталкивался с такой проблемой — пишите.

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