OD教程(基础--断点)
一、斷點(diǎn)
認(rèn)識(shí)OD的兩種斷點(diǎn):
OllyDBG從原理上來(lái)區(qū)分,有兩種不同的斷點(diǎn):軟件斷點(diǎn)和硬件斷點(diǎn)。
也許會(huì)有朋友說(shuō)那不是還有內(nèi)存斷點(diǎn)嗎?
內(nèi)存斷點(diǎn)嚴(yán)格來(lái)說(shuō)是屬于一種特殊的軟件斷點(diǎn)。
內(nèi)存斷點(diǎn):
內(nèi)存斷點(diǎn)每次只能設(shè)置一個(gè),假如你設(shè)置了另一個(gè)內(nèi)存斷點(diǎn),則上一個(gè)會(huì)被自動(dòng)刪除。
設(shè)置一個(gè)內(nèi)存斷點(diǎn),會(huì)改變整塊(4KB)內(nèi)存的屬性,哪怕你只設(shè)置一個(gè)字節(jié)的內(nèi)存斷點(diǎn)。
另外還需要提一下的是,內(nèi)存斷點(diǎn)會(huì)明顯降低OD的性能,因?yàn)镺D經(jīng)常會(huì)校對(duì)內(nèi)存。
軟件斷點(diǎn):
當(dāng)我們按下F2設(shè)置的斷點(diǎn)就是軟件斷點(diǎn)。
設(shè)置該斷點(diǎn)的原理是在斷點(diǎn)處重寫(xiě)代碼,插入一個(gè)int3中斷指令,當(dāng)CPU執(zhí)行到int3指令的時(shí)候,OD就可以獲得控制權(quán)。
硬件斷點(diǎn):
這個(gè)原理跟軟件斷點(diǎn)不同,硬件斷點(diǎn)的可行性依賴(lài)于CPU的物理支持。
傳說(shuō)中,有這么一些寄存器,它們只用于調(diào)試,我們稱(chēng)為調(diào)試寄存器:Dr0~Dr7
其中Dr0~Dr3四個(gè)寄存器用來(lái)存放中斷地址,Dr4、Dr5保留不使用,Dr6、Dr7用來(lái)記錄Dr0~Dr3的屬性(如讀,寫(xiě)還是執(zhí)行,單位是字節(jié),字還是雙字)。
因此,這就解釋了為啥硬件斷點(diǎn)只有四個(gè),天生不足哈。
總結(jié)
以上是生活随笔為你收集整理的OD教程(基础--断点)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Centos中安装svnserver
- 下一篇: 微信小程序开发