OllyDug是一款具有可視化界面的32位匯編分析調(diào)試器,是一個(gè)新的動態(tài)追蹤工具,將IDA與SoftICE結(jié)合起來的思想,Ring3級調(diào)試器,非常容易上手,己代替SoftICE成為當(dāng)今最為流行的調(diào)試解密工具了。同時(shí)還支持插件擴(kuò)展功能,是目前最強(qiáng)大的調(diào)試工具。
【功能特點(diǎn)】
啟動:您可以采用命令行的形式指定可執(zhí)行文件、也可以從菜單中選擇,或直接拖放到OllyDbg中,或者重新啟動上一個(gè)被調(diào)試程序,或是掛接[Attach]一個(gè)正在運(yùn)行的程序。OllyDbg支持即時(shí)調(diào)試,根本不需要安裝,可直接在軟盤中運(yùn)行!
線程:ollydbg可以調(diào)試多線程程序。因此您可以在多個(gè)線程之間轉(zhuǎn)換,掛起、恢復(fù)、終止線程或是改變線程優(yōu)先級。并且線程窗口將會顯示每個(gè)線程的錯(cuò)誤(就像調(diào)用 GETLASTERROR 返回一樣)。
調(diào)試DLLs:您可以利用OllyDbg調(diào)試標(biāo)準(zhǔn)動態(tài)鏈接庫(DLLs)。OllyDbg 會自動運(yùn)行一個(gè)可執(zhí)行程序。這個(gè)程序會加載鏈接庫,并允許您調(diào)用鏈接庫的輸出函數(shù)。
源碼級調(diào)試:ollydbg可以識別所有 Borland 和 Microsoft 格式的調(diào)試信息。這些信息包括源代碼、函數(shù)名、標(biāo)簽、全局變量、靜態(tài)變量。有限度的支持動態(tài)(棧)變量和結(jié)構(gòu)。
代碼高亮:ollydbg的反匯編器可以高亮不同類型的指令(如:跳轉(zhuǎn)、條件跳轉(zhuǎn)、入棧、出棧、調(diào)用、返回、特殊的或是無效的指令)和不同的操作數(shù)(常規(guī)[general]、FPU/SSE、段/系統(tǒng)寄存器、在?;騼?nèi)存中的操作數(shù),常量)。您可以定制個(gè)性化高亮方案。
名稱:ollydbg可以根據(jù) Borland 和 Microsoft 格式的調(diào)試信息,顯示輸入/輸出符號及名稱。Object 掃描器可以識別庫函數(shù)。其中的名稱和注釋您可任意添加。如果DLL中的某些函數(shù)是通過索引號輸出的,則您可通過掛接輸入庫[import library]來恢復(fù)原來的函數(shù)名稱。不僅如此,OllyDbg還能識別大量的常量符號名(如:窗口消息、錯(cuò)誤代碼、位域[bit fields]…)并能夠解碼為已知的函數(shù)調(diào)用。
已知函數(shù):ollydbg可以識別 2300 多個(gè)C 和Windows API 中的常用函數(shù)及其使用的參數(shù)。您可以添加描述信息、預(yù)定義解碼。您還可以在已知函數(shù)設(shè)定 Log斷點(diǎn)并可以對參數(shù)進(jìn)行記錄。
函數(shù)調(diào)用:ollydbg可以在沒有調(diào)試信息或函數(shù)過程使用非標(biāo)準(zhǔn)的開始部分[prolog]和結(jié)尾部分[epilog]的情況下,對遞歸調(diào)用進(jìn)行回溯。
配置:有多達(dá)百余個(gè)選項(xiàng)用來設(shè)置OllyDbg 的外觀和運(yùn)行。
數(shù)據(jù)格式:OllyDbg 的數(shù)據(jù)窗口能夠顯示的所有數(shù)據(jù)格式:HEX、ASCⅡ、UNICODE、 16/32位有/無符號/HEX整數(shù)、32/64/80位浮點(diǎn)數(shù)、地址、反匯編(MASM、IDEAL或是HLA)、PE文件頭或線程數(shù)據(jù)塊。
運(yùn)行環(huán)境:ollydbg可以以在任何采用奔騰處理器的 Windows 95、98、ME、NT 或是 XP(未經(jīng)完全測試)操作系統(tǒng)中工作,但我們強(qiáng)烈建議您采用300-MHz以上的奔騰處理器以達(dá)到更好效果。還有,OllyDbg 是極占內(nèi)存的,因此如果您需要使用諸如追蹤調(diào)試[Trace]之類的擴(kuò)展功能話,建議您使用128MB以上的內(nèi)存。
支持的處理器:ollydbg支持所有 80x86、奔騰、MMX、3DNOW!、Athlon擴(kuò)展指令集、SSE指令集以及相關(guān)的數(shù)據(jù)格式,但是不支持SSE2指令集。