ollydbg(od反匯編工具)操作界面介紹:
1、反匯編窗口
ollydbg(od反匯編工具)在這里顯示反匯編代碼,我們將要以O(shè)llyDbg的默認(rèn)配置調(diào)試分析你打開的程序。 調(diào)試選項(xiàng)可以在Options->Debugging options里更改。
2、寄存器
第二個(gè)重要的窗口——寄存器窗口??匆幌逻@個(gè)在OllyDbg最右邊的窗口,它出現(xiàn)了很多信息。
3、堆棧窗口
默認(rèn)情況下,它顯示ESP寄存器指向的信息(也是最重要的),但是你可以改變它的顯示模式來顯示來自涉及EBP的信息。這需要在這個(gè)窗口上點(diǎn)擊右鍵,選擇GO to EBP。再次點(diǎn)擊右鍵選擇Go to ESP,回到先前窗口。
4、數(shù)據(jù)窗口(dump)
默認(rèn)的模式是最常用的,我們還可以改變它以顯示反匯編代碼(Disassemble),文本(Text)和其它格式(Short,Long,F(xiàn)loat)?,F(xiàn)在我們了解了OllyDbg的最主要的四個(gè)窗口。還有一些窗口沒有直接顯示,可以通過菜單或控制面板上的圖標(biāo)按鈕訪問。
ollydbg軟件特點(diǎn):
1. 反匯編和調(diào)試:ollydbg能夠?qū)⒛繕?biāo)程序反匯編為匯編代碼,并提供強(qiáng)大的調(diào)試功能,包括斷點(diǎn)、單步執(zhí)行、內(nèi)存查看等。2. 動(dòng)態(tài)分析:ollydbg允許用戶在運(yùn)行時(shí)分析目標(biāo)程序,觀察其行為和狀態(tài)。它可以跟蹤程序的執(zhí)行流程,查看寄存器和內(nèi)存的值,并與目標(biāo)程序進(jìn)行交互。
3. 插件支持:ollydbg支持插件機(jī)制,用戶可以編寫自己的插件來擴(kuò)展ollydbg的功能。這使得ollydbg可以適應(yīng)不同的需求和場(chǎng)景。
4. 腳本支持:ollydbg內(nèi)置了一種類似于匯編語(yǔ)言的腳本語(yǔ)言,用戶可以使用腳本來自動(dòng)化一些任務(wù),例如批量調(diào)試、自動(dòng)化測(cè)試等。
5. 支持多種體系結(jié)構(gòu):ollydbg可以處理多種體系結(jié)構(gòu)的可執(zhí)行文件,包括x86、x64、ARM等。
6. 強(qiáng)大的反調(diào)試功能:ollydbg具有一些反調(diào)試功能,可以檢測(cè)和抵御調(diào)試器的使用,使得逆向工程師更難以分析和修改目標(biāo)程序。
ollydbg軟件功能:
啟動(dòng)
您可以采用命令行的形式指定可執(zhí)行文件、也可以從菜單中選擇,或直接拖放到OllyDbg中,或者重新啟動(dòng)上一個(gè)被調(diào)試程序,或是掛接[Attach]一個(gè)正在運(yùn)行的程序。OllyDbg支持即時(shí)調(diào)試,根本不需要安裝,可直接在軟盤中運(yùn)行!
線程
ollydbg(od反匯編工具)可以調(diào)試多線程程序。因此您可以在多個(gè)線程之間轉(zhuǎn)換,掛起、恢復(fù)、終止線程或是改變線程優(yōu)先級(jí)。并且線程窗口將會(huì)顯示每個(gè)線程的錯(cuò)誤(就像調(diào)用 GETLASTERROR 返回一樣)。
調(diào)試DLLs
您可以利用OllyDbg調(diào)試標(biāo)準(zhǔn)動(dòng)態(tài)鏈接庫(kù)(DLLs)。OllyDbg 會(huì)自動(dòng)運(yùn)行一個(gè)可執(zhí)行程序。這個(gè)程序會(huì)加載鏈接庫(kù),并允許您調(diào)用鏈接庫(kù)的輸出函數(shù)。
源碼級(jí)調(diào)試
ollydbg(od反匯編工具)可以識(shí)別所有 Borland 和 Microsoft 格式的調(diào)試信息。這些信息包括源代碼、函數(shù)名、標(biāo)簽、全局變量、靜態(tài)變量。有限度的支持動(dòng)態(tài)(棧)變量和結(jié)構(gòu)。
代碼高亮
ollydbg(od反匯編工具)的反匯編器可以高亮不同類型的指令(如:跳轉(zhuǎn)、條件跳轉(zhuǎn)、入棧、出棧、調(diào)用、返回、特殊的或是無效的指令)和不同的操作數(shù)(常規(guī)[general]、FPU/SSE、段/系統(tǒng)寄存器、在?;騼?nèi)存中的操作數(shù),常量)。您可以定制個(gè)性化高亮方案。
名稱
ollydbg(od反匯編工具)可以根據(jù) Borland 和 Microsoft 格式的調(diào)試信息,顯示輸入/輸出符號(hào)及名稱。Object 掃描器可以識(shí)別庫(kù)函數(shù)。其中的名稱和注釋您可任意添加。如果DLL中的某些函數(shù)是通過索引號(hào)輸出的,則您可通過掛接輸入庫(kù)[import library]來恢復(fù)原來的函數(shù)名稱。不僅如此,OllyDbg還能識(shí)別大量的常量符號(hào)名(如:窗口消息、錯(cuò)誤代碼、位域[bit fields]…)并能夠解碼為已知的函數(shù)調(diào)用。
已知函數(shù)
ollydbg(od反匯編工具)可以識(shí)別 2300 多個(gè)C 和Windows API 中的常用函數(shù)及其使用的參數(shù)。您可以添加描述信息、預(yù)定義解碼。您還可以在已知函數(shù)設(shè)定 Log斷點(diǎn)并可以對(duì)參數(shù)進(jìn)行記錄。
函數(shù)調(diào)用
ollydbg(od反匯編工具)可以在沒有調(diào)試信息或函數(shù)過程使用非標(biāo)準(zhǔn)的開始部分[prolog]和結(jié)尾部分[epilog]的情況下,對(duì)遞歸調(diào)用進(jìn)行回溯。
配置
有多達(dá)百余個(gè)選項(xiàng)用來設(shè)置OllyDbg 的外觀和運(yùn)行。
數(shù)據(jù)格式:OllyDbg 的數(shù)據(jù)窗口能夠顯示的所有數(shù)據(jù)格式:HEX、ASCⅡ、UNICODE、 16/32位有/無符號(hào)/HEX整數(shù)、32/64/80位浮點(diǎn)數(shù)、地址、反匯編(MASM、IDEAL或是HLA)、PE文件頭或線程數(shù)據(jù)塊。
運(yùn)行環(huán)境
ollydbg(od反匯編工具)可以以在任何采用奔騰處理器的 Windows 95、98、ME、NT 或是 XP(未經(jīng)完全測(cè)試)操作系統(tǒng)中工作,但我們強(qiáng)烈建議您采用300-MHz以上的奔騰處理器以達(dá)到更好效果。還有,OllyDbg 是極占內(nèi)存的,因此如果您需要使用諸如追蹤調(diào)試[Trace]之類的擴(kuò)展功能話,建議您使用128MB以上的內(nèi)存。
支持的處理器
ollydbg(od反匯編工具)支持所有 80x86、奔騰、MMX、3DNOW!、Athlon擴(kuò)展指令集、SSE指令集以及相關(guān)的數(shù)據(jù)格式,但是不支持SSE2指令集。
ollydbg(od反匯編工具)使用方法
OD界面-無論當(dāng)前的OllyDbg窗口是什么,這些快捷鍵均有效:
Ctrl+F2 - 重啟程序,即重新啟動(dòng)被調(diào)試程序。如果當(dāng)前沒有調(diào)試的程序,OllyDbg會(huì)運(yùn)行歷史列表[historylist]中的第一個(gè)程序。程序重啟后,將會(huì)刪除所有內(nèi)存斷點(diǎn)和硬件斷點(diǎn)。
譯者注:從實(shí)際使用效果看,硬件斷點(diǎn)在程序重啟后并沒有移除。
F3 - 彈出“打開32位.EXE文件”對(duì)話框[Open 32-bit .EXE file],您可以選擇可執(zhí)行文件,并可以輸入運(yùn)行參數(shù)。
F7 -單步步入到下一條命令,如果當(dāng)前命令是一個(gè)函數(shù)[Call],則會(huì)停在這個(gè)函數(shù)體的第一條命令上。如果當(dāng)前命令是是含有REP前綴,則只執(zhí)行一次重復(fù)操作。
F8 -單步步過到下一條命令。如果當(dāng)前命令是一個(gè)函數(shù),則一次執(zhí)行完這個(gè)函數(shù)(除非這個(gè)函數(shù)內(nèi)部包含斷點(diǎn),或發(fā)生了異常)。如果當(dāng)前命令是含有REP前綴,則會(huì)執(zhí)行完重復(fù)操作,并停在下一條命令上。
F9 - 讓程序繼續(xù)執(zhí)行。
Ctrl+F11-Run跟蹤步入,一條一條執(zhí)行命令,進(jìn)入每個(gè)子函數(shù)調(diào)用,并把寄存器的信息加入到Run跟蹤的存儲(chǔ)數(shù)據(jù)中。Run跟蹤不會(huì)同步更新CPU窗口。
F12 - 停止程序執(zhí)行,同時(shí)暫停被調(diào)試程序的所有線程。請(qǐng)不要手動(dòng)恢復(fù)線程運(yùn)行,使用繼續(xù)執(zhí)行快捷鍵或菜單選項(xiàng)(像 F9)。
Alt+B - 顯示斷點(diǎn)窗口。在這個(gè)窗口中,您可以編輯、刪除、或跟進(jìn)到斷點(diǎn)處。
Alt+C - 顯示CPU窗口。
Alt+E - 顯示模塊列表[list of modules]。
Alt+K - 顯示調(diào)用棧[Call stack]窗口。
Alt+L - 顯示日志窗口。
Alt+M - 顯示內(nèi)存窗口。
Alt+O - 顯示選項(xiàng)對(duì)話框[Options dialog]
Ctrl+P - 顯示補(bǔ)丁窗口。
Ctrl+T - 打開 暫停 Run跟蹤 對(duì)話框
Alt+X - 關(guān)閉 OllyDbg。