Windows驱动工程示例
这里我们使用VS2019+WDK10进行代码编译,使用Windbg+VMware+Win7X64进行双机调试。
由于WDK兼容性问题,win10编译的驱动在win7下会有cookie检查问题,会导致蓝屏。解决方法可详见
- Win10和Win7驱动蓝屏兼容问题
- 为不同版本的 Windows 生成驱动程序:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/develop/building-drivers-for-different-versions-of-windows
首先我们使用VS2019创建一个空的wdm驱动工程,过程如下:
添加main.c文件并输入代码:
#include<ntddk.h>
NTSTATUS
DriverEntry(
PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegisterPath)
{
UNREFERENCED_PARAMETER(DriverObject);
UNREFERENCED_PARAMETER(RegisterPath);
KdBreakPoint();
DbgPrint("hello www.bytekits.com\n");
return STATUS_SUCCESS;
}
编译完成后:
将其编译后的文件放到目标机中,并安装驱动
结果
修改后我们重新进行代码编译,发现进入我们代码的断点
如进运行代码并未的windbg或dbgview中输出hello www.bytekits.com
,请参考 dbgview内核打印 进行配置。