Windbg学习笔记(1)
O、注意事项
书写Windbg命令行需遵循的通用语法规则
rule NO.1:命令和参数不区分大小写(除非特定指出)。
rule NO.2:参数可用空格或者逗号分隔。
rule NO.3:命令和首个参数间空格通常可省略。其它空格只要不导致曲解也可省略。
Windbg帮助档阅读须知
rule NO.1:粗体字须照抄。
rule NO.2:斜体字会在Parameters部分解释。
rule NO.3:[]内为可选参数。[ xxx | yyy ]最多可选其中一个参数。
rule NO.4:{ xxx | yyy }必须使用其中一个参数。
一、
设定环境变量
_NT_SYMBOL_PATH
D:\Doc\vsPmhSymbols;J:\Symbols;srv*D:\Doc\vs2012Symbolsvr*http://msdl.microsoft.com/download/symbols
系统符号文件安装在J:\Symbols,自己程序pdb放在D:\Doc\vsPmhSymbols,最后一处srv*D:\Doc\vs2012Symbolsvr*http://msdl.microsoft.com/download/symbols
二、命令
vertarget
.cls<clear screen>
ENTER<repeat last command>
s (Search Memory)<job done>
k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace) <job done>
bp, bu, bm (Set Breakpoint) <next job>
dt (Display Type)<next job>
r(registers)
!address
g
lm(list loaded modules)
!sym noisy<controls noisy symbol loading and symbol prompts>
.reload /f ntdll.dll
dds(diplay wods and symbols)
d(Display Memory)
ed(Enter Values)
ctrl+break<中断程序执行>
x(examine symbols)
u
.frame(set local context)
每个命令都有大篇的说明和实例,得慢慢来。
三、演练:修改NFSHP2金钱
1、启动NFSHP2
2、Windbg F6 attach process
3、s 00040000 L?80000000 48 65 18 00
从64K处开始搜索存储器,L?80000000同L80000000,?可以移除调试器范围限制,突破默认的256MB搜索范围。
48 65 18 00是当前金钱数目--X86机器采用小端法,s默认搜索类型为byte
可能产生多个搜索结果
4、再次搜索
5、ed 00311423 22223333