windbg常用命令

2021-07-05 04:02:34 字數 1747 閱讀 1407

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常用命令

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

windbg常用命令

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