斷點的本質 INT 3

2022-06-26 22:30:25 字數 357 閱讀 4660

《2》 int 3

int 3 是中斷指令的一種特殊形式,僅有乙個位元組長。

偵錯程式將該指令當作軟體中斷指令來用。除錯的時候,當程式中的某一位置加斷點的時候,偵錯程式會把斷點處指令編碼的第乙個位元組替換為int 3指令的編碼。

當程式執行到int 3,回向偵錯程式申請系統呼叫,偵錯程式因此獲得cpu控制權。之後,再用原先的編碼替換int 3 編碼。

考慮一下偵錯程式是如何設定斷點的。當我們在偵錯程式中對**的某一行設定斷點時,偵錯程式會先把這裡的本來指令的第乙個位元組儲存起來,然後寫入一條int 3指令。因為int 3指令的機器碼為11001100b(0xcc),僅有乙個位元組,所以設定和取消斷點時也只需要儲存和恢復乙個位元組,這是設計這條指令時須考慮好的。

int 3 斷點原理

和大家分享一下自己的想法,錯誤之處請指出,話不多說 學習目的 除錯過程中你能夠靈活的利用斷點,幾乎可以事半功倍,斷點包括 硬體斷點 記憶體斷點,int3斷點.從原理 實踐出發,更好.更深入的了解int3 斷點原理 int3 機器碼為 cc 環境配置 先講筆者現在的電腦環境吧還是 windows7 旗...

ollydbg原理分析 硬體斷點與int3

今天繼續接著上次的分析,來繼續分析od原理,這次先分析od最基本的功能,斷點,單步和執行到指定位置。類似的文章前輩們已經寫了很多了,這裡只是將前輩們的思路實踐了一下,順便加入一點自己的理解和認識!一般載入od之後,往往大家會先下斷點,或者直接單步執行。一般當我們著手分析乙個程式的時候總是會下乙個in...

自己寫的assert巨集,使用int3斷點

ifdef mtk assert define assert p do while 0 else define assert p endif 摘自百科片段 int3斷點是斷點的一種,在諸如ollydbg中的快捷鍵是f2,是一種很常用的斷點型別。int3指令的機器碼為cc,所以通常也稱之為cc指令。當...