來自:
記憶體斷點原理:od會對所設定位址設定為不可訪問或者不可寫屬性,這樣擋程式試圖訪問或者寫入時就會產生異常,od在截獲這種異常後比較位址是否是設定的斷點位址,這種
方式會對程式的執行速度有很大的影響,所以只允許設定乙個記憶體斷點,但是在找到記憶體斷點後可以使用一般的斷點(這個是可以設定無數個的)進行除錯。
記憶體斷點一般用在跟蹤關鍵資料的斷點,根據這個特點在破解跟蹤時只要在關鍵資料記憶體當中下斷點,就可以知道程式在什麼地方和什麼時候用到了跟蹤的資料,對於一些複雜的
演算法和流程**的演算法跟蹤有很大的幫助,從破解上講,乙個註冊碼的生成一定是有一些關鍵資料或者原始計算得來的,所以得出演算法流程上來說,記憶體斷點是最好的,但是這種
斷點,在程式重新執行時便不復存在,這是不用於一般斷點的地方。
(記憶體寫入)斷點是程式執行時,想被選擇的記憶體位址寫入資料時就會被od中斷,根據這個特點在破解時,可以跟蹤乙個關鍵資料是在什麼時候生成的,生成的**段在哪個地
方,所以乙個關鍵資料如果不知道它的由來就可以用記憶體寫入斷點查詢計算的核心。
好了,現在舉個例子吧:
我有一段程式,我的另一篇部落格,我已經破解了,密碼是"123456",在此舉例說明記憶體斷點用法,在od開啟後使用alt+m快捷鍵,開啟crackme的.rdata執行時唯讀資料,按下
ctrl+b或者右擊->search for->bianry string,查詢123456所在記憶體,選中資料,再右擊->breakpoint->memory on access,即可,這樣記憶體斷點便設定成功了,可以看下演算法流程
OD硬體斷點,OD記憶體斷點,API斷點
一.設定硬體寫入斷點 9 i0 b m a8 8 w8 u f q q r w0 s,k9 h s.2 l w1 d8 r8 j a 0 v4 o r q at r p a l y h 在指定位址進行反 彙編 g m d q e d b,a l x x 7 l h.r d t8 k1 4 follo...
OD筆記2 記憶體斷點與硬體斷點
精闢解釋 來自看雪論壇 記憶體訪問斷點是利用 virtualprotect 來把該記憶體位址所在的記憶體頁 大小為4096位元組 設定為不可讀 不可寫 不可執行 所以當訪問該記憶體的時候會產生乙個訪問異常 從而在異常處理函式中實現記憶體訪問斷點的操作 硬體斷點是利用 cpu自帶的除錯暫存器 dr 產...
OD的 CC斷點,記憶體訪問斷點,硬體斷點 解析
1.f2斷點,api斷點 1 本質cc斷點 2 以api斷點為例 x getprocaddress 獲得函式首 位址 vitualprotectex 修改函式首位址許可權為 可寫 x 0xcc 修改了記憶體資料為0xc 2.分頁保護斷電 1 記憶體訪問點 or 記憶體寫入斷點 其實是設定記憶體禁止訪...