驱动开发环境及其双机调试环境搭建

开发环境搭建

使用工具:vs2015,Windows 10 SDK_10.0.14393,WDK10.0.14393.0

(1)安装VS2015  随便一个版本吧,我安装的企业版

(2)安装WDK10.0.14393 安装WDK

(3)安装Windows 10 SDK_10.0.14393.安装SDK,这个首先可以尝试从VS配置更新里安装。

控制面板->卸载程序->vs2015->更改

选上这个SDK,然后更新。注意这个地方很有可能更新失败,我在公司一次就更新成功,在家里更新了好多次,最后都是hash校验失败啥的错误。最终无奈,去网上找离线安装包,注意离线安装包是一个几百兆的压缩文件,不是那种很小的。很小的下载下来,双击之后还是走的上面的那个流程。相当于下载器。下载器下载下来的依然可能出现之前的hash校验失败。这个地方我尝试了好多次。

TIP:最后一点就是一定要注意,SDK和WDK的第三位版本号一定要对上。我的是14393

搭建双击调试环境

接下来是搭建调试环境,驱动通常是搭建双击调试环境。虽然不是要逆向调试啥的。但是本机调试的话很容易丢失一些信息。毕竟蓝屏后我们能得到的只有一个dump。

双击调试环境搭建很简单。下面说下步骤:

1.安装VMWARE,虚拟机。

2.安装Win 64系统。(我是安装的win7)。

3.把第二部安装的系统UAC关掉。

4.在虚拟机里安装WMware Tools。这个在虚拟机设置里可以直接更新。

5.在虚拟机里直接安装.net framework4(如果安装的系统高于win7就不用了,win7,貌似是3.5的,之后都是大于等于4.0的)。

6.备份虚拟机当前镜像。

上面安装完虚拟机之后,接下来继续搭建调试环境。

1.安装windebug.

2.下载VirtualKD然后把target文件夹拷贝到虚拟机里。

3.虚拟机里管理员权限,找到刚刚下载的VirtualKD,运行target文件夹下的vminstall.exe。

4.然后在本机里运行VirtualKD里面的wmmon64.exe,设置调试路径[Debugger path]为1安装的windebug路径

5.重启刚刚的虚拟机(注意此时本机的wmon64正在开启着,在第3步里)。选择这个启动项:

然后会发现windebug自动启动了,其实是被wmon唤醒的,然后电脑卡在这个界面:

可以理解为现在是卡到了调试断点,在windebug里面直接按F5让虚拟机里的系统跑起来。

6.然后先别调试,先去下载windows符号表:

http://msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx对应找到自己系统的符号表。注意有SP1和RTM的区别。下载之后安装到C:\symbols这个目录。

7.在windebug里设置符号表路径:

File->Sysbol file path

8.测试符号表是不是导入成功,此时先重启刚刚的虚拟机,进入到那个按f5之前的那一步。

输入u KiInsertQueueApc看到下面这样(u xxx是内存代码反汇编):

就没啥毛病了。

OK上面的开发环境和调试环境就OK了。

最新文章

  1. 分布式服务协调员zookeeper - 应用场景和监控
  2. eclipse中如何安装插件ADT及SDK工具
  3. 《java编程思想》读书笔记(二)第五章(2)
  4. [leetcode 35] Search Insert Position
  5. 使用Lombok简化你的代码
  6. Api项目压力测试知识荟萃
  7. Ubuntu下QT控制台程序无法运行的解决方案以及XTerm的配置方法
  8. LogFactory缺包异常
  9. Ubuntu/deppin 系统安装Nginx
  10. bugku web 矛盾
  11. [Swift]LeetCode358. 按距离为k隔离重排字符串 $ Rearrange String k Distance Apart
  12. Python小白绘图 哆唻A梦 turtle真的很强大!
  13. springboot 常用配置文件
  14. How not to alienate your reviewers, aka writing a decent rebuttal?
  15. PyCharm设置Python版本
  16. HDU-2586-裸LCA入门-tarjan离线
  17. 谈 JavaScript 中的强制类型转换 (1. 基础篇)
  18. js匿名函数和闭包总结
  19. 关于学习JAVA程序设计语言的回顾与展望
  20. [USACO09JAN]Earthquake Damage

热门文章

  1. ORM框架 和 面向对象编程
  2. 常见 git 需求整理(持续更新中)
  3. FreeBSD jail 折腾记(二)
  4. SQL练习——LeetCode解题和总结(1)
  5. 2.掌握numpy数组
  6. Qt3D使用assimp加载常规模型文件
  7. 使用MyBatis的步骤
  8. 「HTML+CSS」--自定义按钮样式【003】
  9. java例题_14 该日期一年中的第几天问题
  10. Python-Tkinter 使用for循环生成列表式Button及函数调用