zoukankan      html  css  js  c++  java
  • 开启驱动生涯

    之前一直想搞搞驱动调试,一直没有条件,最近终于实现了

    驱动开发环境搭建:

    vs2019 community :https://visualstudio.microsoft.com/zh-hans/downloads/
    wdk:https://go.microsoft.com/fwlink/?linkid=2085767

    wdk安装后会开启Spectre,可以通过下载Spectre缓解库解决(不过我直接禁了)

    编译时可能会有警告视为错误之类的问题,按情况调属性就行

    测试用的代码:

    #include <ntddk.h>
    
    VOID DriverUnload(PDRIVER_OBJECT pDriverObject)
    {
        DbgPrint("Goodbye world!
    ");
    }
    
    
    NTSTATUS DriverEntry(
        IN PDRIVER_OBJECT pDriverObject,
        IN PUNICODE_STRING pRegistryPath)
    {
        DbgPrint("Hello, world
    ");
        pDriverObject->DriverUnload = DriverUnload;
        return STATUS_SUCCESS;
    }

    Windbg调试:

    主机:Windows10
    虚拟机:VMware 15.5pro
    目标系统:Windows7

    在虚拟机上添加一个串行端口,命名为 \.pipecom_1(移除了打印机)

    目标系统设置调试环境

    CMD(管理员)
    > bcdedit /dbgsettings serial baudrate:115200 debugport:1
    > bcdedit /copy {current} /d DebugEntry
    {此为系统给出}
    > bcdedit /displayorder {current} {此为系统给出}
    > bcdedit /debug {此为系统给出}

    以调试模式重启Windows7

    在windbg属性目标后添加 -k com:port=\.pipecom_1,baud=115200,pipe,以管理员启动

    用instdrv加载启动驱动

    设置Symbol File Path

    srv*C:Symbols*http://msdl.microsoft.com/download/symbols;(国内已墙,自己想办法)
    C:UsersMysource eposKMDF Driver2Debugi386(编译后的.pdb位置)

    输入命令.reload/i

    输入命令lm查看,看到下面这条表示成功:

    KMDFDriver2 (private pdb symbols) c:usersmysource eposkmdf driver2debugi386KMDFDriver2.pdb

    设置Source File Path > 打开源码 在光标处f9设置断点,f5运行后会在断点停下,之后f10单步即可

  • 相关阅读:
    iOS 谁说程序猿不懂浪漫之 爱心
    iOS 星星评价视图 3行搞定
    iOS 柱状图的定制
    iOS 跑马灯 一句话集成
    代理的使用
    发送的网络请求中含有中文 转码的实现
    杂记
    使用纯代码实现UICollectionView(UITableView)需要注册
    NSASSert的使用
    iOS进阶第三节 数据处理之CoreData
  • 原文地址:https://www.cnblogs.com/harmonica11/p/12644069.html
Copyright © 2011-2022 走看看