1. 程式人生 > >OD使用教程7(下)- 除錯篇07

OD使用教程7(下)- 除錯篇07

認識OD的兩種斷點

OllyDBG從原理上來區分,有兩種不同的斷點:軟體斷點和硬體斷點。

也許會有朋友說那不是還有記憶體斷點嗎?

記憶體斷點嚴格來說是屬於一種特殊的軟體斷點。

記憶體斷點:

記憶體斷點每次只能設定一個,假如你設定了另一個記憶體斷點,則上一個會被自動刪除。

設定一個記憶體斷點,會改變整塊(4KB)記憶體的屬性,哪怕你只設置一個位元組的記憶體斷點。

另外還需要提一下的是,記憶體斷點會明顯降低OD的效能,因為OD經常會校對記憶體。

軟體斷點:

當我們按下F2設定的斷點就是軟體斷點。

設定該斷點的原理是在斷點處重寫程式碼,插入一個int3中斷指令,當CPU執行到int3指令的時候,OD就可以獲得控制權。

硬體斷點:

這個原理跟軟體斷點不同,硬體斷點的可行性依賴於CPU的物理支援。

傳說中,有這麼一些暫存器,它們只用於除錯,我們稱為除錯暫存器:Dr0~Dr7

其中Dr0~Dr3四個暫存器用來存放中斷地址,Dr4、Dr5保留不使用,Dr6、Dr7用來記錄Dr0~Dr3的屬性(如讀,寫還是執行,單位是位元組,字還是雙字)。

因此,這就解釋了為啥硬體斷點只有四個,天生不足哈。

那麼聰明的魚油肯定會追問:小甲魚老溼,那我要如何來區分何時使用何種斷點呢?

這兩種斷點在使用上都有它們自身的限制,只要搞清楚它們各自的特性就知道何時該用哪個了。

例如軟體斷點就只能在OD的CPU介面下,在資料段它下不了,在一條指令的中間它也下不了。

在我們這個例子中,斷點我們想下在windows的動態連結庫裡,我們需要用到硬體斷點,因為用軟體斷點下在dll檔案中是不會儲存的,重啟程式後將丟失斷點。

相關推薦

OD使用教程7- 除錯07

認識OD的兩種斷點 OllyDBG從原理上來區分,有兩種不同的斷點:軟體斷點和硬體斷點。 也許會有朋友說那不是還有記憶體斷點嗎? 記憶體斷點嚴格來說是屬於一種特殊的軟體斷點。 記憶體斷點: 記憶體斷點每次只能設定一個,假如你設定了另一個記憶體斷點,則上

【視訊分享】尚矽谷Java視訊教程_Spring Boot視訊教程整合

SpringBoot是企業級開發的整體整合解決方案,特別用於快速構建微服務應用,旨在用簡單的方式讓開發人員適應各種開發場景; SpringBoot全套視訊分為上下兩部; 本視訊《SpringBoot高階》屬於下部,著重介紹SpringBoot的與各大場景的整

Weex學習之路除錯

寫在前面:作為前端開發工作者,一款好的除錯工具必不可缺。你可能已經習慣了chorme提供的簡單好用的網頁除錯工具,但在weex中,除錯是一個巨坑!! Weex除錯踩坑之旅 在weex中,除錯是一件非常麻煩但事,好在weex官方文件中提供了一些方案 1. weex-toolkit命

php綜合複習題大全——提升

1)__autoload() :當程式例項化某個類,而該類沒有在當前檔案中被引入。此時會觸發執行__autoload()。程式希望通過該方法,自動引入這個類檔案。該方法有一個引數,即就是那個忘記引入的類的名稱。__autoload()方法的工作原理是什麼?當程式執行到例項化某個類的時候,如果在例項化前沒有引入

肖星老師《一本書讀懂財報》經典語句摘錄實戰

1.都有哪些財務分析的方法呢?同型分析恐怕是最常用的。這是一種結構分析。各個專案在利潤表中分別佔比多少就是利潤表的結構;從收入到利潤的過程中,每一個步驟都損耗了多少,這就是對利潤表進行同型分析的成果。對資產負債表,同樣可以做這樣一個分析。資產負債表詳細列明瞭各個專案在企業資金總量中所佔的比重,這就是資產負債表

病毒分析教程第五話--動態除錯分析

動態除錯分析(下) Lab 9-3 本節實驗使用樣本Lab09-03.exe、DLL1.dll、DLL2.dll、DLL3.dll。 Lab09-03.exe匯入了哪些DLL? 我們用OD開啟函式呼叫,發現Lab09-03.exe顯性地匯入了DLL1和DL

Charles(最強大的http除錯工具)詳細教程

上半部分講解了Charles最常用功能代理的使用,下半部分繼續演示Charles的特色有趣的功能。 網速模擬功能 throttle功能對於前端來說非常實用,可以看頁面在低網速下的表現,從而找出優化的點。 在線上環境通常有些因為網速慢導致的bug,在本機無法重現,那時候就很抓瞎,如果嫌遠端麻煩,推薦使

WEB開發7 Hibernate HQL語言

HQL查詢語言 Hibernate查詢語言為Hibernate Query Language。 HQL概述 -

Django中級

dump signal nec 檢測 == csr providing https messages 中間件 django 中的中間件(middleware),在django中,中間件其實就是一個類,在請求到來和結束後,django會根據自己的規則在合適的時機執行中間件中相

安全類工具制作第005:進程管理器

btn creat lan 控件 lookup 包括 lln create tdi 一、前言 這次的程序是為了完好上一次所編寫的進程管理器。使得當我們選中某一個進程的時候。能夠查看其DLL文件,而且能夠對可疑的模塊進行卸載操作。這樣就能夠有效對抗DLL的

7-感覺身體被掏空,但還是要學Pandas

裏的 toe 時間序列 enc 分組 文件 mod 期待 都是 本周群主用了兩天時間為浙師大的《旅遊大數據分析師——Pandas數據清洗》課程備課,和Pandas來了一次深度親密接觸。現在做夢都是DataFrame變形:stack,unstack,pivot table

跟我學設計模式視頻教程——管擦者模式,責任鏈模式

tar eight color font content 設計模式 name -m ack 課程視頻 觀察者模式(下) 責任鏈模式(上) 課程筆記 課程筆記 課程代碼 課程代碼 新課程火熱報名中 課程介紹

shell第四

中文 key 文本 什麽 例子 理念 通用 close 其它 摘自王垠的:Unix的缺陷   我想通過這篇文章解釋一下我對 Unix 哲學本質的理解。我雖然指出 Unix 的一個設計問題,但目的並不是打擊人們對 Unix 的興趣。雖然 Unix 在基礎概念上有一個挺嚴重的問

[CentOS 7系列]用戶與用戶組

linux 上一帖提到用戶與用戶組的創建,在創建的過程中,我們可以搭配很多參數,用來設置用戶賬戶的一些設置與屬性。但很多時候,我們的用戶賬戶是已經在業務中使用的。不可能去刪除用戶後重新添加。這時,就需要去直接調整已有用戶的賬戶屬性了。 在這種場景中,我們有兩種解決的方式。第一種就是改配置文件。li

[CentOS 7系列]壓縮與打包

linux windows 壓縮文件 壓縮包 除了gzip、bzip2和xz外,linux中還有一款壓縮軟件。它支持壓縮目錄,也可以解壓windows中同類型的文件。它就是我們熟悉的zip。1、zip命 令作 用zip 1.txt.zip 1.txt壓縮zip -r 123.zip

[CentOS 7系列]監控系統狀態

監控1、iostat/iotop 磁盤使用[[email protected]/* */ ~]# iostat ##靜態顯示 Linux 3.10.0-514.el7.x86_64 (server01) 2017年07月11日 _x86_64_ (1 CPU) avg-c

第七章 : Git 介紹 [Learn Android Studio 漢化教程]

features 發布 double to do oda 日誌功能 測試 相關 rds Learn Android Studio 漢化教程 Let’s reset even further to remove all traces of your work on

Vue2.0史上最全入坑教程—— 實戰案例

多少 跳轉 border src fff end har second vue 前言:經過前兩節的學習,我們已經可以創建一個vue工程了。下面我們將一起來學習制作一個簡單的實戰案例。 說明:默認我們已經用vue-cli(vue腳手架或稱前端自動化構建工具)創建好項目了 一

Exchange 2016部署實施案例-03.Exchange部署

Exchange 2016部署 Exchange 2016先決條件 Exchange全新部署OWA無法打開 Exchange證書 無人值守 昨天我們一起準備完成了Exchange Server 2016的先決條件,今天我們一起來看下如何部署Exchange Server 2016.    

Git學習0基礎

擴展 創建 不同 sheet id_rsa con 簡單 托管 讀取數據 server上的 Git - 協議 Git能夠使用四種基本的協議傳輸資料:本地協議(Loc