條件中斷的語法
-EAX == 0x1 : 只要EAX = 0x1 ,就會被斷下,否則就繼續執行。-[EAX] == 0x1 : EAX要是一個位址,這個位址裡面存放的值 (4 bytes),要等於0x1才會被斷下。
-byte:[EAX] == 0x1 : EAX要是一個位址,這個位址裡面存放的值 (1 bytes),要等於0x1才會被斷下。
-word:[EAX] == 0x1 : EAX要是一個位址,這個位址裡面存放的值 (2 bytes),要等於0x1才會被斷下。
-qword:[EAX] == 0x1 : EAX要是一個位址,這個位址裡面存放的值 (8 bytes),要等於0x1才會被斷下。
實作
在設置條件中斷 前,要先在要設定的位址 (0x40150E)按F2 (中斷點),然後再按右鍵,選擇Breakpoint -> Edit。跳出編輯的視窗後,可以在Break Condition這個欄位填入想要設置的條件,最後再按Save,就設置成功了。
設置word:[EAX] 範例
跟前面的步驟都一樣,不過語法需要修改word:[EDI] == 0x3A43,EDI (0xCB21F0)必須是一個有效位址,如果不是,條件中斷就沒有效用了,每次執行到這裡,就會跟一般的中斷點一樣被斷下。最後提醒一下,word是指0xCB21F0的前2 bytes (0x3A43)。