斷點介紹:
shark恆老師說有四種說法,但是其實都是相同的
第乙個讀法:普通斷點
第二個讀法:f2斷點
第三個讀法:int3斷點( int3其實就是彙編指令 )
第四個讀法:cc斷點 (cc其實就是斷點時候的十六進製制的資料)
斷點的實現:
1、載入od找到以下位址進行斷點,然後進行執行,發現執行到了該位址
那麼斷點是如何實現的呢?自己根據shark恆老師講的複述一遍
其實十六進製制會發生改變的,我們自己把這個斷點的位址的中的hex資料放在eax暫存器中進行觀察
首先觀察到0040101a位址中的資料為74 01
然後我們在下面隨機挑選乙個位址 進行反彙編指令為mov eax,dword ptr ds:[0x40101a]
,然後單步步過,發現eax中的資料為a1c301cc,如下
重點觀察後面01cc,發現je跳轉的hex 74 變成了 cc ,然後就會出現異常,接著od就會進行異常的捕獲最後完成了斷點的實現
cc和int3的關係
其實都是一樣 一張圖就可以明白了
bp messageboxa 和 bpx messageboxa之間的區別
都是od中的快捷鍵進行斷點,但是是有區別的
bp messageboxa
的斷點設定是斷在user32.dll動態鏈結庫模組領空中的首位址
bpx messageboxa
的斷點設定是斷在當前程式領空中的所有呼叫messageboxa windows api函式的call
然後我們進行反彙編跟隨看看,可以看到都是在當前程式下call地方處下的斷點
OD的 CC斷點,記憶體訪問斷點,硬體斷點 解析
1.f2斷點,api斷點 1 本質cc斷點 2 以api斷點為例 x getprocaddress 獲得函式首 位址 vitualprotectex 修改函式首位址許可權為 可寫 x 0xcc 修改了記憶體資料為0xc 2.分頁保護斷電 1 記憶體訪問點 or 記憶體寫入斷點 其實是設定記憶體禁止訪...
學習 API斷點
api斷點 自己理解的,乙個程式呼叫相應的windows api函式,類似獲取文字,彈窗之類的都是使用了windows api函式,同樣這些是利用了dll來進行呼叫的,那麼我們就可以在相應的呼叫地方的首位址進行下斷點,從而讓od捕獲到異常 完成斷點操作 之前自己記錄過利用api斷點的方法,所以寫這篇...
學習 硬體斷點
硬體斷點 指由硬體提供給我們的除錯暫存器組,我們可以對這些硬體暫存器設定相應的值,然後讓硬體幫我們斷在需要下斷點的位址。硬體斷點是cpu提供的功能,所以要怎麼做就得聽cpu的硬體暫存器的了。硬體斷點的實現 載入od,找到一處位址的反彙編指令如下,這條指令是把0x4003值賦給0x402064位址中的...