1 Hooks w systemie Windows Autorzy: Paweł Kwiecień, Wojciech Kruczkowski Temat: Modelowanie użytkowników Zadaniem jest stworzenie (lub modyfikacja) systemu, który pozwalałby rozpoznawać użytkowników na podstawie danych z monitoringu. Monitorowane powinny być ruchy myszką, klawiatura, uruchamiane programy itp.
2 Co to jest hak(hook)? Hak - mechanizm pozwalający na przechwytywanie określonych wiadomości systemowych zanim dotrą do docelowej aplikacji. Wyróżniamy dwa typy haków: lokalne (thread hooks) – pozwalają przechwytywać wiadomości skierowane do określonego wątku; globalne (system-wide hooks) – pozwalają przechwytywać wszystkie wiadomości danego typu wysyłane przez system.
3 Jak działają haki? Podpinamy haki do wybranych wiadomości systemowych W przypadku wystąpienia którejś z nich (np. wciśnięcie klawisza, tworzenie okna...) Windows sprawdza czy istnieją zarejestrowane dla niej haki Jeżeli tak - normalne operacje związane z wykonaniem zadania zostają zawieszone i kontrolę nad zdarzeniem przejmuje funkcja haka (tzw. „filter function”) Następuje przetworzenie wiadomości
4 Do czego można użyć haków? Haki mają wiele zastosowań: Programy antywirusowe Keyloggery Wzbogacanie sytemu o nowe funkcje Badanie aktywności użytkownik Debugowanie aplikacji
5 Środowisko implementacji i ograniczenia Wykorzystanie platformy.NET i języka C# Platforma nie wspiera obsługi haków, musimy skorzystać z funkcji Win32 API Większość potrzebnych nam funkcji znajduje się w bibliotece user32.dll (do importu prototypy z MSDN) Wykorzystujemy haki globalne - z poziomu.NET można przechwytywać zdarzenia dotyczące jedynie myszki i klawiatury
6 Struktura programu
7 Działanie aplikacji(I) - monitorowanie
8 Działanie aplikacji(II) - statystyki
9 Działanie aplikacji(II) - walidacja
10 Podsumowanie Haki systemowe - odpowiednio wykorzystane potrafią dać dużą kontrolę nad systemem W naszym programie monitorowaliśmy i walidowaliśmy kliknięcia myszą, przyciski klawiatury i uruchomione programy