最近开始做游戏驱动开发保护,使用Visual Studio 2010 VC++ 编写,搭建好驱动开发开发环境:
环境:Vs2010 + WinDDK + VisualDDk + WinDbg + Vmware 12
这里需要说几点,以免做驱动开发的兄弟踩坑。
1.你的物理机可以是32位x86架构,也可以是64位 x64位架构,没有强制要求,但是虚拟机必须匹配驱动架构位数,比如驱动是32位架构,你的虚拟机必须装32位的,你的WinDDK引用的是win7的API DDK CRT,你的虚拟机系统就必须安装win7系统。也就是说64位的win10物理机可以调试32的安装了win7虚拟机。
- 符号问题,Symbols 配合WinDbg 来从微软服务器下载PDB符号文件,但是一定要考虑到你自己的网络是否可以访问微软服务器,我就遇到了整了一天winDbg,死活不加载符号,结果最后发现是符号服务器我这里网络无法访问。
3.就是今天说的重点了,使用VisualDDK调试驱动的时候,必须使用vs2010的visualDDK插件来创建,创建的工程多了一个VisualDDKHelpers.h 还有好多的宏定义,而且是C语言的工程,可是我们就是想用自己手写的驱动,要实现调试怎么办?
如果你自己的驱动工程,调试时候你发现:
显示驱动已经被卸载,我才调试呢,居然被卸载了。
虚拟机里面伺服程序提示,大概意思是驱动已复制到虚拟机了,但是执行过期驱动的时候异常退出了。
真是让人不省心啊,然后我们打开vs2010设置调试选项
此处要修改为下图
注意绿色框住的部分是你生成的驱动文件的名称,不带.sys
然后调试就可以勾住断点了。
开始你的驱动开发之旅吧,做了5年的ASP.NET MVC 做了5年的C++引擎和后端开发,现在开始做驱动保护了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。