slinkinone
@slinkinone
Агент "Везде успеть"

Как отлаживать Windows kernel драйверы?

Доброго времени суток!

Кто имеет опыт разработки kernel драйверов и их дебага прошу поделиться опытом.
Есть host и target тачки (основная ОС и ОС на VirtualBox соотвественно; Windows 10 x64 на обоих). На target machine установлен .NET, WDK, выставлен bcdedit в дебаг режим на COM порт (который через pipe связан с хостом), система переведена в Test mode.

После настройки bcdedit и перезагрузки виртуалки, система грузится заметно дольше обычного, но вывод на хосте в WinDbg я вижу.
Waiting for pipe \\.\pipe\vmcom
Waiting to reconnect...
Connected to Windows 10 10240 x64 target at (Wed Feb 20 20:48:20.804 2019 (UTC + 3:00)), ptr64 TRUE
Kernel Debugger connection established.
Symbol search path is: srv*
Executable search path is: 
Windows 10 Kernel Version 10240 MP (1 procs) Free x64
Built by: 10240.17443.amd64fre.th1.170602-2340
Machine Name:
Kernel base = 0xfffff800`dfc16000 PsLoadedModuleList = 0xfffff800`dff3a070
System Uptime: 0 days 0:00:00.031
KDTARGET: Refreshing KD connection
------------------------------------------
Debuggee not connected


С помощью OSR Loader-а пытаюсь запустить драйвер (предварительно установив тестовый сертификат, полученный после компиляции драйвера в студии) и получаю ошибку: The specified procedure could not be found..

5c6d96193175b342416658.png

С помощью Dependency Walker-а не удалось выявить проблему. Он показал что пропущены файлы: WppRecorder.sys, WdfLdr.sys, msrpc.sys, EXT-MS-WIN-###.DLL. "Пропущенные" .sys файлы находятся в C:\Windows\System32\drivers. Переместил их C:\Windows\System32\ и Dependency Walker их отметил как найденные. Что по EXT-MS-WIN-###.DLL - здесь сказано что эти зависимости могут быть пропущены и не влиять на работу.

Как найти причину того, что драйвер не запускается?
Какой самый удобный способ для отладки драйвера уровня ядра? VM: target machine (bcdedit) + COM/NET + WinDbg + WPP Tracing?
  • Вопрос задан
  • 527 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы