附上windebug常用调试命令

一、基础命令

    程序重在编程思维,难在程序调试,写出了程序还不行,还必须进行调试,证明结果。

WinDbg是微软开发的一款强大无比的调试器。利用它我们可以进行内核双机调试。

在调试程序之前我们要掌握如何来使用Windbg调试器,也就是掌握Windbg命令。

.sympath命令

设置符号表路径。

 

.reload 命令

此命令主要用于加载符号表。

.reload /f   //重新装载模块

.reload /i   //强制加载mismatched symbol

 

U命令

    这个命令主要用于反汇编某个地址,其后面可以跟函数名和地址。

db/dw/dd/dq/dD/df命令

这四个命令主要用于查看某地址所储存的数据。他们的不同在于所显示的数据长度。

db显示一字节的长度。

dw显示两字节的长度。

dd显示四字节的长度。

dq显示八字节的长度。

dD 显示double实数(8字节的长度)

df 显示float实数(4字节的长度)

da/du/ds/dS命令

   da 显示asscii

   du 显示unicode

   ds 显示ANI_STRING

   dS显示UNICODE_STRING的值

eb/ew/ed/eq命令

   eb address value address 这个地址写入一个字节value 

   ew address value address 这个地址写入两字节value

   ed address value address 这个地址写入四字节字节value

   eq address value address 这个地址写入八字节字节value

 

二、对象相关命令

dt命令

   dt命令主要用于查看结构体。

lm 命令

   Lm  列出模块。

   lm vm 模块名 查看模块详细信息。

 

!process  命令

   !process 0 0//列出系统进程信息

   !process 0 0 进程名  //列出该进程的信息

   !process 0 1 进程名  //列出该进程更加的信息

   !process 0 7  进程名 //列出该进程的详细信息,包括线程的

 

.process 命令

   .process EPROCESS  //切入该进程中

!object  命令

   !object 地址  //显示该地址的对象信息。

 

 

 

三、断点命令

  

bp/ba命令

   bp命令是通过向指定地址插入int 3 指令来完成的,这种方式容易被发现。

   bp address  在地址address插入断点。

   ba命令是是硬件断点命令,通过设置cpudx寄存器来拦截线程。

   ba access size 地址//access 是访问的方式,比如 e (执行)r (/)w (size是监控访问的位置的大小,以字节为单位。值为 124,在64位机器上还可以是8

 

bd/be/bc命令

   bd 断点号 //此命令是关闭断点号所对应的断点 。

   be 断点号 //此命令是开启断点号所对应的断点 。

   bc * 去除所有断点。

 

四、其他命令

x命令

   X命令用来模糊查询。例如可以这样查看SSDT表的地址:

   x nt!kes*des*table*

   0: kd>  x nt!kes*des*table*

   8055d6c0 nt!KeServiceDescriptorTableShadow = <no type information>

   8055d700 nt!KeServiceDescriptorTable = <no type information>

dds命令

   dds 地址 //此命令用来解析某连续地址的函数名。

   0: kd>  dd nt!KeServiceDescriptorTable  L1

   8055d700  80505450 00000000 0000011c 805058c4

   0: kd> dds 80505450 l3

   80505450  805a5614 nt!NtAcceptConnectPort

   80505454  805f1adc nt!NtAccessCheck

    80505458  805f5312 nt!NtAccessCheckAndAuditAlarm 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinDBG 是个非常强大的调试器,它设计了极其丰富的功能来支持各种调试任务,包括用户 态调试、 内核态调试调试转储文件、 远程调试等等。 WinDBG 具有非常大的灵活性和可扩展性, 用来满足各种各样的调试需求,比如用户可以自由定义调试事件的处理方式,编写调试扩展模块 来定制和补充 WinDBG 的调试功能。 尽管 WinDBG 是个典型的窗口程序, 但是它的大多数调试功能还是以手工输入命令的方式来 工作的。目前版本的 WinDBG 共提供了 20 多条标准命令, 140 多条元命令( Meta-commands), 和难以计数的大量扩展命令。学习和灵活使用这些命令是学习 WinDBG 的关键,也是难点。 上一章我们从设计的角度分析了 WinDBG ,本章将从使用(用户)的角度介绍 WinDBG 。我 们先介绍工作空间的概念和用法(第 1 节),然后介绍命令的分类和不同种类的命令提示符(第 2 节)。 第 3 节介绍不同的调试模式, 也就是如何与不同特征的调试目标建立调试会话。 第 4 节介绍 上下文的概念和在调试时应该如何切换和控制上下文。第 5 节介绍调试事件和如何定制调试事件 的处理方式。 从第 6 节到第 9 节我们将分别介绍如何在 WinDBG 中完成典型的调试操作, 比如控 制调试目标(第 6 节)、设置断点(第 7 节)、观察栈(第 8 节)以及如何观察和修改数据(第 9 节)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值