史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 系統 & 硬體安裝及故障判斷技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-29, 08:20 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 如何下記憶體中斷點?(新手看)

如何下記憶體中斷點?(新手看)


1.前言
發現論壇中很多兄弟在詢問:什麼是二次記憶體中斷點,三次記憶體中斷點。還有很多人對記憶體中斷點的原理不是很明白。
其實只要懂得殼是如何解壓代碼的,那麼就完全可以按自己的喜歡來下斷。

本文要解決的問題是:
1.什麼是記憶體中斷點?
2.如何在尋找OEP時使用記憶體中斷點。
3.記憶體中斷點的局限性。

2.記憶體中斷點尋找OEP的原理
i.首先,在OD中記憶體中斷點和普通中斷點(F2下斷)是有本質區別的。
記憶體中斷點等效與命令bpm,他的中斷要用到DR0-DR7的除錯寄存器,也就是說OD通過這些DR0-DR7的除錯寄存器來判斷是否斷下
普通中斷點(F2下斷)等效於bpx,他是在所執行的的代碼的當前的一個字節修改為CC(int3)。當程式執行到int3的時候就會產生一個異常,
接著把這個REGEIP-1,這就正好停在了需要的中斷的地方,同時OD在把上面的int3修改回原來的代碼。

記憶體中斷點分為:記憶體訪問中斷點,記憶體寫入中斷點。
我們知道,在程式執行的時候會有3種基本的狀態產生:讀取,寫入,執行。

004AE242 A1 00104000 mov eax,dword ptr ds:[004AE24C] //004AE24C處的記憶體讀取
004AE247 A3 00104000 mov dword ptr ds:[004AE24C],eax //004AE24C處的記憶體寫入
004AE24C 83C0 01 add eax,1 //004AE24C處的記憶體執行

那麼我們應該如何中斷在上面的幾行呢?
1.當我們對004AE24C下記憶體訪問中斷點的時候,可以中斷在004AE242也可以中斷在004AE247。
2.當我們對004AE24C下記憶體寫入中斷點的時候,只能中斷在004AE247。
3.當我們對004AE24C下記憶體訪問中斷點的時候,能中斷在004AE24C。

到這裡你可能不明白了,為什麼記憶體訪問中斷點能中斷在004AE247這一句對004AE24C的寫入,而且還能中斷在004AE24C的執行呢?

其實很簡單,我們只要仔細體會一下「記憶體訪問」這四個字的含義遍可以知道,當我們對004AE24C進行讀取的時候需要「訪問」他吧,
當我對004AE24C進行寫入的時候也需要「訪問」他吧!!當然我們要執行記憶體地址004AE24C的代碼的時候也是還是要「訪問」他的!

所以我們不難得出下面的結論:
1.記憶體寫入中斷的地方,一定是也可以用記憶體訪問中斷。
2.記憶體執行的地方,也可以用記憶體訪問中斷。
如果這時你認為,那麼記憶體寫入豈不是沒用了。呵呵~那我要告訴你當然不是,
如果你想快速的準確的定位到004AE247這一行的時候,那麼他就大有作用了!

總結一下:記憶體中斷點不修改改原代碼,不會像普通中斷點那樣因為修改代碼被程式校驗而導致中斷失敗;
對於區段的訪問只是區域大了一點,其原理和上面分析的三行代碼是一樣的。

此帖於 2008-08-28 08:32 PM 被 atie 編輯.
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
請問一下記憶體單、雙面 Sting 硬體疑難使用問題討論區 20 2003-12-05 03:45 PM
XP裡的虛擬記憶體如何設定? 小豬喵 軟體應用問題討論區 3 2003-03-14 02:49 PM
如何讓【主記憶體】不會有不足夠的方法呢? uqdo 一般電腦疑難討論區 1 2003-01-23 01:48 AM
Win98系統下如何釋出記憶體 鳥伯 軟體應用問題討論區 8 2003-01-09 05:05 AM


所有時間均為台北時間。現在的時間是 04:28 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1