成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網(wǎng)絡(luò)安全編程:逆向調(diào)試分析工具之OllyDbg

安全
在逆向分析中,調(diào)試工具可以說(shuō)是非常重要的。調(diào)試器能夠跟蹤一個(gè)進(jìn)程的運(yùn)行時(shí)狀態(tài),在逆向中稱為動(dòng)態(tài)分析工具。本文介紹應(yīng)用層下最流行的調(diào)試工具OllyDbg。

[[390675]]

 在逆向分析中,調(diào)試工具可以說(shuō)是非常重要的。調(diào)試器能夠跟蹤一個(gè)進(jìn)程的運(yùn)行時(shí)狀態(tài),在逆向中稱為動(dòng)態(tài)分析工具。動(dòng)態(tài)調(diào)試會(huì)用在很多方面,比如漏洞的挖掘、游戲外掛的分析、軟件加密解密等方面。本文介紹應(yīng)用層下最流行的調(diào)試工具OllyDbg。

OllyDbg縮寫(xiě)為OD,是由一款具有可視化界面的運(yùn)行在應(yīng)用層(或者R3)的一款32位的反匯編逆向調(diào)試分析工具。OD是所有做逆向分析者都離不開(kāi)的工具。它的流行,究其原因,是操作簡(jiǎn)單、參考文檔相當(dāng)豐富、支持插件功能。

1. OD的版本

OD的主流版本是1.10,但是它存在很多修改版。OD 雖然是動(dòng)態(tài)調(diào)試工具,但是由于其強(qiáng)大的功能經(jīng)常被很多人用在軟件破解等方面,很多軟件作者的心血被付諸東流。軟件的作者為了防止軟件被OD調(diào)試,加入了很多防止OD進(jìn)行調(diào)試的反調(diào)試功能來(lái)保護(hù)自己的軟件不被破解;而破解者為了能夠繼續(xù)使用OD來(lái)破解軟件,則不得不對(duì)OD進(jìn)行修改,從而達(dá)到反反調(diào)試的效果。

調(diào)試、反調(diào)試、反反調(diào)試,對(duì)于新接觸調(diào)試的愛(ài)好者來(lái)說(shuō)容易混淆。簡(jiǎn)單來(lái)說(shuō),反調(diào)試是阻止使用OD進(jìn)行調(diào)試,而反反調(diào)試是突破反調(diào)試?yán)^續(xù)進(jìn)行調(diào)試。而OD的修改版本之所以很多,就是為了能夠更好地突破軟件的反調(diào)試。從OD存在著眾多的修改版本可以看出,軟件的保護(hù)與軟件的破解一直在進(jìn)行著“攻”和“防”的突破當(dāng)中。

因此,如果從學(xué)習(xí)的角度來(lái)講,建議選擇原版的OD進(jìn)行使用。在使用的過(guò)程中,除了會(huì)掌握很多調(diào)試的技巧,也會(huì)學(xué)到很多反調(diào)試的技巧,從而掌握反反調(diào)試的技巧。而如果在實(shí)際的應(yīng)用中,則可以直接使用修改版的OD,避免OD被軟件反調(diào)試,從而提高逆向調(diào)試分析的速度。

2. OD主界面

OD的發(fā)行是一個(gè)壓縮包,解壓即可運(yùn)行使用。運(yùn)行OD解壓目錄中的ollydbg.exe程序,會(huì)出現(xiàn)一個(gè)分布恰當(dāng)、有菜單有版面和能輸入命令的一個(gè)看似強(qiáng)大的軟件窗口,如圖1所示。

圖1  OD調(diào)試主界面

在圖1中,工作區(qū)可以分為6部分,從左往右、從上往下,這6部分分別是反匯編窗口、信息窗口、數(shù)據(jù)窗口、寄存器窗口、棧窗口和命令窗口。下面分別介紹各個(gè)窗口的用法。

反匯編窗口:該窗口用于顯示反匯編代碼,調(diào)試分析程序主要就是在這個(gè)窗口中進(jìn)行,這也是進(jìn)行調(diào)試分析的主要工作窗口。

信息窗口:該窗口用于顯示與反匯編窗口上下文相關(guān)的內(nèi)存或寄存器信息。

數(shù)據(jù)窗口:該窗口用于以多種格式顯示內(nèi)存中的內(nèi)容,可以使用的格式有Hex、文本、短型、長(zhǎng)型、浮點(diǎn)和反匯編等。

寄存器窗口:該窗口用于顯示各個(gè)寄存器的內(nèi)容,包括前面介紹的通用寄存器、段寄存器、標(biāo)志寄存器、浮點(diǎn)寄存器,另外,還可以在寄存器窗口中的右鍵菜單選擇顯示MMX寄存器、3DNow!寄存器和調(diào)試寄存器。

棧窗口:該窗口用于顯示堆棧內(nèi)容,即ESP寄存器和EBP寄存器指向的地址部分。

命令窗口:該窗口用于輸入命令來(lái)簡(jiǎn)化調(diào)試分析的工作,該窗口并非基本窗口,而是由OD的插件提供的功能,幾乎所有的OD使用者都會(huì)使用該控件,因此必須掌握該窗口的使用。

3. OD功能窗口

OD中的主窗口是OD眾多窗口中的一個(gè),主要是用來(lái)顯示CPU相關(guān)內(nèi)容的窗口,主窗口也被稱為CPU窗口。除了CPU窗口外,OD還有功能非常多的其他窗口。可以通過(guò)菜單欄的“查看(V)”項(xiàng)目打開(kāi)這些窗口進(jìn)行使用,或者通過(guò)工具欄上的“窗口切換”工具來(lái)選擇使用不同的功能窗口。工具欄的“窗口切換”如圖2所示。

[[390676]]

圖2  “窗口切換”選項(xiàng)工具欄

(1)“內(nèi)存”窗口

“內(nèi)存”窗口顯示了程序各個(gè)模塊節(jié)區(qū)在內(nèi)存中的地址,如圖3所示。

圖3  “內(nèi)存”窗口

在內(nèi)存窗口中,可以用鼠標(biāo)選中某個(gè)模塊的節(jié)區(qū),然后按下F2鍵來(lái)下斷點(diǎn)。一旦代碼訪問(wèn)到這個(gè)段,OD就會(huì)相應(yīng)斷點(diǎn)斷下。

(2)“調(diào)用堆棧”窗口

“調(diào)用堆棧”用來(lái)顯示當(dāng)前代碼所屬函數(shù)的調(diào)用關(guān)系。“調(diào)用堆棧”窗口如圖4所示。

圖4  “調(diào)用堆棧”窗口

從圖4中第1行信息可以看出,當(dāng)前代碼所在的函數(shù)首地址是NOTEPAD模塊中的010040BA地址處,調(diào)用該函數(shù)的位置來(lái)自于NOTEPAD.010045CA,而NOTEPAD.010045CA函數(shù)所在的函數(shù)首地址需要從第3行中查看,該函數(shù)的首地址是NOTEPAD.01004565。其調(diào)用關(guān)系模擬如下: 

  1. Func 01004565()  
  2.  
  3. ……  
  4. 010045CA: call 010040BA  
  5.  
  6. Func 010040BA()  
  7.  

各個(gè)調(diào)用關(guān)系之間的Arg1、Arg2是由調(diào)用方函數(shù)傳遞給被調(diào)用方的函數(shù)參數(shù)。調(diào)用棧的結(jié)構(gòu)類似于棧的結(jié)構(gòu),都是由高往低方向延伸。在調(diào)用棧窗口中越靠下的函數(shù),其棧地址越高,函數(shù)之間的調(diào)用關(guān)系也是由下往上的。

(3)“斷點(diǎn)”窗口

“斷點(diǎn)”窗口顯示了設(shè)置的所有的軟斷點(diǎn),如圖5所示。

圖5  “斷點(diǎn)”窗口

從圖5中可以看出,設(shè)定了3條軟斷點(diǎn),設(shè)置斷點(diǎn)的地址從圖5的第1列可以查看。如果在API函數(shù)的首地址上設(shè)定斷點(diǎn),那么在地址后會(huì)給出API函數(shù)的名稱。設(shè)置好的斷點(diǎn)如果不想使用,可以進(jìn)行刪除;如果暫時(shí)不想使用,則可以通過(guò)使用空格鍵來(lái)切換其是否激活的狀態(tài)。

4. 常用斷點(diǎn)的設(shè)置方法

在OD中,常用的設(shè)置斷點(diǎn)的方法有命令法、菜單法和快捷鍵法。無(wú)論通過(guò)哪種方法設(shè)置斷點(diǎn),其實(shí)斷點(diǎn)的類型不外乎有3種,分別是INT3斷點(diǎn)、內(nèi)存斷點(diǎn)和硬件斷點(diǎn)。

(1)通過(guò)命令設(shè)置斷點(diǎn)

通過(guò)命令可以設(shè)置硬件斷點(diǎn)和INT3斷點(diǎn)。設(shè)置INT3斷點(diǎn)的方法較為簡(jiǎn)單,直接在命令窗口輸入“bp斷點(diǎn)地址”或“bp API函數(shù)名稱”即可。設(shè)置好以后,可以通過(guò)斷點(diǎn)窗口查看設(shè)置好的斷點(diǎn)。

關(guān)于硬件斷點(diǎn),這里介紹4條命令,具體如下。

① hr:硬件讀斷點(diǎn),如hr 斷點(diǎn)地址。

② hw:硬件寫(xiě)斷點(diǎn),如hw 斷點(diǎn)地址。

③ he:硬件執(zhí)行斷點(diǎn),如he 斷點(diǎn)地址。

④ hd:刪除硬件斷點(diǎn),如hd 斷點(diǎn)地址。

硬件斷點(diǎn)最多只能設(shè)置4個(gè),這是跟CPU相關(guān)的。可以用于設(shè)置斷點(diǎn)的調(diào)試寄存器只有4個(gè),分別是DR0、DR1、DR2和DR3。通過(guò)命令設(shè)置好硬件斷點(diǎn)后,可以在菜單的“調(diào)試(D)”項(xiàng)中打開(kāi)“硬件斷點(diǎn)(H)”,查看設(shè)置好的硬件斷點(diǎn),如圖6所示。

6  硬件斷點(diǎn)圖

(2)通過(guò)快捷鍵設(shè)置斷點(diǎn)

通過(guò)快捷鍵設(shè)置斷點(diǎn)的方法非常簡(jiǎn)單,在需要設(shè)置斷點(diǎn)的代碼行處按下F2鍵即可設(shè)置一個(gè)INT3斷點(diǎn),在設(shè)置好的INT3斷點(diǎn)處再次按下F2鍵即可取消設(shè)置好的斷點(diǎn)。

除了可以在代碼處通過(guò)F2鍵設(shè)置斷點(diǎn)外,還可以在內(nèi)存窗口中,在指定的節(jié)上按下F2鍵來(lái)設(shè)置斷點(diǎn)。這里設(shè)置的斷點(diǎn)是一次性斷點(diǎn),即斷點(diǎn)被觸發(fā)后設(shè)置的斷點(diǎn)自動(dòng)被刪除。

(3)通過(guò)菜單設(shè)置斷點(diǎn)

通過(guò)菜單設(shè)置斷點(diǎn)的方法比較簡(jiǎn)單,如圖7所示。

圖7  通過(guò)菜單設(shè)置斷點(diǎn)

在菜單中可以看到設(shè)置內(nèi)存斷點(diǎn)的選項(xiàng),分別是“內(nèi)存訪問(wèn)”和“內(nèi)存寫(xiě)入”。內(nèi)存斷點(diǎn)通常對(duì)數(shù)據(jù)部分設(shè)置斷點(diǎn),如果要找到某塊內(nèi)存中數(shù)據(jù)是由哪塊代碼進(jìn)行處理的,通過(guò)設(shè)置內(nèi)存斷點(diǎn)可以很容易找到。

對(duì)于動(dòng)態(tài)調(diào)試分析來(lái)說(shuō),合理設(shè)置斷點(diǎn)非常重要。在OD中,有很多設(shè)置斷點(diǎn)的方法和技巧,請(qǐng)大家在使用和學(xué)習(xí)的過(guò)程中慢慢學(xué)習(xí)和摸索。

5. OD調(diào)試快捷鍵

① F8鍵:?jiǎn)尾讲竭^(guò),依次執(zhí)行每一條代碼,遇到CALL不進(jìn)入,遇到REP不重復(fù)。

② F7鍵:?jiǎn)尾讲饺耄来螆?zhí)行每一條代碼,遇到CALL則進(jìn)入,遇到REP則重復(fù)。

③ F4 鍵:執(zhí)行到功能的代碼處(前提條件是選中的代碼在程序的流程中一定會(huì)被執(zhí)行到)。

④ F9鍵:運(yùn)行程序,直到遇到斷點(diǎn)才停止。

⑤ Ctrl+F9組合鍵:返回調(diào)用處(在Win7及更高的版本的操作系統(tǒng)下,該快捷鍵失靈了)。

⑥ Alt+F9組合鍵:執(zhí)行到函數(shù)的結(jié)尾處。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 計(jì)算機(jī)與網(wǎng)絡(luò)安全
相關(guān)推薦

2021-04-13 11:15:54

網(wǎng)絡(luò)安全C語(yǔ)言循環(huán)結(jié)構(gòu)

2021-04-08 11:10:22

網(wǎng)絡(luò)安全C語(yǔ)言if…else…

2021-04-14 15:53:58

網(wǎng)絡(luò)安全C語(yǔ)言wcslen

2021-04-06 11:04:54

網(wǎng)絡(luò)安全C語(yǔ)言代碼

2021-05-08 11:50:59

網(wǎng)絡(luò)安全API函數(shù)代碼

2021-04-26 10:32:38

網(wǎng)絡(luò)安全PE編程工具

2016-10-10 00:18:27

2021-04-01 10:40:22

網(wǎng)絡(luò)安全軟件

2021-06-18 09:55:09

網(wǎng)絡(luò)安全目錄監(jiān)控

2011-03-17 11:24:18

2011-03-17 13:32:45

2021-03-24 09:46:46

網(wǎng)絡(luò)安全軟件反匯編

2024-12-17 17:32:17

2021-03-03 12:20:42

網(wǎng)絡(luò)安全DLL編程

2011-03-17 12:49:32

2021-06-11 13:40:17

網(wǎng)絡(luò)安全專殺工具病毒

2021-12-28 00:11:40

網(wǎng)絡(luò)安全攻擊

2021-05-21 12:52:47

網(wǎng)絡(luò)安全Android App虛擬機(jī)

2021-04-30 18:50:44

網(wǎng)絡(luò)安全PE編程添加節(jié)區(qū)

2021-03-05 13:46:56

網(wǎng)絡(luò)安全遠(yuǎn)程線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 色欧美综合 | 欧美激情国产日韩精品一区18 | 不卡在线视频 | 亚洲精品成人 | 精品视频一二区 | 一区二区免费在线观看 | 999国产精品视频 | 亚洲狠狠爱 | 91欧美 | 视频一区二区中文字幕日韩 | 精品视频在线观看 | 欧美视频 亚洲视频 | 日韩在线视频一区二区三区 | 欧美日韩大陆 | 国产精品久久久久久中文字 | 国产精品一区二区三区久久久 | 国产亚洲网站 | 狠狠干狠狠操 | 无码国模国产在线观看 | 91偷拍精品一区二区三区 | 亚洲成人一区二区 | 中文字幕一区二区三区四区五区 | 久久国产婷婷国产香蕉 | 99视频在线免费观看 | 日本 欧美 三级 高清 视频 | 国产精品成人国产乱一区 | 免费成人高清在线视频 | 久久久www成人免费精品张筱雨 | 国产四区 | 在线观看免费av网 | 波多野结衣二区 | 国产精品一级在线观看 | 国产精品日韩欧美一区二区三区 | 成人性生交a做片 | 99视频久 | 午夜欧美一区二区三区在线播放 | 国产精品二区三区 | 国产日韩欧美 | 色香蕉在线 | 国产精品高清在线 | 亚洲精品高清视频 |