Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ОС1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.61 Mб
Скачать

38. Системные перехватчики (hook

Системные перехватчики – это спец-е функции, вызываемые ОС при возникновении условий перехвата. Чаще всего системные перехватчики работают с оконными сообщениями. Системный перехватчик можно установить на выбранную нить или на все нити текущего рабочего стола.

Если Системный перехватчик должен перехватывать не только сообщения текущего процесса, но и сообщения других процессов этого рабочего стола, то функция перехвата должна находиться в DLL.

Адрес этой функции можно получить с помощью динамического связывания. После установления перехватчика эта библиотека будет внедрена во все процессы, для которых требуется активировать функцию перехвата. Причем эта функция будет вызываться в контексте той нити, которая работает с оконным сообщением.

Функция Set:

HHOOK SetWindowsHookEx( int idHook; HOOKPROC lpFn, HINSYANSE hMOD, DWORD dwThreadId);

1-тип перехватчика

2-функция перехвата

3-Dll

4-идентификатор нити(0-на все нити рабочегостола)

Все функции перехвата имеют след-й вид:

LRESULT CALLBACK HOOKProc (int nCode, WPARAM wParam, PARAM lParam);

Некоторые состояния процесса можно получить несколькими способами с помощью перехватчиков разных типов. Выбор конкретного перехватчика производится исходя из требований задачи. Типы перехватчиков.

Перехватчик

Обл.

Название функции

Описание

WH_CALLWNDPROC

TG

CallWndProc

Проверка оконных сообщений перед посылкой оконной процедуре

WH_CALLWNDPROCRET

TG

CallWndRetProc

Проверка оконных сообщений после посылки оконной процедуре

WH_CBT

TG

CBTProc

Проверка состояния окна (создание, уничтожение, получение фокуса ввода, активация, минимизация и т.д.)

WH_DEBUG

TG

DebugProc

Проверка других перехватчиков

WH_FOREGROUNDIDLE

TG

ForegroundIdleProc

Выполняется, когда компьютер входит/выходит из состояния простоя

WH_GETMESSAGE

TG

GetMsgProc

Проверка всех сообщений в момент вызова функций GetMessage или PeekMessage

WH_JOURNALRECORD

G

JournalRecordProc

Запись всех сообщений

WH_JOURNALPLAYBACK

G

JournalPlayBackProc

Проигрывание записанных оконных сообщений

WH_KEYBOARD

TG

KeyboardProc

Проверка символов, введенных с клавиатуры

WH_KEYBOARD_ALL

G

LowLevelKeyboardProc

Проверка нажатий клавиш клавиатуры

WH_MOUSE

TG

MouseProc

Проверка логических действий мышью

WH_MOUSE_LL

G

LowLevelMouseProc

Проверка движений мышью, нажатий/отжатий клавиш

WH_MSGFILTER

TG

MessageProc

Проверка оконных сообщений для диалоговых окон, меню, выпадающий списков и MessageBox

WH_SYSMSGFILTER

G

SysMsgProc

То же самое только для системной области

WH_SHELL

TG

ShellProc

Проверка действия оболочки (переключение языка, активация окна, вывод списокв задач через это окно и так далее

Для отключения системы перехватчика используется следующая функция: BOOL UnhookWindowsHookEx (

HHOOK hhk);