西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → 什么是 OllyDbg,OllyDbg 教程

什么是 OllyDbg,OllyDbg 教程

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:百度搜索時間:2010/8/16 10:54:59字體大。A-A+

作者:不詳點(diǎn)擊:488次評論:0次標(biāo)簽: OllyDbg

ODbgScrip(OllyDbg插件的編寫)V1.65.2 中文綠色版
  • 類型:反編譯(譯逆工程)大。304KB語言:中文 評分:8.7
  • 標(biāo)簽:
立即下載

OllyDbg 是一種具有可視化界面的 32 位匯編-分析調(diào)試器。它的特別之處在于可以在沒有源代碼時解決問題,并且可以處理其它編譯器無法解決的難題。

下載地址: http://www.innovatechautomation.com/soft/7156.html

Version 1.10 是最終的發(fā)布版本。 這個工程已經(jīng)停止,我不再繼續(xù)支持這個軟件了。但不用擔(dān)心:全新打造的 OllyDbg 2.00 不久就會面世!

運(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指令集。

配置: 有多達(dá)百余個(天呀!)選項用來設(shè)置 OllyDbg 的外觀和運(yùn)行。

數(shù)據(jù)格式: OllyDbg 的數(shù)據(jù)窗口能夠顯示的所有數(shù)據(jù)格式:HEX、ASCII、UNICODE、 16/32位有/無符號/HEX整數(shù)、32/64/80位浮點(diǎn)數(shù)、地址、反匯編(MASM、IDEAL或是HLA)、PE文件頭或線程數(shù)據(jù)塊。

幫助: 此文件中包含了關(guān)于理解和使用 OllyDbg 的必要的信息。如果您還有 Windows API 幫助文件的話(由于版權(quán)的問題 win32.hlp 沒有包括在內(nèi)),您可以將它掛在 OllyDbg 中,這樣就可以快速獲得系統(tǒng)函數(shù)的相關(guān)幫助。

啟動: 您可以采用命令行的形式指定可執(zhí)行文件、也可以從菜單中選擇,或直接拖放到OllyDbg中,或者重新啟動上一個被調(diào)試程序,或是掛接[Attach]一個正在運(yùn)行的程序。OllyDbg支持即時調(diào)試。OllyDbg根本不需要安裝,可直接在軟盤中運(yùn)行!

調(diào)試DLLs: 您可以利用OllyDbg調(diào)試標(biāo)準(zhǔn)動態(tài)鏈接庫 (DLLs)。OllyDbg 會自動運(yùn)行一個可執(zhí)行程序。這個程序會加載鏈接庫,并允許您調(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ù),常量)。您可以定制個性化高亮方案。

線程: OllyDbg 可以調(diào)試多線程程序。因此您可以在多個線程之間轉(zhuǎn)換,掛起、恢復(fù)、終止線程或是改變線程優(yōu)先級。并且線程窗口將會顯示每個線程的錯誤(就像調(diào)用 GETLASTERROR 返回一樣)。

分析:OllyDbg 的最大特點(diǎn)之一就是分析。它會分析函數(shù)過程、循環(huán)語句、選擇語句、表[tables]、常量、代碼中的字符串、欺騙性指令[tricky constructs]、API調(diào)用、函數(shù)中參數(shù)的數(shù)目,import表等等。. 這些分析增加了二進(jìn)制代碼的可讀性,減少了出錯的可能性,使得我們的調(diào)試工作更加容易。

Object掃描。 OllyDbg 可以掃描Object文件/庫(包括 OMF 和 COFF 格式),解壓代碼段[code segments]并且對其位置進(jìn)行定向。

Implib掃描。 由于一些DLL文件的輸出函數(shù)使用的索引號,對于人來說,這些索引號沒有實際含義。如果您有與DLL相應(yīng)的輸入庫[import library],OllyDbg 就可以將序號轉(zhuǎn)換成符號名稱。

完全支持Unicode: 幾乎所有支持 ASCII 的操作同時也支持 UNICODE,反之亦然。

名稱: OllyDbg 可以根據(jù) Borland 和 Microsoft 格式的調(diào)試信息,顯示輸入/輸出符號及名稱。Object 掃描器可以識別庫函數(shù)。其中的名稱和注釋您可任意添加。如果DLL中的某些函數(shù)是通過索引號輸出的,則您可通過掛接輸入庫[import library]來恢復(fù)原來的函數(shù)名稱。不僅如此,OllyDbg還能識別大量的常量符號名(如:窗口消息、錯誤代碼、位域[bit fields]…)并能夠解碼為已知的函數(shù)調(diào)用。

已知函數(shù):OllyDbg 可以識別 2300 多個 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)行回溯。
譯者注:
004010D0 push ebp \
004010D1 mov ebp,esp |
004010D3 sub esp,10h |prolog
004010D6 push ebx |
004010D7 push esi |
004010D8 push edi /
……
004010C5 pop edi \
004010C6 pop esi |
004010C7 pop ebx |epilog
004010C8 mov esp,ebp |

004010CA pop ebp |
004010CB ret /

棧:在棧窗口中,OllyDbg 能智能識別返回地址和棧框架[Stack Frames]。并會留下一些先前的調(diào)用。如果程序停在已知函數(shù)上,堆棧窗口將會對其參數(shù)進(jìn)行分析解碼。

譯者注:?蚣埽跾tack Frames]是指一個內(nèi)存區(qū)域,用于存放函數(shù)參數(shù)和局部變量。

SEH 鏈: 跟蹤棧并顯示結(jié)構(gòu)化異常句柄鏈。全部鏈會顯示在一個單獨(dú)的窗口中。

搜索:方法真是太多了!可精確、模糊搜索命令或命令序列,搜索常數(shù),搜索二進(jìn)制、文本字符串,搜索全部命令地址,搜索全部常量或地址域[address range],搜索所有能跳到選定地址的跳轉(zhuǎn),搜索所有調(diào)用和被調(diào)用的函數(shù),搜索所有參考字符串,在不同模塊中搜索所有調(diào)用、搜索函數(shù)名稱,在全部已分配的內(nèi)存中搜索二進(jìn)制序列。如果搜索到多個結(jié)果,您可以對其進(jìn)行快速操作。

窗口:OllyDbg 能夠列出關(guān)于調(diào)試程序中的各種窗口,并且可以在窗口、類甚至選定的消息上設(shè)置斷點(diǎn)。

資源:如果 Windows API 函數(shù)使用了參考資源串,OllyDbg 可以顯示它。其支持顯示的類型僅限于附帶資源[attached resources]的列表、數(shù)據(jù)顯示及二進(jìn)制編輯、。

斷點(diǎn): OllyDbg 支持各種斷點(diǎn):一般斷點(diǎn)、條件斷點(diǎn)、記錄斷點(diǎn)(比如記錄函數(shù)參數(shù)到記錄窗口)、內(nèi)存讀寫斷點(diǎn)、硬件斷點(diǎn)(只適用于ME/NT/2000)等。在Hit跟蹤情況下,可以在模塊的每條命令上都設(shè)置INT3斷點(diǎn)。在使用500-MHZ處理器的 Windows NT 中,OllyDbg 每秒可以處理高達(dá) 5000 個中斷。

監(jiān)視與監(jiān)察器:每個監(jiān)視都是一個表達(dá)式并能實時顯示表達(dá)式的值。您可以使用寄存器、常數(shù)、地址表達(dá)式、布爾值以及任何復(fù)雜代數(shù)運(yùn)算,您還可以比較ASCII和UNICODE
字符串。監(jiān)察器[inspectors]是一種包含了兩個的索引序列的監(jiān)視[Watches],它以二維表的形式呈現(xiàn),可以允楹徒峁菇薪飴敕治觥?nbsp;

Heap walk.:在基于Win95的系統(tǒng)中,OllyDbg 可以列出所有的已分配的堆。

句柄:在基于NT的系統(tǒng)中,OllyDbg 可列出被調(diào)試程序的所有系統(tǒng)句柄。

執(zhí)行:.您可以單步執(zhí)行、步入子程序或者步過子程序。您也可以執(zhí)行程序直到函數(shù)返回時、執(zhí)行到指定地址處,還可以自動執(zhí)行。當(dāng)程序運(yùn)行時,您仍然可以操縱程序并能夠查看內(nèi)存、設(shè)置斷點(diǎn)甚至修改代碼。您也可以任意的暫停或重啟被調(diào)試的程序。

Hit跟蹤:.Hit跟蹤可以顯示出目前已執(zhí)行的指令或函數(shù)過程,幫助您檢驗代碼的各個分支。Hit跟蹤會在指定指令到達(dá)之前設(shè)置斷點(diǎn),而在這個指令執(zhí)行后,會把這個斷點(diǎn)清除掉。

譯者注:Hit在英文中是“擊中”的意思,指令如果運(yùn)行了就表示這個指令被“擊中”了,沒有執(zhí)行的指令就是“未擊中”,這樣我們就很容易看出被調(diào)試程序哪些部分運(yùn)行了,而哪些沒有運(yùn)行。

Run 跟蹤: Run跟蹤可以單步執(zhí)行程序,它會在一個很大的循環(huán)緩沖區(qū)中模擬運(yùn)行程序。這個模擬器包含了除了SSE指令集以外的所以寄存器、標(biāo)志、線程錯誤、消息、已經(jīng)函數(shù)的參數(shù)。您可以保存命令,這樣可以非常方便地調(diào)試自修改代碼(譯者注:比如加殼程序)。您可以設(shè)置條件中斷,條件包括地址范圍、表達(dá)式、命令。您可以將Run
跟蹤信息保存到一個文件中,這樣就可以對比兩次運(yùn)行的差別。Run跟蹤可以回溯分析已執(zhí)行過的上百萬條命令的各種細(xì)節(jié)。

統(tǒng)計: 統(tǒng)計[Profiler]可以在跟蹤時計算某些指令出現(xiàn)的次數(shù)。因此您就能了解代碼的哪一部分被頻繁執(zhí)行。

補(bǔ)丁:內(nèi)置匯編器能夠自動找到修改過的代碼段。二進(jìn)制編輯器則會以ASCII、UNICODE或者十六進(jìn)制的形式同步顯示修改后的數(shù)據(jù)。修改后的數(shù)據(jù)同其它數(shù)據(jù)一樣,能夠進(jìn)行復(fù)制-粘貼操作。原來的數(shù)據(jù)會自動備份,以便數(shù)據(jù)恢復(fù)時使用。您可以把修改的部分直接復(fù)制到執(zhí)行文件中,OllyDbg會自動修正。 OllyDbg還會記錄以前調(diào)試過程中使用的所有補(bǔ)丁。您可以通過空格鍵實現(xiàn)補(bǔ)丁的激活或者禁止。

自解壓文件: 當(dāng)調(diào)試自解壓文件時,您往往希望跳過解壓部分,直接停在程序的原始入口點(diǎn)。OllyDbg的自解壓跟蹤將會使您實現(xiàn)這一目的。如果是加保護(hù)的自解壓段,自解壓跟蹤往往會失敗。而一旦OllyDbg找到了入口點(diǎn),它將會跳過解壓部分,并準(zhǔn)確的到達(dá)入口點(diǎn)。

插件:您可以把自己的插件添加到 OllyDbg 中,以增加新的功能。OllyDbg 的插件能夠訪問幾乎所有重要的數(shù)據(jù)的結(jié)構(gòu)、能夠在 OllyDbg 的窗口中添加菜單和快捷鍵,能夠使用100個以上的插件API函數(shù)。插件API函數(shù)有詳細(xì)的說明文檔。默認(rèn)安裝已經(jīng)包含了兩個插件:命令行插件和書簽插件。

UDD:OllyDbg 把所有程序或模塊相關(guān)的信息保存至單獨(dú)的文件中,并在模塊重新加載時繼續(xù)使用。這些信息包括了標(biāo)簽、注釋、斷點(diǎn)、監(jiān)視、分析數(shù)據(jù)、條件等等。

更多:這里介紹的功能,僅僅是 OllyDbg 的部分功能。因為其具有如此豐富的功能,以至于 OllyDbg 能成為非常方便的調(diào)試器。
 

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    第 1 樓 江蘇南京南京大學(xué) 網(wǎng)友 客人 發(fā)表于: 2012/1/13 13:53:39
    good

    支持( 0 ) 蓋樓(回復(fù))

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)