-中斷點設置
在動態分析時,會搭配中斷點(API或使用到相關字串的地方)來找出關鍵區塊,這樣使工作更有效率。
中斷點又有分為二種,詳細說明如下:
- Softer Breakpoint (INT 3 、0xCC):中斷方式是透過0xCC來標記這裡有中斷點,並且中斷向量是在0x3的位置,因此有些高手會稱(INT 3 或 0xCC 中斷)。下中斷點的方式也很簡單,直接對程式碼按快捷鍵 F2,就能標記中斷點了。
- Hardware Breakpoint (INT 1):中斷方式是透過 CPU 的暫存器 DR0 - DR7,能紀錄中斷點只有 DR0 - DR3 這4個,下中斷點的方式比較特別,能對程式碼區塊和記憶體區塊設置存取 、寫入或執行的中斷點。
-Softer Breakpoint
按下 Ctrl + G 會出現 Enter expression to follow 的視窗,填入想要跳到的位址 (0x401000),然後點選0x401001並且按下 F2 後,就會出現紅色的標記,這就是設置 Softer Breakpoint。
-Hardware Breakpoint
點擊記憶體區塊右鍵 (403000) -> Breakpoint -> Hardware Access -> Dword,就可以設置 Hardware Breakpoint。
點選上方的 Breakpoints 的頁嵌,就可以檢視剛才設定的所有中斷點了。
-經驗分享
通常在追API的參數值,有時會使用 Break Condition ,在設定條件之下才會觸發中斷的事件,這樣也比較好抓參數的值。
-Break Condition
其實它就是在已設定好的 Softer Breakpoint 按下右鍵 -> Edit,然後會跳出 Edit Breakpoint 的視窗,在 Break Condition 的欄位可以設定條件,這樣在追記憶體的資料或暫存器的值就可以很迅速的找出來。