windbg调试方法以及应用与驱动交互

    技术2022-07-10  173

    windbg调试方法

    1、网络连接

    ​ 两台pc通过网络连接,我们把驱动测试的主机称为目的机,把运行windbg进行远程调试的主机称为host主机,首先设置目的机与host主机连接的ip端口以及key信息,已管理员权限运行CMD,输入以下命令:

    bcdedit /dbgsettings net hostip:192.168.6.14 port:50000 key:1.2.3.4

    开机目的机的调试模式:

    bcdedit /set {default} DEBUG YES

    禁用驱动程序签名:

    bcdedit /set nointegritychecks on

    –如果要恢复驱动程序签名,再次运行

    bcdedit /set nointegritychecks off

    运行host主机的WinDbg调试软件,如果安装wdk会自带,没有安装需要手动下载安装,启动之后如下 配置windbg调试的驱动文件目录和源码文件目录,File-Symbol search Path,File-Source File Path 设置与目的机连接的网络信息,端口号和key值,由上述步骤指定 点击确定,此时如果一直停留在 waiting to reconnect…,需要重启目的机。 重启目的机后,可以看到windbg与目的机连接上了 目的机使用驱动加载工具加载测试驱动,并启动

    2、远程调试

    Host主机上的windbg打开要调试的源码文件,File-Open source file

    接下来快捷键CRL+B 或者点击工具栏的中断按钮,使目的机内核运行暂停,在需要调试的位置加入断点,打开watch窗口,可以观察相关变量的值。例如在目的机启动应用软件,应用软件通过输入两个数值,传给驱动程序,驱动程序做加法计算,然后驱动再把值返回给应用软件,图示如下:

    可以看到windbg单步调试信息如下:

    调试时,目的机处于暂停状态(卡死),在cmd窗口的命令输入框输入g,目的机恢复运行状态,可以看到测试的应用程序返回了运行结果1+9=10

    备注

    上述测试驱动与应用代码链接 https://download.csdn.net/download/jiangyingfeng/12023768

    Processed: 0.009, SQL: 9