• (三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行


    1. 驱动开发环境搭建

    请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133341733

    2. 驱动开发新建项目及项目属性配置和编译

    请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133376458

    3. 双机调试环境搭建

    3.1 安装虚拟机VMware

    准备好安装包,勾选将VMware Workstation控制台工具添加到系统PATH。

    在这里插入图片描述

    输入秘钥:ZF71R-DMX85-08DQY-8YMNC-PPHV8,如果失效,勾选试用30天。

    在这里插入图片描述

    下载完成后,以管理员身份打开VMware,新建虚拟机,选择自定义:

    在这里插入图片描述

    未提及页面默认下一步

    选择稍后安装操作系统:

    在这里插入图片描述

    选对应要安装的系统

    在这里插入图片描述

    系统安装路径自己设定,但不能安装在VMware文件路径下

    在这里插入图片描述

    改为BIOS引导设备:

    在这里插入图片描述

    将虚拟磁盘拆分成多个文件:

    在这里插入图片描述

    自定义硬件:

    在这里插入图片描述

    选择你的ISO映像文件路径:(系统安装镜像文件)

    在这里插入图片描述

    完成。开启此虚拟机:

    在这里插入图片描述

    安装你的操作系统:

    在这里插入图片描述

    在虚拟机系统中安装VMWare Tool:(在虚拟机选项卡的下拉菜单中)

    安装该工具后才能实现主机与虚拟机之间的文件共享,支持自由拖拽的功能

    在这里插入图片描述

    3.2 配置Dbgview.exe工具

    安装好VMWare之后就可以把Dbgview.exe工具复制到虚拟机系统中:

    Dbgview是windows下的一款调试工具,可以捕获程序输出的日志,分为64位和32位,支持应用层和内核层的日志捕获,利用它排除bug是个不错的选择。一般程序日志记录可以输出到文件进行查看,但是使用Dbgview不会自动输出到文件,它的日志信息是驻留在进程内存中。

    该工具可以很方便的观察DbgPrint的日志。

    在 “Capture” 菜单中,可以选择三种不同的日志记录模式:

    • Capture Win32: 监听所有应用程序产生的调试输出。
    • Capture Global Win32: 监听全局系统级别的调试输出。
    • Capture Kernel: 监听内核级别的调试输出。

    开始监听并显示日志:点击 “Capture” 菜单中的 “Start”,Dbgview 将开始监听相应模式下产生的调试输出信息,并将其实时显示在窗口中。

    过滤和配置选项:在 “Edit” 菜单中,你可以设置过滤器来仅显示特定进程或线程生成的调试信息。此外,你还可以配置其他选项,如字体、颜色等。

    停止监听和保存日志:当你需要停止监听时,在 “Capture” 菜单中点击 “Stop”。如果想要保存当前窗口中显示的日志内容,可以选择 “Log to File” 或者 “Log to Pipe”。

    Dbgview 提供了一种方便的方式来查看和分析应用程序的调试输出信息,特别适合于调试和故障排除。请注意,使用 Dbgview 需要以管理员权限运行,并且在某些情况下可能会受到安全软件的阻止。

    在这里插入图片描述

    在虚拟机中以管理员身份运行该工具,在菜单上选择Capture,勾选如下选项:

    查看内核日志

    在这里插入图片描述

    3.3 基于Windbg的双机调试

    选用COM口作为连接

    在虚拟机系统中,以管理员权限打开cmd输入:

    Bcdedit /debug on 回车
    Bcdedit /dbgsettings serial baudrate:115200 debugport:1 回车

    在这里插入图片描述

      配置完成后,请关闭虚拟机内的操作系统,然后在Vmware的配置界面,新增一个串口设备,设置该串口使用“命名管道”,名字为:\.\pipe\com_1 ,具体配置如下图所示:
    在这里插入图片描述

    到此为止,被调试机所需设置已全部完成。

    接下来开始配置Windbg

    在调试机中(自己主机)运行Windbg工具:

    选择File下的Kernel Debugging,配置COM口

    在这里插入图片描述

    配置完成,开启虚拟机,打开自己主机Windbg,启动后就会去连接被调试机器。

    4. 内核驱动的运行

      驱动的运行通过服务来实现,微软规定,驱动文件必须经过微软的数字签名后,才可以运行在64位系统上。开发的驱动没有签名,需要加载运行就要临时关闭系统驱动签名校验。

    4.1 临时关闭系统驱动签名校验

    Windows 7:开机在键盘按下F8,选择禁用驱动程序签名强制。

    Windows 10+:在高级启动中设置,具体操作为:“开始菜单”-“设置”-“更新与安全”-“恢复”,在高级启动下点击“立即重启”按钮,然后在出现的界面中选择“疑难解答”-“高级选项”-“启动设置”,点击“重启”按钮,系统开始重启,在重启过程中会显示启动选项,在键盘上输入数字7,即选择“禁用驱动程序强制签名”。
    在这里插入图片描述

    4.2 加载驱动

    在虚拟机系统中临时关闭系统驱动签名校验,然后把生成的.sys驱动放到虚拟机系统的C盘下,接着在虚拟机系统内使用管理员权限运行CMD
    (1)创建服务,注册驱动:sc create FirstDriver binPath= “c:\FirstDriver.sys” type= kernel

    请注意上面命令,等号(=)后面需要有一个空格,FirstDriver是服务名,binPath后面是要加载的驱动的路径

    (2)启动服务:sc start FirstDriver

    出现如下界面说明你的驱动成功加载:

    在这里插入图片描述
    如果出现error,说明你未禁用驱动签名

    (3)停止驱动服务:sc stop FirstDriver

    (4)删除已注册和创建的服务:sc delete FristDriver

  • 相关阅读:
    17. 机器学习 - 随机森林
    【LeetCode】Day187-分割回文串
    【16】c++11新特性 —>独占智能指针unique_ptr
    大数据02-数据仓库
    [LINUX使用] iptables && tcpdump && wireshark && tshark
    独立站如何选品
    基于springboot+vue的大学生创新创业系统(前后端分离)
    VR农学虚拟仿真情景实训教学演示
    leetcode 53 最大子数组和
    catkin_make 常用参数
  • 原文地址:https://blog.csdn.net/qq_41273999/article/details/133984859