Иногда приходится наблюдать инциденты, когда при запуске отладчика WinDbg в режиме локальной отладки ядра (local kernel debugging), возникает следующая ошибка: Debugger can't get KD version information, Win32 error 0n5.
Ошибка возникает не смотря даже на то, что отладчик WinDbg запускается из-под учетной записи с правами локального администратора, с использованием механизма эскалации (повышения) привилегий (Запуск от имени администратора). Ошибка указывает на то, что отладчик не может получить (Win32 error 0n5, символическое имя ERROR_ACCESS_DENIED) информации о версии отладки ядра. Описанную ошибку можно наблюдать в версиях Windows, начиная с Vista. Существует несколько причин возникновения ошибки Debugger can't get KD version information, Win32 error 0n5, описанием которых мы сегодня и займемся.
Причина 1
Во всех версиях системы, начиная с Windows Vista, изменения коснулись функций ядра, ответственных за отладку в режиме локальной отладки ядра. В данных версиях Windows изменившийся функционал требовал включения режима локальной отладки ядра на этапе старта (загрузки) системы. Для включения требуется внести изменения в базу данных конфигурации загрузки (BCD), которые можно произвести при помощи установки опций посредством утилиты-менеджера BCDEdit.exe:
bcdedit /debug on
После установки описанной опции требуется произвести перезагрузку операционной системы.
Причина 2
Тем не менее, помимо уже рассмотренной нами опции debug существует еще одна причина появления ошибки "Debugger can't get KD version information, Win32 error 0n5" при запуске отладчика WinDbg. На уровне (локальной|доменной) групповой политики была добавлена привилегия SeDebug (Отладка программ), обеспечивающая получение доступа к разнообразным сторонним/дочерним процессам в режиме отладки. Проверить наличие привилегии можно при помощи команды whoami /priv
:
На картинке отчетливо видно, что в списках указанный параметр SeDebugPrivilege присутствует, что по умолчанию характерно для всех учетных записей, входящих в группу Администраторы. Однако, в доменной среде все может оказаться совсем не так. Дело в том, что с целью обеспечения дополнительной защиты от раскрытия паролей пользователей в (корпоративных) доменных средах, некоторые особо продвинутые администраторы могут отключать описанную привилегию у выбранных категорий пользователей. Настройки можно изменить в редакторе групповой политики, перейдя в раздел Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Локальные политики -> Назначение прав пользователя затем найдите и отредактируйте политику Отладка программ.