Поделиться через


Отладка WinLogon

WinLogon — это процесс в пользовательском режиме, который обрабатывает задачу входа интерактивных пользователей в систему и выхода из системы, а также все экземпляры ctrl+ALT+DELETE.

Управление NTSD из отладчика ядра

Самый простой способ отладки WinLogon — использовать NTSD и управлять им из отладчика ядра.

Включение отладки WinLogon

Так как вы будете перенаправлять выходные данные отладчика пользовательского режима в отладчик ядра, необходимо настроить подключение отладки ядра. См. статью Настройка отладки.

Чтобы подключить отладчик к WinLogon, необходимо пройти через реестр, чтобы процесс отлаживаться с момента его запуска. Чтобы настроить отладку WinLogon, задайте дляHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\WinLogon.EXE\Debugger значение:

ntsd -d -x -g 

Параметр -d передает управление отладчику ядра. Параметр -x приводит к тому, что отладчик фиксирует нарушения доступа как исключения второго шанса. Параметр -g приводит к запуску процесса WinLogon после вложения. Не добавляйте -g , если вы хотите начать отладку до начала Winlogon.exe (например, если вы хотите задать начальную точку останова).

Кроме того, для параметра GlobalFlag в разделе winlogon.exe следует задать значение REG_DWORD "0x000400F0". Это задает проверку кучи и FLG_ENABLE_KDEBUG_SYMBOL_LOAD. Однако, так как этот второй флаг влияет только на отладчик ядра, символы также должны быть скопированы на целевой компьютер перед запуском отладчика.

Чтобы изменение реестра вступило в силу, требуется перезагрузка.

Выполнение отладки

После следующей перезагрузки отладчик автоматически войдет в WinLogon.

Сведения о том, как продолжить, см. в разделе Управление отладчиком User-Mode из отладчика ядра .

Необходимо задать путь к символам для расположения на хост-компьютере или в другом расположении в сети. При отладке WinLogon проверка подлинности сети на целевом компьютере будет работать неправильно.