2017年12月11日 星期一

x64dbg - 中斷點設置

-中斷點設置

在動態分析時,會搭配中斷點(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。

C:\Users\Sin\AppData\Local\Temp\Image.png

-Hardware Breakpoint

點擊記憶體區塊右鍵 (403000) -> Breakpoint -> Hardware Access -> Dword,就可以設置 Hardware Breakpoint。

C:\Users\Sin\AppData\Local\Temp\Image.png

點選上方的 Breakpoints 的頁嵌,就可以檢視剛才設定的所有中斷點了。

C:\Users\Sin\AppData\Local\Temp\Image.png

-經驗分享

通常在追API的參數值,有時會使用 Break Condition ,在設定條件之下才會觸發中斷的事件,這樣也比較好抓參數的值。

-Break Condition

其實它就是在已設定好的 Softer Breakpoint 按下右鍵 -> Edit,然後會跳出 Edit Breakpoint 的視窗,在 Break Condition 的欄位可以設定條件,這樣在追記憶體的資料或暫存器的值就可以很迅速的找出來。

C:\Users\Sin\AppData\Local\Temp\Image.png