windbg常用命令

2021-06-18 06:21:32 字數 1747 閱讀 4198

2.斷點

斷點之於除錯當然是非常重要的

常用命令:

bp [address]or[symbol] 在指定位址下斷

可以使用位址或符號,如

bp 80561259(windbg預設使用16進製制)

bp mydriver!getkernelpath

bp mydriver!getkernelpath+0x12

bp [address] /p eprocess 僅當當前程序為eprocess時才中斷

這個很常用,比如你bp nt!ntterminateprocess,但是只想在某一程序觸發此斷點時才斷下來,那就加上這個引數吧,因為核心中的**是各個程序共用的,所以此命令很實用

bp [address] /t ethread 僅當當前執行緒為ethread時才中斷,用法跟/p引數類似

bu [address]or[symbol] 下乙個未解析的斷點(就是說這個斷點需要延遲解析)

這個也很常用,比如我們的驅動名為mydriver.sys,那麼在驅動載入之前下斷bu mydriver!driverentry,

然後載入這個驅動時就可以斷在驅動入口,並且這個是不需要除錯符號支援的

bl 列出所有斷點,l=list

bc[id] 清除斷點,c=clear,id是bl檢視時的斷點編號

bd[id] 禁用斷點,d=disable,id即斷點編號

be[id] 啟用斷點,e=enable,id為斷點編號

3.檢視和修改資料

除錯中不可避免的要檢視和修改資料

檢視記憶體:

db/dw/dd/dq [address]       位元組/字/雙字/四字方式檢視資料

da/du [address]           ascii字串/unicode字串方式檢視指定位址

其它常用的如檢視結構

dt nt!_eprocess

dt nt!_eprocess 89330da0 (把0x89330da0作為物件指標)

修改記憶體:

eb/ew/ed/eq/ef/ep address [values] 

位元組/字/雙字/四字/浮點數/指標/

ea/eu/eza/ezu address [values] 

ascii字串/unicode字串/以null結尾的ascii字串/以null結尾的unicode字串

搜尋記憶體:

s -[b/w/d/q/a/u] range target

搜尋位元組/字/雙字/四字/ascii字串/unicode字串

4.暫存器

在用windbg除錯時可以alt+4直接調出暫存器視窗,然後拖放到合適的位置就可以。

要修改呢就直接雙擊相應的項就可以了。

把命令的方式也說一下,比較簡單:

r 顯示所有暫存器的值

r eax 顯示eax的值

r eax=1 修改eax的值為1

5.輔助命令

!process 顯示當前程序資訊

!process 0 0 顯示當前所有程序(會有殭屍程序)

!process 1f4 顯示pid為1f4的程序資訊,後面也可以跟eprocess的值

!thread 顯示當前執行緒資訊

!thread 

!process 1f4 顯示tid為768的執行緒資訊,後面也可以跟ethread的值

棧相關:

k 顯示呼叫棧

kb 顯示ebp和前3個引數

kp 以函式呼叫形式顯示棧

以上就是常用的命令了~~~

Windbg常用命令

在windbg的命令列視窗輸入 則會輸出幫助選單,在這個menu中會顯示一些常用的命令 1 斷點指令 b c d e clear disable enable breakpoints bl list breakpoints bp set soft breakpoints ba break on ac...

windbg常用命令

1.檢視執行緒 ring3 顯示當前執行緒.顯示所有執行緒 顯示異常執行緒 2 選擇2號執行緒 1 kb 顯示1號執行緒棧資訊 2.斷點 bp addr module fun 支援位址和模組斷點 bp p proc 程序斷點 bp t thread 執行緒斷點 bu module fun 模組斷點 ...

windbg常用命令

2.斷點 斷點之於除錯當然是非常重要的 常用命令 bp address or symbol 在指定位址下斷 可以使用位址或符號,如 bp 80561259 windbg預設使用16進製制 bp mydriver getkernelpath bp mydriver getkernelpath 0x12...