зводіться до поиска назви Функції в табліці та заміні ее адреси на адресу Нової. Ця технологія НЕ змінює поведінку самої Функції ОС, альо змушує програму використовуват підставну функцію. Недоліком є ??необхідність модіфікації IAT для шкірного процеса в Системі, что зводіться до завантаження DLL-бібліотеки у адресова простір процеса.
Сплайсинг
Метод перехоплення путем Зміни коду цільової Функції в памяті системи. Суть зводіться до заміні дерло 5 байт Функції на команду Довгого Безумовно переходу (JMP), что передает управління до підставної Функції. Щоб Забезпечити коректність роботи, перехоплювач Функції винен Зберегти оригінальний качан Функції, и после Виконання необхідніх операцій Повністю Виконати СПРАВЖНЯ функцію.
2.2 Режим ядра
Перехоплення базується на модіфікації структур ядра та йо функцій. Це здійснюється за помощью Внесення змін до відповідніх таблиці:
· IDT Таблиця діспетчерізації (векторів) переривані.
· SSDT Таблиця діспетчерізації системних сервісів.
· IRP Таблиця драйвера, яка зберігає вказівнікі на Функції, что обробляють пакети IRP.
Таблиця векторів переривані (IDT) пов язує безпосередно підпрограму обробніка переривані з вектором (номером) переривані. Починаючі з процесора типу 80286, адреси в фізічній памяті та розмір табліці переривані візначає 48-бітній Регистр IDTR. IDT вікорістовує наступні типи переривані: апаратні, Програмні та переривані, резервовані процесором, Які є обробнікамі вінятковіх СИТУАЦІЙ на випадок Деяк подій (ділення на нуль, помилка трасірування, переповнення). Пов язує ім я (номер) сістемної Функції ядра з ее адресою в пам яті. Перехоплення помощью модіфікації цієї табліці є найбільш Розповсюдження. При виклику Функції операційна система звертається до табліці з метою Отримання адреси, на якові буде надіс Керування для Виконання Завдання самою функцією.
3. Драйвер режиму ядра. IRP
3.1 Поняття драйверу
Драйвер-це комп'ютерна программа, с помощью Якої ОС отрімує доступ до апаратного забезпеченння Деяк пристрою; завантажувані Модулі, что Працюють в режімі ядра, забезпечуючі інтерфейс между системою вводу / виводу та відповіднімі прилаштувати. Операційна система керує так мав звання «віртуальнім прістроєм», Який розуміє системний набор команд. Драйвер, в свою черго, переводити ЦІ команді у Такі, что может Виконати безпосередно Пристрій. Це є основним принципом ідеології абстракції від апаратного забезпечення.
Драйвер Складається з Деяк ключовими функцій, что обробляють Сістемні події. Головними з них є:
· Завантаження драйверу (реєстрація в Системі, ініціалізація приладнав).
· Вивантаження (Звільнення зайнятості ресурсів: памяті, файлів, пріладів).
· Відкриття драйверу (початок ОСНОВНОЇ роботи. Зазвічай відкрівається функцією CreateFile () в Win32).
· Читання / запис (програма обмінюється інформацією з прістроєм).
· Закриття драйверу (вівільнення ресурсів та видалений дескриптору файлу).