Similar presentations:
Системне програмування. RootKit-віруси і методи їх виявлення
1. Системне програмування
Лекція № 8Лектор Артамонов Є.Б.
2. RootKit-віруси і методи їх виявлення
3. Принцип виклику API функції
ПрограмаDLL
1
Код, що
викликає АРІ
4
Kernel32.dll
LoadLibrary
GetProcAdress
2
Таблиця
імпорту
Таблиця
імпорту
3
5
Код
функцій
4. Модифікація машинного коду прикладної програми для перехоплення виклику функції
ПрограмаDLL
1
Код, що
викликає АРІ
2
Таблиця
імпорту
Таблиця
імпорту
3
Код
функцій
5
4
Kernel32.dll
LoadLibrary
GetProcAdress
RootKit
5. Модифікація таблиці імпорту
ПрограмаDLL
1
Код, що
викликає АРІ
2
Таблиця
імпорту
Таблиця
імпорту
3
Код
функцій
5
4
Kernel32.dll
LoadLibrary
GetProcAdress
Функція
перехоплювач
RootKit
6. Перехоплення функцій LoadLibrary і GetProcAddress
ПрограмаDLL
1
Код, що
викликає АРІ
2
Таблиця
імпорту
Таблиця
імпорту
3
Код
функцій
5
4
Kernel32.dll
LoadLibrary
GetProcAdress
Функція
перехоплювач
RootKit
7. Модифіковані методи перехоплення АРІ функцій
ПрограмаDLL
1
Код, що
викликає АРІ
2
Таблиця
імпорту
Таблиця
імпорту
3
Код
функцій
5
4
Kernel32.dll
LoadLibrary
GetProcAdress
Функція
перехоплювач
RootKit
8. Модифікація програмного коду API функції
ПрограмаDLL
1
Код, що
викликає АРІ
2
Таблиця
імпорту
Таблиця
імпорту
3
Код
функцій
5
4
Kernel32.dll
LoadLibrary
GetProcAdress
Функція
перехоплювач
RootKit
9. Основні задачі, які необхідно розв’язати при реалізації модуля виявлення вірусів-rootkit:
реалізувати метод примусовогозавантаження програми в nativeінтерфейсі;
реалізувати процедури відкриття
каталогу і файлів в native-інтерфейсі
(набір процедур обмежено бібліотекою
ntdll.dll);
реалізувати приховування отриманого
списку файлів від можливого втручання
root-kit вірусом;
10. Схема роботи програмного модуля виявлення вірусів rootkit
ПочатокRun_Pr
Завантаження програми і збереження
списку файлів з обраного каталогу в
файлі F_list_0
Reg_Ch
Коригування реєстру операційної
системи для примусового запуску
програми в native-інтерфейсі
ReBoot
Перезавантаження операційної системи
Run_Nat
Завантаження програми в nativeсередовищі
Copy_Fld
Збереження списку файлів з обраного
каталогу в файлі F_list_1
End_Prg
Завершення роботи програми і
продовження завантаження операційної
системи
File_cmp
(F_list_0,
F_list_1)
Формування списку розбіжностей між
двома файлами
Кінець
11. Завантаження програми
Зміна параметрів реєстру12. Завантаження програми
Рядок завантаження програми черезреєстр
13. Основні вікна роботи програми
Кодування командного файлуВиконання перевірки файлів
Результат порівняння звітів про зміст каталогів
14. Результат перевірки системних каталогів
15. Схема алгоритму порівняння змісту каталогів
ПочатокТак
J<M
Ні
A1[N]
A2[M]
Err(I)
I=0
I++
J=0
Так
I<N
A1[I]==
A2[J]
Ні
Ні
Так
Err_Out()
J++
Кінець
16. Дякую за увагу!!! Зустрінемось на лекції через тиждень
Знайти лектора можна в аудиторії 5-214або
за e-mail-ом: [email protected]
або
вКонтакте: http://vk.com/id6416748