windbg源码驱动调试 + 无源码驱动调试
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源码驱动调试 + 无源码驱动调试的更多相关文章
- 采用Reflector的VS.net插件断点调试无源码DLL 分类:
.Net的编程利器Reflector可以反编译基于.net开发的应用程序和DLL,其功能强大不用多说.今天想试验一把利用VS.net的插件断点调试外部无源码的DLL(只要是程序集都可以,所以exe也行 ...
- Windbg源码调试
Windbg提供比VS2008丰富很多的调试命令,尤其是调试多线程程序. 今天试着怎么使用源代码方式调试.为了说明调试命令,<C++标准库>一书里的例子做示范. // testcast.c ...
- 【驱动】DM9000A网卡驱动框架源码分析
Linux网络设备结构 首先看一下Linux网络设备的结构,如下图: 网络协议接口层向网络层协议提供提供统一的数据包收发接口,不论上层协议为ARP还是IP,都通过dev_queue_xmit()函数发 ...
- Contiki源码+原理+功能+编程+移植+驱动+网络(转)
源:Contiki源码+原理+功能+编程+移植+驱动+网络 请链接:http://www.rimelink.com/nd.jsp? id=31&_np=105_315 假设您对于用Contik ...
- APK程序Dex文件无源码调试方法讨论
那些不靠谱的工具 先来说说那些不靠谱的工具,就是今天吭了我小半天的各种工具,看官上坐,待我细细道来.IDA pro IDA pro6.6之后加入了dex动态调试功能,一时间普天同庆.喜大普奔.兴奋之后 ...
- 1. Smalidea无源码调试android应用
一.安装smalidea https://github.com/JesusFreke/smali/wiki/smalidea 1. 进入IntelliJ IDEA/Android Studio开始 ...
- Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建
Solr4.8.0源码分析(4)之Eclipse Solr调试环境搭建 由于公司里的Solr调试都是用远程jpda进行的,但是家里只有一台电脑所以不能jpda进行调试,这是因为jpda的端口冲突.所以 ...
- JEB 无源码调试 以dvm smali字节码方式,Demo尝试
关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1 ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改 ...
- win7下自写驱动导致开机蓝屏调试过程
之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来. 问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程: 使用 ...
随机推荐
- js值类型转换(boolean/String/number),js运算符,if条件,循环结构,函数,三种弹出框
js值类型转换 number | string | boolean boolean类型转换 num = 0; var b1 = Boolean(num); console.log(b1) 转化为数字类 ...
- 点评cat系列-服务器开发环境部署
我们有三种部署方式:1. docker 部署2. 采用官方的 war 包部署. 3. 源码部署 很显然 docker 部署是最简单的, 我尝试了多次, 都在 cat docker 容器镜像的编译过程失 ...
- [物理学与PDEs]第5章习题7 各向同性材料时稳定性条件的等价条件
在线性弹性时, 证明各向同性材料, 稳定性条件 (5. 27) 等价于 Lam\'e 常数满足 $$\bex \mu>0,\quad \lm+\cfrac{2}{3}\mu>0. \ee ...
- 菜鸟博客装饰分享CSS+HTML+js
博客布局更改,各种百度,自己修改,搞成现在这样,有兴趣的朋友可以复制我下面的把自己博客覆盖了,然后在进行更改 不懂可加群问我:675678830 如果想开通打赏,用到js,需要在 下列中 博客侧边栏公 ...
- word2vec概述
既然是概述,那么我也只会在文中谈一点关于 Word2Vec 的思想和大概的方法.对于这个算法,如果一开始学习就深入到算法细节中,反而会陷入局部极值点,最后甚至不知道这个算法是干嘛的.在了解算法大概的思 ...
- 【转】【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- 023_supervisorctl管理服务注意事项
一. (1)问题 我在线上使用supervisorctl管理服务时遇到程序文件更新了,但是下次supervisorctl执行的时候并没有更新, 原因是supervisor更新后必须重新读取加载文件才行 ...
- es2015 解构赋值
解构赋值语法是一个 Javascript 表达式,这使得可以将值从数组或属性从对象提取到不同的变量中.
- css实现右尖括号样式
.arrow{ width: 6px; height: 6px; border-top: 1px solid #999; border-right: 1px solid #999; transform ...
- 四.property
将一个类的函数定义成特性以后,对象再去使用的时候obj.name,根本无法察觉自己的name是执行了一个函数然后计算出来的,这种特性的使用方式遵循了统一访问的原则 # 例一:BMI指数(bmi是计算而 ...


