windbg命令集合
調試會話
.create :創建新的進程并調試 例子 .create notepad.exe
.attach:附加到指定進程???????? 例子 .attach 2568
.restart:讓調試目標重新運行 例子 .restart 或者.restart /f
.crash:強制目標系統崩潰(內核態) 例子 .crash
.reboot:重啟目標系統(內核態) 例子?.reboot
.detach:分離調試目標 例子?.detach
q:終止調試 例子 q
模塊和符號
.symfix:設置符號服務器 例子?.symfix c:\symbols
.reload:刷新模塊和符號 例子 .reload 或者.reload /f
ld:加載符號文件 例子 ld kernel32
.sympath:顯示或者設置符號路徑 例子 .sympath 或者.sympath+d:\sym\
!sym:顯示符號選項 例子 !sym noisy 或者!sym quiet
x:顯示符號? 例子 x?VAXPlayer!* 顯示vaxplayer庫中所有的符號
ln:搜索符號 例子 ln aebc6eac(可以查找符號來對應動態庫)
lm:列模塊或顯示模塊詳情 例子 lm (可以查看對應的pdb文件)? lmf(可以查看程序運行的時候對于的dll信息)
!lmi :模塊或pdb文件詳情 例子 !lmi ntdll
!dlls:動態庫信息? 例子 !dlls -a
!dh:觀察PE文件頭? 例子 !dh 76930000 -a
轉儲文件
.dump :產生轉儲文件? 例子 .dump /mfh c:\a.dmp
!analyze:自動分析? 例子 !analyze -v
.writemem:將內存數據寫到文件 例子 .writemen c:\dump\test.txt 07288600 L2000
進程
|:顯示或切換進程(用戶態)? 例子 |* 或者|2s
!process:顯示進程 例子 !process 0 0
!dml_proc:觀察進程信息 例子 !dml_proc $$以DML方式顯示進程信息
.process:顯示或切換進程(內核態) 例子 .process /i 9382a560
.kill:殺進程? 例子 .kill 8adc85f0
!peb:觀察進程信息? 例子 !peb
dt:觀察數據結構 例子 dt ntdll!_PEB@$peb -r
.tlist:列進程? 例子 .tlist 列出調試器所在系統的所有進程
線程
~:顯示/切換線程 例子 ~*顯示所有線程 ~2s切換到2號線程
!teb:顯示線程塊? 例子 !teb
.thread: 顯示或切換線程(內核態) 例子 .thread 80551d20 或.thread /p 8747da8
!thread:觀察線程(內核態)? 例子!thread
!wow64exts.info:運行在64bit系統的32bit線程信息 例子 !wow64exts.info
!wow64exts.sw:32bit和64bit調試器切換 例子 !wow64exts.sw
內存
!address:觀察內存空間 例子 !address
!address:觀察內存塊屬性 例子 !address 0728988a
d:顯示內存數據? 例子 db e2001744
dt:按類型顯示內存數據? 例子 dt _GUID 014511471
e:編輯內存數據 例子 eb 00175487 ff
!dd:讀取物理地址? 例子 !dd fffffff0
!ed:寫物理地址? 例子 !ed fffffff0 8000
!vtop:虛擬地址轉換為物理地址? 例子 !vtop 0 badfde064
!pte:顯示頁表項? 例子 !pte f6551410
!memusage:顯示物理內存使用情況 例子 !memusage
!pool:顯示內核池信息? 例子 !pool e326c000
!vad:觀察進程的地址空間 例子 !vad 8a761451
!sdbgext.hwnd:觀察窗口句柄? 例子 !sbdgext.hwnd 001506c1
堆
!heap:顯示堆信息? 例子 !heap? 01671010? -a
棧
k:函數調用序列? 例子 ~*kbn
.frame :切換當前棧幀 例子 .frame 2
dds:顯示數據和符號? 例子 dds 80418424
dv:顯示局部變量 例子? dt
寄存器
r:讀寫寄存器? 例子? r cr3
rdmsr:讀取MSR寄存器? 例子 rdmsr 19c
上下文
.ecxr:切換到異常上下文? 例子 .ecxr
.tss:切換到指定TSS 例子 .tss 28
.trap:切換到陷阱棧? 例子 .trap 80541471
.effmach:切換32和64bit上下文? 例子 .effmach X86
斷點
bp:軟件斷點? 例子? bp test!test.cpp:65
ba:硬件斷點? 例子 ba w4 00006484
bm:成批設置斷點? 例子 bm /a nt!Dbgk*
bd/be/bc/dl:管理斷點
執行和跟蹤
g:恢復執行? 例子 g
p:單步執行? 例子 p
t:單步跟蹤? 例子 t
wt:自動跟蹤 例子 wt -l 3
反匯編
u:反匯編? 例子 u nt!PsGetcutrentID
uf:反匯編整個函數? 例子 uf RtlLeaveCriticalSection
ub:反向反匯編? 例子 ub 14785214
a :匯編?? 例子? a<地址>
死鎖
!locks:掃描關鍵區(用戶態)或ERESOURCE(內核態)? 例子 !locks
!cs:觀察關鍵區? 例子 !cs -l
!alpc:觀察ALPC端口? 例子?? !alpc /m 02145895
處理器
!pcr:管理處理器控制區? 例子 !pcr
dg:觀察段描述符? 例子 dg @fs
!cpuid:顯示CPU型號? 例子 !cpuid
!cpuinfo:顯示cpu屬性(內核態)? 例子 !cpuinfo
!irql:顯示保存的IRQL
??
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的windbg命令集合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [2017-2018上 网络工程] 面向
- 下一篇: js替换iframe的内容