學習 硬體斷點

2022-03-14 00:07:30 字數 566 閱讀 7196

硬體斷點:指由硬體提供給我們的除錯暫存器組,我們可以對這些硬體暫存器設定相應的值,然後讓硬體幫我們斷在需要下斷點的位址。硬體斷點是cpu提供的功能,所以要怎麼做就得聽cpu的硬體暫存器的了。

硬體斷點的實現:

載入od,找到一處位址的反彙編指令如下,這條指令是把0x4003值賦給0x402064位址中的值,那麼可以知道是進行了寫入的操作,那麼給0x402064中內容進行硬體斷點

0040101d mov dword ptr ds:[0x402064],0x4003

然後執行程式,發現程式成功被下斷點,這裡需要注意的是,我們明明是給上面下的斷點,但是來到了下面位址,所以這個地方是需要注意的,硬體斷點就是會來到下面這個位址,跟cc斷點和記憶體斷點不一樣

第二個需要注意的是,硬體斷點下了之後,od其實就是捕獲對這個位址進行操作的位址,所以我們在下面的位址的反組合語言也可以寫相同的,只要對這個0x402064進行訪問了,都會被斷點,比如如下

然後我們進行執行f9,發現成功來到當前被斷點的地方

硬體斷點和軟體斷點

硬體斷點和軟體斷點 在嵌入式開發 經常用到 jtag 器。jtag 器可以滿足嵌入式程式除錯的基本要求 斷點設定 單步除錯 記憶體編輯 變數 暫存器觀測等。而斷點設定是 jtag 器最基本的除錯功能。使用者需要系統在設定斷點處停下來後再進行除錯。斷點根據原理和用途不同又分為幾個不同的種類。斷點可分為...

記憶體斷點和硬體斷點

32位邏輯位址 16位段選擇器 偏移位址 16位段選擇器 13位全域性描述符表 區域性描述符表索引 1位gdt ldtflag 2位的訪問控制許可權 由16位得到段選擇器索引到全域性描述符表得到64位的段描述符,段描述符中包含了線性段基址 線性段基址 偏移位址 邏輯位址後半段 得到線性位址空間的乙個...

硬體斷點原理

這些就是除錯暫存器組,dr0 dr7。dr0,dr1,dr2,dr3是用於設定硬體斷點的,由於只有4個硬體斷點暫存器,所以同時最多只能設定4個硬體斷點。產生的異常是status single step 單步異常 dr4,dr5是系統保留的。dr7是一些控制位,用於控制斷點的方式,dr6是用於顯示哪個...