七,如何開始調試[How to start debugging session]
最簡單的方法是:運行 OllyDbg,點擊菜單上的檔案[File]|開啟[Open],選擇您想調試的程式。如果程式需要命令列參數,您可以在對話方塊底部的輸入欄中,輸入參數或者選擇以前調試時輸入過的一條參數。
OllyDbg 能夠調試獨立的DLL[stand-alone DLLs]。在這種情況下,OllyDbg 會建立並運行一個小的應用程式來載入連結庫並根據您的需要調用輸出函數。
如果您想重新啟動上一次調試的程式,只要按一下 Ctrl+F2(這是重啟程式的快速鍵),這樣 OllyDbg 會以同樣的參數運行這個程式。另一種做法是在菜單中選擇檔案[File],從曆史列表中選擇程式。您也可以在 Windows 資源管理員中將可執行檔或 DLL 檔案拖拽到 OllyDbg 中。
當然,您可以在 OllyDbg 啟動時,運行指定帶有運行參數的被偵錯工具。例如:您可以在案頭建立一個 OllyDbg 的捷徑,右擊並選擇“屬性”,在“捷徑”中的“目標”中添加調試的程式的全路徑。這樣,您每次雙擊捷徑時,OllyDbg 將自動運行被偵錯工具。注意:DLL檔案不支援這種方式。
您可以把正在啟動並執行進程掛接到 OllyDbg 中。在菜單中開啟 檔案[File]|掛接[Attach],從進程列表中選擇要掛接的進程。注意:在您關閉 OllyDbg 的同時,這個進程也會被關閉。不要掛接系統進程,否則可能會導致整個作業系統的崩潰。(事實上在大多數情況下,作業系統禁止您掛接敏感進程)。
OllyDbg 可以作為即時[just-in-time]調試器。這需要在系統註冊表中註冊。在菜單中選擇選項[Options]|即時調試[Just-in-time debugging] 並在彈出的對話方塊中單擊按鈕“設定OllyDbg為即時調試器”[Make OllyDbg just-in-time debugger]。今後,如果某個應用程式發生了非法操作,系統將提示您是否用 OllyDbg 調試這個程式。作業系統會啟動 OllyDbg 並直接停在發生異常的地方。如果您選擇了“掛接時不詢問”[attaching without confirmation],則在即時調試時OllyDbg不會彈出詢問對話方塊。如果想恢複成以前的即時調試器[Restore old just-in-time debuger],按相應的按鈕即可。
另一種方法是把 OllyDbg 添加到與可執行檔關聯的捷徑功能表中(這個想法是 Jochen Gerster 提出的)。在主菜單中,選擇選項[Options]|添加到資源管理員中[Add to Explorer]。以後您可以在所有的檔案清單中,右擊可執行檔或DLL,在捷徑功能表中選擇OllyDbg。這個功能會建立四個註冊表索引值:
HKEY_CLASSES_ROOT/exefile/shell/Open with OllyDbg
HKEY_CLASSES_ROOT/exefile/shell/Open with OllyDbg/command
HKEY_CLASSES_ROOT/dllfile/shell/Open with OllyDbg
HKEY_CLASSES_ROOT/dllfile/shell/Open with OllyDbg/command
OllyDbg能夠偵錯主控台程式(基於文字的)。
OllyDbg不能調試.NET應用程式。.NET程式是由微軟的中繼語言這種偽指令組成的,或是on-the-fly to native ?6 commands編譯的。
注意:如果您啟動並執行是Windows NT、2000 或XP作業系統,您應該擁有管理員權限以便能夠偵錯工具。。,
八,CPU 視窗[CPU window]
對於使用者來說,CPU視窗在OllyDbg中是最重要的視窗。您調試自己程式的絕大部分操作都要在這個視窗中進行。它包括以下五個面板(這五個面板的大小都是可以調節的):
反組譯碼[Disassembler]
資訊[Information]
資料[Dump]
寄存器[Registers]
棧[Stack]
按TAB鍵,可以切換到下一個CPU面板中(順時針方向)。
按Shift+TAB,可以切換到前一個CPU面板(逆時針方向)。