WINDBG 驱动调试命令

windbg 符号加载

首先添加符号,打开 windbg 工具栏 file->Symbol File Path ....  写入路径如下所示

SRV*E:\\tools\win7-sp1-x86*

然后勾选左下角的Reload , 确定

执行下面执行强制加载符号

kd> .reload /f

查看是否加载了符号 

kd> lm

如果在模块后面出现 符号的路径就表示成功了,有些没有加载成功,没关系。


无符号调试驱动的两种方法

方法一:用loadPE打开驱动,查看OEP(路口点地址)如下所示

然后在windbg中执行如下命令进行下断点

kd> bp 驱动名称不含扩展名+0x6000

 运行windbg后,使用工具加载驱动,驱动启动后会自动断下来

方法二:有时以上方法断不下来,就需要用到该方法,首先loadPE打开驱动文件,将OEP复制,然后点击位置计算器,将路口点粘贴,计算。

 

 将路口点的第一个字节改成cc,让程序断下来,记得保存。(需要记住被修改的值,一般情况下为0x55。)

保存好后从新计算一下校验和     点击?然后保存退出

 不用下断点,当程序加载执行后windbg 会断下来,这时只需将该位置的汇编改回来就可以在路口点调试了

kd> eb eip 0x55

windbg指令

1. 清屏命令

kd> .cls

2. u命令(反汇编)

kd> u .

查看当前的8条反汇编

kd> u . L30

查看当前0x30条反汇编

kd> uf .

反汇编当前整个函数

kd> ub .

反汇编之前的8条指令


设置断点命令bu bp bm ba

下断点可以是地址也可以是函数名

kd> bu NT!ZwCreateFile

1) bu bp bm设置软件断点

a). bp设置地址关联的断点

b). bu设置符号关联的断点

c). bm支持设置含通配符的断点,可以一次创建一个或多个bu或bp (bm /d)断点

bp和bu的主要区别

a) bp所设断点和地址关联,如果模块把该地址的指令移到其它地方,断点不会随之移动,而是依然关联在在原来的地址上; 而bu所设断点是和符号关联,如果符号的地址改变了,断点依然保持和原来的符号关联。

b) 如果bp所设断点的地址在加载的模块中被找到,后来软件模块被卸载,断点会被自动移除;而bu所设断点则会一直存在。

c) bp设置的断点不会被保存windbg的workspace中,bu设置的断点会则会被保存下来。

2)ba设置硬件断点(数据断点)

硬件断点是指当一个内存地址被访问(读、写、执行)或IO端口被访问时触发的断点。



其它命令bl bc bd be .bpcmds

bl 列举所有断点和它们的状态

bc 删除对应断点

bd 禁用对应断点

be 启用对应断点

.bmcmds 列举所有断点以及创建它们的命令


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值