1. 程式人生 > >Windbg條件斷點指令

Windbg條件斷點指令

命令如下:

bp kernel32!CreateFileW "as /mu $FileName poi(@esp+0x4);.block{r @$t0=$scmp(@\"$FileName\", @\"C:\\Test\\1.txt\");.if([email protected]$t0){gc;}}"

 

1. as /mu $FileName poi(@esp+0x4);             

取CreateFileW的第一個引數,作為別名 $FileName

2. r @$t0=$scmp(@\"$FileName\", @\"C:\\Test\\1.txt\");                 

把檔名與字串 "C:\\Test\\1.txt"對比,結果存放在$t0暫存器

3. .if([email protected]$t0){gc;}    

比對結果不為0,gc繼續執行;即字串相同break

 

使用時須注意以下幾點:

1.必須在使用別名前,先用ad命令把別名刪除掉(否則斷點會失敗,ad用法與bd,bc等相同),al命令檢視所有別名。

2.必須使用block語句塊,否則斷點無效。
3.scmp/sicmp/spat進行字串比較,scmp大小寫敏感;sicmp不區分大小寫;spat模糊匹配,用*代替模糊片語。

4.poi(address) 取值,此斷點僅用於x86環境,x64環境改  poi(@esp+0x4) 為 poi(@rcx) ,代表一個引數pFilePath。