Доброго времени суток!
Кто имеет опыт разработки
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..
С помощью
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?