ї системи. Пастки дозволяють спостерігаті за повідомленнями, Які обробляються вікнами других програм. Установка и видалений пасток віробляються помощью добро документованіх функцій бібліотеки user32.dll (функція SetWindowsHookEx дозволяє Встановити пастку, UnhookWindowsHookEx - Знято ее). При установці пастки вказується тип Повідомлень, для якіх винен віклікаті обробнік пастки. Зокрема, існує два спеціальніх тіпі пасток: WH_KEYBOARD и WH_MOUSE - для реєстрації подій клавіатурі и міші відповідно. Пастка может буті ВСТАНОВЛЕНО?? Для заданого потоку и для всіх потоків системи, причому Останнє Дуже зручне для побудова клавіатурного Шпигуна. p align="justify"> Код обробніка подій пастки винен буті розташованій в DLL. Це Вимога пов'язана з тим, что DLL з обробніком пастки проектується системою в адресному простір всех GUI1-процесів. Цікавою особлівістю є ті, что проектування DLL відбувається не в момент установки пастки, а при отріманні GUI-процесом Першого ПОВІДОМЛЕННЯ, что задовольняє параметрам пастки. p align="justify"> Методика пасток вельми проста и ефективна, альо у неї є ряд недоліків. Одним з них можна вважаті ті, что DLL з Пастці проектується в адресному простір всех GUI-процесів, что может застосовуватіся для Виявлення клавіатурного Шпигуна. Крім того, реєстрація подій клавіатурі можлива Тільки для GUI-Додатків. p align="justify"> Стеження за клавіатурнім Введений помощью опитування клавіатурі.
Дана методика засновалося на періодічному опітуванні стану клавіатурі. Для опитування стану клавіш у Системі передбача Спеціальна функція GetKeyboardState, что повертає масив з 255 байт, в якому КОЖЕН байт містіть стан певної клавіші на клавіатурі. Даній метод Вже НЕ вімагає Впровадження DLL в GUI-процес, и в результаті шпигун Менш помітній. p align="justify"> Однак зміна статусу клавіш відбувається в момент зчітування потоком клавіатурніх Повідомлень з его Черги, тому подібна методика працює Тільки для стеження за GUI-Додатками. Цього недоліку позбавлено?? Функція GetAsyncKeyState, яка повертає стан клавіші на момент виклику Функції. p align="justify"> Недоліком клавіатурніх шпігунів такого типу є необхідність періодічного опитування стану клавіатурі з й достатньо скроню швідкістю - не менше 10-20 опитувань в секунду.
Стеження за клавіатурнім Введений помощью перехоплення функцій Windows API
Дана методика не Отримала широкого Розповсюдження, альо тім не менше может з успіхом застосовуватіся для побудова клавіатурніх шпігунів. Методики перехоплення функцій API Дуже схожа до RootKit. Різніця между RootKit и клавіатурнім шпигуном в даним випадка невелика - шпигун перехоплює Функції з метою МОНІТОРИНГУ, а RootKit - з метою модіфікації Принципів роботи и результатів виклику. p align="justify"> Найпростішім способом может буті перехоплення функцій GetMessage, PeekMessage и TranslateMessage бібліотеки User32, что дозволити вести моніторинг всех Повідомлень, одержува...