Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #85, ЯНВАРЬ 2006 г.

Энциклопедия Spyware

Ms-Rem (Ms-Rem@yandex.ru)

Хакер, номер #085, стр. 085-124-5


1) Драйвер клавиатуры принимает прерывание от нее и считывает информацию в свой буфер.

2) Процесс сервера подсистемы win32 (csrss.exe) посылает IRP драйверу клавиатуры с запросом на получение информации.

3) Драйвер клавиатуры возвращает IRP пакет с информацией, по пути пакет проходит цепочку установленных клавиатурных фильтров.

4) csrss.exe обрабатывает поступающую информацию и рассылает оконные сообщения по ожидающим их процессам через функции драйвера win32k.sys.

5) Процесс, получающий сообщения вызывает GetMessage. Эта функция передает управление в ядро, где вызывается NtUserGetMessage из win32k.sys через теневую таблицу системных сервисов (Shadow SDT).

6) Процесс передает сообщение функции TranslateMessage, которая может передать сообщение в ядро функции NtUserTranslateMessage, но для клавиатурных сообщений она этого не делает.

7) Сообщение передается клавиатурным хукам, если они установлены.

8) Процесс передает сообщение функции DispatchMessage, после чего оно отправляется в оконную процедуру.

9) После выполнения оконной процедуры сообщение возвращается обратно в ядро.

Как видишь, путь информации о клавиатурном вводе достаточно сложен, и защитные программы не могут защитить тебя от перехвата информации на всем этом пути. Программы AntiKeylogger и PrivacyKeyboard могут защитить лишь участки 1, 3 и 7, следовательно, у хакера остается море возможностей написать кейлоггер, который обойдет эти защиты. К примеру, можно перехватить информацию на любой стадии ее обработки в ядре (путем модификации Shadow SDT или кода одной из функций), но пока в этом нет необходимости, так как можно обойтись перехватом user mode API функций. Как вариант, можно перехватить функцию TranslateMessage и получать все оконные сообщения так, как будто мы установили клавиатурный хук.

Назад на стр. 085-124-4  Содержание  Вперед на стр. 085-124-6