BigEdu.ru
» » » Winlogon notification package. Теория и практика
Вернуться назад

Winlogon notification package. Теория и практика

Winlogon notification package. Теория и практика

Роман Бурда

Что это такое

В операционных системах линии Windows NT диалоговая поддержка входа в систему реализована с помощью Winlogon. Он предоставляет целый ряд полезных интерфейсов. Наиболее известным является GINA (Graphical Identification and Authentication dll), который обычно используется, когда нужно изменить стандартный способ аутентификации. Например, реализовать возможность входа в систему по отпечаткам пальцев, сетчатке глаза или по электронной карточке. Менее известным, но не менее полезным является Winlogon notification package. Этот интерфейс реализует возможность обрабатывать события на вход и выход пользователей, включение и выключение операционной системы и некоторые другие. К сожалению, последний интерфейс реализован только в операционных системах Win2000 и выше.

Теория

Winlogon notification package – это dll-библиотеки, которые получают и обрабатывают события, сгенерированные Winlogon.

Logon – генерируется при входе пользователя в систему посредством Winlogon + GINA (через консоль, терминал и т. д.). Сообщения не будут приходить, если пользователь зашел посредством LogonUser.

Logoff – генерируется при выходе пользователя из системы (если он вошел в систему посредством Winlogon + GINA).

Startup – генерируется при запуске системы, а также при присоединении терминального клиента.

Shutdown – генерируется перед выключением системы, а также при отсоединении терминального клиента.

StartScreenSaver – генерируетсяпризапуске screen saver-а. В обработчике этого события запрещено показывать интерфейс пользователя.

StopScreenSaver – генерируется при остановке screen saver-а. В обработчике этого события запрещено показывать интерфейс пользователя.

Lock – генерируется, когда пользователь блокирует рабочую станцию.

Unlock – генерируется, когда пользователь разблокировал рабочую станцию, или когда системный администратор снял блокировку, заставив пользователя выйти из системы.

StartShell – генерируется после того, как пользователь зашел в систему и сетевые соединения были установлены.

Для реализации Winlogon notification package необходимо следующее.

Сначала нужно создать динамическую библиотеку, которая будет импортировать набор функций-обработчиков событий. Прототип этих функций должен строиться по шаблону:

VOID FunctionName (PWLX_NOTIFICATION_INFO pInfo);

Как видите, вся информация о данных события хранится в структуре WLX_NOTIFICATION_INFO.

typedef struct _WLX_NOTIFICATION_INFO

{

ULONG Size ;

ULONG Flags ;

PWSTR UserName ;

PWSTR Domain ;

PWSTR WindowStation ;

HANDLE hToken ;

HDESK hDesktop ;

PFNMSGECALLBACK pStatusCallback;

} WLX_NOTIFICATION_INFO, * PWLX_NOTIFICATION_INFO ;

В этой структуре:

Size – определяет размер структуры в байтах;

Flags – поле зарезервировано и должно устанавливаться в 0;

UserName – строка, определяющая имя текущего пользователя. Если событие случилось до входа пользователя в систему, то это поле равно NULL;

Domain – строка, которая определяет название домена, в который вошел текущий пользователь. Если событие случилось до входа пользователя в систему, то это поле равно NULL;

WindowStation – определяет имя оконной станции, в которой текущий пользователь работает. Если событие случилось до входа пользователя в систему, то это поле равно NULL;

hToken – дескриптор token-а пользователя. Если событие случилось до входа пользователя в систему, то это поле равно NULL;

hDesktop – дескриптор Desktop’а для текущего события;

pStatusCallback – зарезервировано для внутреннего использования.

После создания динамической библиотеки нужно указать Winlogon, где ее можно найти, и какие события она будет обрабатывать. Вся информация размещается в системном реестре в ключе

HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogonNotify

Полный доступ к нему имеют только пользователи с правами локального администратора. Обыкновенные пользователи не смогут создавать или изменять подключи и/или значения.

СОВЕТ

Стоит отметить, что этого ключа не существует в ОС Win9x, но существует недокументированный аналог – HKEY_LOCAL_MACHINESystemCurrentControlSetcontrolMPRServices. С помощью этого ключа можно указать процессу mpr.exe (этот процес является некоторым аналогом Winlogon для Win9x, поскольку также отвечает за вход пользователей в систему) загружать в свое адресное пространство необходимую динамическую библиотеку. Таким образом, теоретически можно получить доступ к событиям входа и выхода пользователя из системы. Для указания библиотеки достаточно создать подключ с произвольным именем, и уже там указать следующие значения. ‘DLLName’ (REG_SZ)– имя динамической библиотеки или путь к ней, ‘EntryPoint’ (REG_SZ)– точка входа в библиотеку. Ею может быть название любой экспортируемой функции. ‘StackSize’ (REG_DWORD) – размер стека обычно устанавливается в 0. После перезагрузки системы указанная библиотека будет подгружена в адресное пространство mpr.exe. Поскольку в Win9x доступ к системному реестру имеют

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Winlogon notification package. Теория и практика Роман Бурда Что это такое В операционных системах линии Windows NT диалоговая
Оценок: 1005 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru