windbg常用命令
0x00基础命令
.sympath //显示设置的符号表路径
.reload //此命令主要用于加载符号表。 .reload /f //重新装载模块
.reload /i //强制加载mismatched symbol
U //这个命令主要用于反汇编某个地址,其后面可以跟函数名和地址。
//U命令后面可以加L表示延长反汇编长度
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
//同样可以用eb/ew命令改回来
0x01对象相关命令
dt //dt命令主要用于查看结构体。
lm lm //列出模块。 lm vm 模块名 //查看模块详细信息。
!process !process 0 0 //列出系统进程信息 !process 0 0 进程名 //列出该进程的信息 !process 0 1 进程名 //列出该进程更加的信息 !process 0 7 进程名 //列出该进程的详细信息,包括线程的
.process .process EPROCESS //切入该进程中
!object !object 地址 //显示该地址的对象信息。
0x02断点命令
bp/ba bp命令是通过向指定地址插入int 3 指令来完成的,这种方式容易被发现。 bp address //在地址address插入断点。 ba命令是是硬件断点命令,通过设置cpu的dx寄存器来拦截线程。 ba access size 地址 //access 是访问的方式,比如 e (执行),r (读/写),w (写) ,size是监控访问的位置 的大小,以字节为单位。值 为 1、2或4,在64位机器上还可以是8。 bd/be/bc bd 断点号 //此命令是关闭断点号所对应的断点 。 be 断点号 //此命令是开启断点号所对应的断点 。 bc * //去除所有断点。
//关闭0号断点
//开启0号断点
0x03其他命令
x //x命令用来模糊查询。例如可以这样查看SSDT表的地址: x nt!kes*des*table*
dds dds 地址 //此命令用来解析某连续地址的函数名。