静态调试常用命令:
!analyze -V 分析Dump文件
dps 栈中内容
k 显示一定数量的栈帧 如:
kp 5 :显示调用栈中前5个函数以及 他们的参数。
kb 5 :显示调用栈中前5个函数以及他们的前三个参数
kf 5 : 显示在调用栈中五个函数所使用的栈的大小;每个栈帧所占的空间使用量的计算方法是:将当前函数的栈基指针与在函数中调用的任何一个函数栈基指针相减。
dps、dds、dqs :显示给定范围内存的内容,把内存区域转储出来。
dds :四个字节视为一个符号
dqs:8个字节视为一个符号
dps:根据当前架构来选择最合适长度与符号。
U :
U$ip :反汇编当前$ip地址上的8条指令
uf$ip :反汇编$ip之前的8条指令
u$ip $ip+a :反汇编$ip到地址$ip+a之间的指令。(注意:这里包括$ip,但是不包括$ip+a)
ed (esp+8) 0xffffffff : 修改内存中的值
动态调试常用命令:
!address 扩展显示目标进程或目标机使用的内存信息。
!process 0 0 显示进程列表
!process XXX 显示指定进程的所有信息,!process XXX 0 显示指定进程的基本信息
!process 0 0 XXX.exe 查找进程
寄存器操作:
r 显示寄存器内容
r eax 单独只显示eax的值
r@eax=8 将eax寄存器的值设置为8
断点:
bl :列出所有断点
bd : 禁止断点 d 代表Disable 。如 bd 1 禁止断点1
be : 恢复断点 e 代表enable 恢复被禁止的断点 如be 1 恢复1号断点
bc : 清除断点 如 : bc 1 ,清除断点1 ;bc * 清除所有断点。