На главную страницу
Форум txt.version   




Статья :: Программирование систем защиты: Реализация защиты на уровне «родного» API для ОС Windows NT
 

Реализация защиты на уровне «родного» API для ОС Windows NT

Один из способов обеспечения прозрачной защиты связан с заменой механизма предоставления функций «родного» API. Как уже рассматривалось в главе «Общая архитектура Windows NT», системные сервисы могут быть предоставлены коду пользовательского режима посредством использования библиотеки ntdll.dll. В ntdll.dll вызов системных сервисов происходит с помощью программного прерывания int 2E. После чего обработчик прерывания для вызова соответствующего системного сервиса использует таблицу распределения системных сервисов (KeServiceDescriptorTable), экспортируемую ntoskrnl.exe (ядро и исполнительная система). Структура этой таблицы следующая:

  1. 1. указатель на массив, содержащий 4-х байтовые адреса точек входа системных сервисов в ntoskrnl.exe (4 байта);
  2. 2. 00000000 (4 байта);
  3. 3. количество системных сервисов (4 байта);
  4. 4. указатель на массив, содержащий однобайтовые значения, определяющие сколько байт надо извлечь из стека режима пользователя, содержащего параметры функции (4 байта).

Зная индексный номер функции, реализующей системный сервис, можно по таблице определить адрес ее начала и заменить его на адрес начала собственного обработчика режима ядра. После исполнения собственного обработчика необходимо передать управление по старому адресу, чтобы дать возможность стандартному обработчику выполнить запрошенные действия.
Так как эта таблица находится в системной области памяти, то такая замена может выполняться только кодом режима ядра (например, драйвером).
Примером подобного средства защиты может служить программный продукт RegMon for Windows NT, выполняющий перехват системных сервисов, реализующих обращение к реестру Windows NT.

 

Программирование систем защиты: Реализация защиты на уровне «родного» API для ОС Windows NT

страницы в данном разделе 
 Программирование систем защиты: Глава 4. Анализ сетевой архитектуры ОС Windows NT с точки зрения возможностей реализации средств защиты и анализа сетевого трафика  Программирование систем защиты: Анализ сетевой архитектуры ОС Windows NT с точки зрения возможностей реализации средств защиты и анализа сетевого трафика
 Программирование систем защиты: Используемые средства построения объединенных сетей и их влияние на уровень расположения средства защиты (согласно модели OSI)  Программирование систем защиты: Объем информации, проходящей через средство защиты
 Программирование систем защиты: Возможности реализации средств защиты сетевой информации на пользовательском уровне  Программирование систем защиты: Реализация защиты на уровне приложений и собственных DLL
 Программирование систем защиты: Реализация защиты на уровне системных DLL, предоставляющих приложениям различные сетевые интерфейсы  Реализация защиты на уровне сетевых сервисов
 Программирование систем защиты: Реализация защиты на уровне «родного» API для ОС Windows NT  Программирование систем защиты: Возможности реализации средств защиты сетевой информации на уровне ядра
 Программирование систем защиты: Драйверы - фильтры  Программирование систем защиты: Реализация защиты на уровне драйвера MUP
 Реализация защиты на уровне драйверов файловых систем  Реализация защиты на уровне транспортного драйвера
 Реализация защиты с помощью перехвата функций NDIS - библиотеки  Программирование систем защиты: Реализация защиты на уровне сетевого драйвера промежуточного уровня, поддерживающего интерфейс NDIS
 Программирование систем защиты: Реализация защиты на уровне драйверов сетевых устройств  Программирование систем защиты: Сравнительный анализ способов реализации
 Программирование систем защиты: Зависимость способа реализации средства защиты от предъявляемых к нему требований  Программирование систем защиты: Особенности реализации NDIS-драйвeров
 Программирование систем защиты: Синхронизация  Программирование систем защиты: Структура NDIS-пакетов
 Программирование систем защиты: Завершающие функции  Программирование систем защиты: Точки входа промежуточного NDIS- драйвера
 Программирование систем защиты: Точка входа DriverEntry  Программирование систем защиты: Точки входа ProtocolXxx
 Программирование систем защиты: Точки входа MiniportXxx  Программирование систем защиты: Точки входа MiniportXxx


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста