Здравствуйте,
> Уважаемые эксперты рассылки, добрый вечер!
Я хоть и не эксперт, но постараюсь ответить.
> Мне, как начинающему пользователю, крайне интересно узнать о
> видеоперехватчике, заранее спасибо.
Всегда пожалуйста.
В окошках линии НТ были применены технологии по разделению адресных пространств
различных процессов, чтобы не возникало проблем с лазанием одной программы в
адресное пространство другой. Свои комментарии, совсем нелестные об этих технологиях
я придержу при себе, а результатом такого решения явилась невозможность получить
доступ из адресного пространства одной программы коей являются челюсти к адресному
пространству другой, коей является озвученная программа. Для преодоления такого
состояния дел существует несколько способов, основанных в принципе на перехвате
нескольких функций ядра, например ExtTextOut и прочих для вывода текста.
Способ номер раз.
Написание собственного драйвера видео карты, который встраивается между реальным
драйвером и программой подзвучки. Это было реализовано в челюстях нижних версий.
Затем Билл калитка снизошёл до незрячих и добавил технологию DCM (Device Chaining
manager) в свои продукты. Видео драйвера для челюстей, глазок и т. д. получили
официальную прописку и стали не совсем драйверами, поскольку встраиваются в специально
созданную для них дырку.
Способ номер два.
Также дядюшкой Билли Калиткой была создана технология MSAA (Microsoft Active
Accecebility), которая позволяет продуктам подзвучки напрямую работать в адресном
пространстве процесса который подлежит озвучке.Таким образом теоретически возможно
работать программе озвучки без видео перехватчика, например Freedom Box или Thunder.
Недостатком такого подхода является то, что если программа не готова к такому
вмешательству, то она валится с грохотом.
В принципе есть другая реализация данного подхода - использование функции CreateRemoteThread
из ядра для создания потока в адресном пространстве насилуемого в особо извращённой
форме процесса. Такой подход является более универсальным и правильным, но гораздо
более сложным в реализации, и не очень подходит для коммерческих продуктов, коими
являются челюсти или глазки. Я сильно подозреваю, что этот подход используется
диктором из окошек, но не могу сказать наверняка.
Способ номер три.
При помощи реестра можно заставить работать произвольную Dll во всех процессах,
изнасиловав процесс и таким образом. Скрин ридеров, использующих такой подход
я честно говоря не встречал, да и не нравится он мне по сути. Но не упомянуть
о нём из-за своего отношения было бы неправильно.
Итак, подводя итог, можно сказать, что видео интерсептор являет собой часть челюстей,
особо уязвимую, но к сожалению в силу жадности программистов из Фридома остро
необходимую для их работы. Это некий виртуальный видео драйвер, перехватывающий
все обращения к функциям вывода на экран и таким образом позволяющий читать текст
на экране.
До свидания.
***
Это сообщение No4425
было разослано для 319 участников дискуссионного листа
[JFWRus] Re: видеоперехватчик