Temat projektu - 9. Sterownik wyświetlający informacje o tablicach systemowych (GDT, IDT lub inne, plus tablica wektorów przerwań 0x80 plus system calls) w systemie Linux
- Moduł kernela, który tworzy urządzenie znakowe. Można z tego urządzenia pisać i czytać. Rzeczy pisane interpertuje jako PID procesu, który ma sprawdzić, a podczas odczytu zwraca zawartość rejestru CR3 tego procesu.
- Program do komunikacji z urządzeniem
- Moduł wypisujący zawartość GDT do logów komunikatów kernela (dmesg).
- Tworzy i rejestruje urządzenie "CRThree_char" gdy moduł jest ładowany
- Rejestruje funkcje do obsługi odczytu i zapisu do buforów
- Niszczy urządzenie i sprząta po sobie gdy moduł jest odłączany
- Wypisuje do komunikatów kernela informacje związane z przetwarzaniem
- Przyjmuje jedyny argument linii poleceń - PID do sprawdzenia
- Otwiera urządzenie
- Pisze PID do bufora urządzenia
- Odczytuje do swojego bufora przetworzony PID na zawartość CR3
- Wypisuje na wyjście zwróconą zawartość
- Podczas ładowania wypisuje do komunikatów kernela zawartość 255 wpisów w GDT
- make - tworzy CRThreeModule.ko i GDTReaderModule.ko
- make install - ładuje moduł CRThreeModule.ko
- make remove - usuwa moduł CRThreeModule
- make test - wyświetla dmesg po install i remove
- make test_gdt - wyświetla dmesg po załadowaniu i usunięciu GDTReaderModule
- make clean - czyści folder roboczy
Będąc w maszynie wirtualnej jakiejś dystrybucji linuksa (najlepiej kernel >= 4)
- make
- make test_gdt | less
- make test
- make install
- sudo ./CRThreeReader