今天写一个驱动的hello world。
打印一下基本的信息吧就是,创建一个空项目,写一个驱动入口和一个卸载例程。
这里给一下用到的工具,其中 VirtualKD-Redux 是github上下载的,用于关闭windows驱动签名验证的,这里建议直接再虚拟机里搞就好了。
code
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<ntifs.h> #define kprintf(format, ...) DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, format, ##__VA_ARGS__)
void DriverUnload(PDRIVER_OBJECT pDriver) { kprintf(("Line %d:xia0ji233: unload success\n"),__LINE__); } NTSTATUS DriverEntry( _In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath ){ DriverObject->DriverUnload = DriverUnload; kprintf(("RegistryPath = %S\n"), RegistryPath->Buffer); kprintf(("Line %d:xia0ji233: work success\n"), __LINE__); return 0; }
|
这里我没有使用默认的 Kdprint 宏,而是用Q师傅给我的这个定义的宏去打印输出的,因为不知道为啥我的环境打印不出来这些语句。
然后使用驱动工具加载和卸载。
也是能成功地捕获到调试信息了,这算迈出第一步了吧。