windbg源码驱动调试

 

环境信息

虚拟机:win7 32位

windbg:6.12(版本不存在太大影响)

设置过程

  • 配置windbg

配置好双机调试后,点击windbg菜单栏的debug->Break产生中断,控制权交给windbg

中断产生后,点击File->Open Sourse File(Ctrl+O)打开源码文件,就会显示出代码窗口

因为有驱动源码,可以直接在驱动入口处下断点进行调试,格式为"bu 驱动名!DriverEntry",这里调试的驱动名为Clear,所以输入调试命令"bu Clear!DriverEntry",最后输入"g"把运行权交回给虚拟机

  • 虚拟机加载驱动,windbg触发中断即可进行源码调试

使用驱动加载工具加载驱动,正常情况下会触发中断并把控制权交给windbg

如果看到下面这些信息,说明成功中断在驱动的入口点处,可以开始源码调试

无源码驱动调试

  • 定位驱动入口点

使用CFF Explorer打开驱动文件,查看Option Header里AddressOfEntryPoint的值

通过驱动名+入口点偏移的方式可以定位到驱动的入口点,这里驱动名为cscc,所以应该下断点的位置为cscc+0x2920

 
 

  • 入口点处下断点

使用驱动加载工具在虚拟机中加载驱动,加载完后点击windbg菜单栏的debug->Break产生中断,把控制权交给windbg,然后在调试窗口输入命令bp cscc+0x2920,这里可以使用lmvm+驱动名(列出驱动信息)和bl(列出断点信息)来查看断点是否正确设置

最后点击windbg的GO(F5)跑起来,这时候就会中断到驱动入口处

比较一下IDA反编译的驱动入口点代码和windbg断在的入口点

参考

windbg双机调试:https://deelmind.cn/2018/06/13/Windbg%E5%8F%8C%E6%9C%BA%E8%B0%83%E8%AF%95/

 

VS 2013驱动开发 + Windbg + VM双机调试:https://www.cnblogs.com/lfls128/p/4971213.html

使用winDbg双机调试SYS无源码驱动程序:https://www.write-bug.com/article/1685.html

驱动调试中怎么样让windbg停在DriverEntry:https://blog.csdn.net/xum2008/article/details/7209785

windbg源码驱动调试 + 无源码驱动调试的更多相关文章

  1. 采用Reflector的VS.net插件断点调试无源码DLL 分类:

    .Net的编程利器Reflector可以反编译基于.net开发的应用程序和DLL,其功能强大不用多说.今天想试验一把利用VS.net的插件断点调试外部无源码的DLL(只要是程序集都可以,所以exe也行 ...

  2. Windbg源码调试

    Windbg提供比VS2008丰富很多的调试命令,尤其是调试多线程程序. 今天试着怎么使用源代码方式调试.为了说明调试命令,<C++标准库>一书里的例子做示范. // testcast.c ...

  3. 【驱动】DM9000A网卡驱动框架源码分析

    Linux网络设备结构 首先看一下Linux网络设备的结构,如下图: 网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发 ...

  4. Contiki源码+原理+功能+编程+移植+驱动+网络(转)

    源:Contiki源码+原理+功能+编程+移植+驱动+网络 请链接:http://www.rimelink.com/nd.jsp? id=31&_np=105_315 假设您对于用Contik ...

  5. APK程序Dex文件无源码调试方法讨论

    那些不靠谱的工具 先来说说那些不靠谱的工具,就是今天吭了我小半天的各种工具,看官上坐,待我细细道来.IDA pro IDA pro6.6之后加入了dex动态调试功能,一时间普天同庆.喜大普奔.兴奋之后 ...

  6. 1. Smalidea无源码调试android应用

    一.安装smalidea https://github.com/JesusFreke/smali/wiki/smalidea   1. 进入IntelliJ IDEA/Android Studio开始 ...

  7. Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建

    Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...

  8. JEB 无源码调试 以dvm smali字节码方式,Demo尝试

    关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1  ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改 ...

  9. win7下自写驱动导致开机蓝屏调试过程

    之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来.   问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程:   使用 ...

随机推荐

  1. CSS盒模型深入理解

    前言 所有文档元素都生成一个矩形框,这称为元素框(element box),它描述了一个元素在文档布局中所占的空间大小.而且,每个框影响着其他元素框的位置和大小 宽高 宽度width被定义为从左内边界 ...

  2. 调用腾讯、百度翻译API,实现游戏机翻通用程序

    最近玩了款steam独立游戏,没中文,只能自己汉化了,用腾讯跟百度的API实现了一个通用的机翻程序(只需要导入JSON文本), 同样,比较懒,还没写,先占坑

  3. 数据库之数据库管理篇[mysql]

    管理数据库 1.mysql开闭使用篇 mariadb在Linux中首次进入mysql(因为此时还没有创建任何用户,mysql的root并不等效于linux中的root用户) sudo mysql 进入 ...

  4. Silverlight Visifire控件应用去除图标的水印

    首先,新建一个类,继承自Chart,重写LoadWatermark方法. 再创建图表实例的时候就不能new Chart实例了,直接使用MyCharts. 使用去除水印之前的图片: 使用去除水印之后的图 ...

  5. 二进制中连续k个1-题解

    原题传送门[>XJOI<]    重要提示:您的等级必须达到三级五段,否则会被一只小猫痛扁 题目描述: 求最小的m,使得m>=n而且m的二进制表示包含至少连续k个1 输入格式: 输入 ...

  6. codeblocks1712设置中文

    下载汉化包:百度网盘,密码:7rrz 下载后放到安装目录:D:\Program Files (x86)\CodeBlocks\share\CodeBlocks\locale\zh_CN(根据个人安装目 ...

  7. Django跨域请求

    一.jsonp方式 同源策略会阻止ajaxa请求,但不阻止src. jsonp方式其实是利用了<script>标签可以直接跨域的性质,在body中生成一个<script>标签, ...

  8. SQL Server - Partition by 和 Group by对比

    参考:https://www.cnblogs.com/hello-yz/p/9962356.html —————————————————— 今天大概弄懂了partition by和group by的区 ...

  9. 【easy】110. Balanced Binary Tree判断二叉树是否平衡

    判断二叉树是否平衡 a height-balanced binary tree is defined as a binary tree in which the depth of the two su ...

  10. $Django python中使用redis, django中使用(封装了),redis开启事务(管道)

    一 Python操作Redis之普通连接 #先安装 pip3 install redis import redis r = redis.Redis(host='127.0.0.1', port=637 ...