编写内核驱动-- HelloWord

2025-04-21 08:24:27

1、在VS2013中创建WDM项目,创建好项目后将MyDriver2 Package移除。

编写内核驱动-- HelloWord

2、最终如下图即可,并在Source Files目录中,添加一个Drive.c文件。

编写内核驱动-- HelloWord

3、在Drive.c文件中添加以下代码。#include <ntifs.h>挢旗扦渌; //<ntddk.h>蕺清寤凯VOID DriverUnload(PDRIVER_OBJECT objDriver){ // 避免编译器关于未引用参数的警告 UNREFERENCED_PARAMETER(objDriver); // 什么也不做,只打印一行字符串 DbgPrint("My Dirver is unloading...");}NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath){ // 避免编译器关于未引用参数的警告 UNREFERENCED_PARAMETER(strRegPath); // 如果编译方式为Debug,则插入一个INT 3指令,方便我们调试#ifdef DBG _asm int 3;#endif // 打印一行字符串,并注册驱动卸载函数,以便于驱动卸载 DbgPrint("My First Dirver!\r\n");// KdPrint(("KD My First Dirver!\r\n")); objDriver->DriverUnload = DriverUnload; return STATUS_SUCCESS;}

4、编译后,将编译后MyDriver2.sys文件,拷贝到VMware中,使用A1SysTest.exe加载该驱动并安装。如下图,

编写内核驱动-- HelloWord

5、由于掳姗浚瑙Windows7默认对调试信息做了过滤处理,我们需要看到DbgPrint函数在Windows7系统中打印出信息,需要在修改注册表设置,将HKEY_LOCAL_MACHINE概嗤先眚\SYSTEM\CurrentControlSet\Control\Session Manager项,打开或创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置为0xF,重启即可。可以将如下代码拷贝到*.reg结尾的文件中,双击执行即可。Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]"DEFAULT"=dword:0000000f

6、运行VirtualKD监视工具vmmon.exe或vmmon64.exe即可。并将Debugger path...关联安装WDK中的WinDbg 即可。

编写内核驱动-- HelloWord

7、在VMware中点击A1SysTest.exe中的启动。就会发现WinDbg进入调试模式。

编写内核驱动-- HelloWord

8、在WinDbg中的按F10步过,如下图,在命令输入框中按g(或F5)让其继续运行即可。

编写内核驱动-- HelloWord
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢