windbg 命令 111

控制线程指令

~ 显示当前进程下所有线程

~线程号 n 增加线程的挂起计数

~线程号 m 减少线程的挂起计数

~线程号 F 冻结线程Frozen

~线程号 U       解冻线程UnFrozen

~线程号 g 只恢复指定线程

多进程调试

.attach 进程号 先建立1个回话,然后再附加第2个进程。 例如 .attach 0nX     //(0nX十进制数的表示)

|<进程号> S  切换进程,|为查看当前进程

~<线程号> S  切换线程

堆栈命令堆栈命令都是K开头

k 使用K命令进行栈回溯

kL 和上面一样,只是省略了源代码段 L 一定要大写

kb L 还是回溯,显示前3个参数(只是机械的按ebp+8,ebp+0xC,ebp+0x10取三字值,不判断),L意思和上面一样。

kp;kP 把参数和参数值都以函数原型的格式显示出来。P大写表示参数占用一行。

kv 在kb的基础上增加显示FPO(栈指针省略)

kn 显示序号。

kn f 可以知道相邻栈帧的距离。(也就是看上父函数使用了多少栈空间,适用于检测栈溢出)

观察栈变量

dv 观察栈上的局部变量   dv /i/t/V 表示格式

.frame <栈帧序号> 切换栈帧

du   观察特定值。 例如 du ebp-4

!for_each_local 枚举当前所有的局部变量

!for_each_frame dv  切换到所有栈帧,并显示局部变量

分析内存

d系列命令用来显示指定地址的内存区域

d {a | b | c | d | D | f | p | q | u | w | W} [Options] [Range]

dy {b | d} [Options] [Range]

d [Options] [Range]

//大括号内为显示方式
a ASCII
b 字节和ASCII码
c DWORD和ASCII码
d       表示DWORD

D 双精度浮点数

f   单精度浮点数

p 表示按指针宽度显示

q 4字(8字节)

u UNICODE字符

w 字

W 字和ASCII码

yb 二进制和字节

yd 二进制和双字

Range 指定要显示的内存范围

1. 例如: dd 0012fd9c 0012fda8

    用DWORD表示0012fd9c 到0012fda8之间的内存

2. dd 0012fd9c L4

    用DWORD表示0012fd9c后的4个DWORD

3. dd 0012fda8  L-4

    0012fda8是结束地址,显示在他前面的内存

显示字符串

以0结尾的字符串可以使用

da 适用单字节字符集

du 适用UNICODE字符集

UNICODE_STRING

dt _UNICODE_STRING = dS

ds   显示(STRING)

显示数据类型

dt 按指定数据类型来显示内存中的数据

dt  [模块名!] 类型名

* 类型名可以用通配符

-b 递归显示所有子类型

-r 指定显示深度 -r0 不显示子类型 -r1显示1级子类型

-ny  附加搜索选项,显示某些字段

枚举函数符号

dt dbgee!*wmain*

搜索内存 s命令

搜索字符串 ASCII 和 UNICODE

s -[[Flags]] sa | su Range

s -[[Flags]] v Range Object

搜索指定范围内的指定内容

s [-[[Flags]] Type] Range Pattern

type用来指定要搜索内容的数据类型(宽度)

b 字节

w 字

d 双字

q 4字

a ASCII

u UNICODE

pattern 指定的搜索内容,可以多个

例:

s -w 0x400000 12a000 4164 76 44 62 67

s -w 0x400000 12a000 'A' 'd'

可以借助 !for_each_module 子当前进程中所有模块中进行搜索

!for_each_module s -a @#Base @#End "Debugger"

修改内存 e命令

e {a | u | za | zu} Address "String"

Address   要修改内存的起始地址

za 以0结尾的ASCII

zu 以0结尾的UNICODE

e{ b | d | D | f | p | q | w } Address [Values]

values 修改成多首

ew 12fc94 41 41 41 41 41

修改12fc94 后的5个word为41

修改物理内存地址 只有内核模式有效

!d {b | c | d | p | u | w}

!e {b | d}

观察内存属性

!address [Address] 显示某一个内存地址的特征信息

!process 0 0   显示所有进程

!PROCESS XXXXXXX 2 2代表只显示线程的状态信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值