Win10与VS2015搭建内核驱动开发环境遇到的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011459278/article/details/51289237

关于在Win10与vs2015环境下搭建内核驱动开发环境看这两篇文章:

搭建过程中遇到的问题

本人环境介绍:

  • 物理机win10企业版 10586.218
  • 虚拟机win10专业版 10586.218
  • vs2015 update2
  • Windbg 10.0.10586.567
  • Windows Driver Kit 10.0.10586.0
  • Windows Sofeware Development Kit 10.0.10586.15

问题1:windbg调试虚拟机内核

刚开始,由于我物理机是win10企业版,而刚好电脑上又有win10企业版的镜像文件,于是懒得去下专业版,直接拿企业版做了虚拟机,按照上面的第二篇文章中配置虚拟机,设置为调试模式,并设置调试参数,两种方式:网络或者串口都行,注意设置完参数之后虚拟机一定要重启,其实关于windbg配置成内核调试器在windbg帮助手册上也有,并且也有关于如何在虚拟机上配置的说明,具体这里就不说了,只说配置过程中我遇到的问题,配置完之后,打开cmd,切换到x64的windbg目录,带参数运行windbg准备调试,但是一直没出现像文章中的那种成功的画面,最终发现是我傻Ⅹ了,只用windbg break一下就好了,然后就是cmd要以管理员权限运行,不然会报错。
为了避免每次用cmd切换目录,然后输入命令进行调试,可以新建cmd快捷方式,bat或com批处理,这里我新建了快捷方式,具体如下:
这里写图片描述
主要是设置目标,起始位置不用管,cmd以管理员方式运行时,会忽略掉这个,附上目标:

C:\Windows\System32\cmd.exe /c cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 & windbg -k com:pipe,port=\\.\pipe\vm,resets=0,reconnect

上面也就是通过串口,下面附上通过网络:

C:\Windows\System32\cmd.exe /c cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 & WinDbg -k net:port=50000,key=1.2.3.4

以上关于管道名,端口,key之类的就看你个人设置了。
这样运行这个快捷方式就能够出现以下界面:
这里写图片描述
虽然可以通过vs2015写驱动,然后手动拷贝sys文件到虚拟机,然后windbg下断调试,但是效率低而且难度较大,所以最好还是通过vs2015结合源代码调试,然后就有了问题2

问题2:权限问题

本人在虚拟机win10企业版下尝试了很长时间,总是在vs2015附加时,提示:
Windows Debugging Extension for Visual Studio
Could not start debug session,error 80070005:拒绝访问

很明显是权限不够,但我并不知道如何解决。。。也没找到
可能是我安装完win10企业版之后习惯性用网上的优化工具优化了一下,什么关闭defender没关闭自动更新,关闭防火墙,UAC之类的,当前账户也确实是管理员账户,但是vs一直报这个错误。
在上面的第一篇文章中,作者选的是:
这里写图片描述
也就是之后通过手工部署sys到虚拟机,但是实际上选择:
这里写图片描述
可以让vs自动帮我们部署驱动到虚拟机,推荐这种方式。这个过程也就是创建一个WDKRemoteUser管理员用户并安装一些运行库等,最后还创建了一个系统还原点。起初我虚拟机是企业版的时候,在安装那一步老是报错:
Provisioning a target system for driver development fails with error 1312
这里显示是bug,但是我注意到vs创建WDKRemoteUser时是有密码的,然后我用另一个管理员账户清楚了WDKRemoteUser的密码后,以WDKRemoteUser身份登陆后,再点vs配置里面的安装,却安装成功了,成功界面:
这里写图片描述
最后我再去vs里面附加,结果还是提示:
Windows Debugging Extension for Visual Studio
Could not start debug session,error 80070005:拒绝访问

最后我怀疑是企业版的问题,然后我去下了个win10 10586专业版,并且更新到10586.218,也就是最新,然后关闭defender,关闭防火墙,关闭自动更新,再用vs2015进行配置时,发现WDKRemoteUser用户并没有密码,并且安装成功,最后在vs2015里面附加,终于出现了如下界面:
这里写图片描述
虽然还没开始学内核驱动开发,但单是环境配置这方面就比一般的开发配置复杂的多,我只知道虚拟机被我重启的n次,但是不得不说学到了很多东西,虽然内核这方面没有以前那么火,甚至可以说不火了,但是学底层的东西就越让人对上层东西理解更深刻,就像以前学c语言,会用c语言开发一些小程序,但是真正学了编译原理才了解编译器是如何编译,之后学习pe文件,win32汇编等,感觉比java做网站真的有意思多了,不说了,明天开始好好学驱动开发,睡觉。

展开阅读全文

没有更多推荐了,返回首页