標 題: OllyDBG 入門系列(一)-認識OllyDBG OllyDBG 1.10 版的發(fā)布版本是個 ZIP 壓縮包,只要解壓到一個目錄下,運行 OllyDBG.exe 就可以了。漢化版的發(fā)布版本是個 RAR 壓縮包,同樣只需解壓到一個目錄下運行 OllyDBG.exe 即可: OllyDBG 中各個窗口的功能如上圖。簡單解釋一下各個窗口的功能,更詳細的內容可以參考 TT 小組翻譯的中文幫助: 反匯編窗口:顯示被調試程序的反匯編代碼,標題欄上的地址、HEX 數(shù)據(jù)、反匯編、注釋可以通過在窗口中右擊出現(xiàn)的菜單 界面選項->隱藏標題 或 顯示標題 來進行切換是否顯示。用鼠標左鍵點擊注釋標簽可以切換注釋顯示的方式。 寄存器窗口:顯示當前所選線程的 CPU 寄存器內容。同樣點擊標簽 寄存器 (FPU) 可以切換顯示寄存器的方式。 信息窗口:顯示反匯編窗口中選中的第一個命令的參數(shù)及一些跳轉目標地址、字串等。 數(shù)據(jù)窗口:顯示內存或文件的內容。右鍵菜單可用于切換顯示方式。 堆棧窗口:顯示當前線程的堆棧。 要調整上面各個窗口的大小的話,只需左鍵按住邊框拖動,等調整好了,重新啟動一下 OllyDBG 就可以生效了。 啟動后我們要把插件及 UDD 的目錄配置為絕對路徑,點擊菜單上的 選項->界面,將會出來一個界面選項的對話框,我們點擊其中的目錄標簽: 因為我這里是把 OllyDBG 解壓在 F:\OllyDBG 目錄下,所以相應的 UDD 目錄及插件目錄按圖上配置。還有一個常用到的標簽就是上圖 后面那個字體,在這里你可以更改 OllyDBG 中顯示的字體。上圖中其它的選項可以保留為默認,若有需要也可以自己修改。修改完以后點擊確定,彈出一 個對話框,說我們更改了插件路徑,要重新啟動 OllyDBG。在這個對話框上點確定,重新啟動一下 OllyDBG,我們再到界面選項中看一下,會發(fā)現(xiàn) 我們原先設置好的路徑都已保存了。有人可能知道插件的作用,但對那個 UDD 目錄不清楚。我這簡單解釋一下:這個 UDD 目錄的作用是保存你調試的工 作。比如你調試一個軟件,設置了斷點,添加了注釋,一次沒做完,這時 OllyDBG 就會把你所做的工作保存到這個 UDD 目錄,以便你下次調試時可 以繼續(xù)以前的工作。如果不設置這個 UDD 目錄,OllyDBG 默認是在其安裝目錄下保存這些后綴名為 udd 的文件,時間長了就會顯的很亂,所以 還是建議專門設置一個目錄來保存這些文件。 另外一個重要的選項就是調試選項,可通過菜單 選項->調試設置 來配置: 新手一般不需更改這里的選項,默認已配置好,可以直接使用。建議在對 OllyDBG 已比較熟的情況下再來進行配置。上面那個異常標簽中的選項經(jīng)常會在脫殼中用到,建議在有一定調試基礎后學脫殼時再配置這里。 除了直接啟動 OllyDBG 來調試外,我們還可以把 OllyDBG 添加到資源管理器右鍵菜單,這樣我們就可以直接在 .exe 及 .dll 文 件上點右鍵選擇“用Ollydbg打開”菜單來進行調試。要把 OllyDBG 添加到資源管理器右鍵菜單,只需點菜單 選項->添加到瀏覽器,將 會出現(xiàn)一個對話框,先點擊“添加 Ollydbg 到系統(tǒng)資源管理器菜單”,再點擊“完成”按鈕即可。要從右鍵菜單中刪除也很簡單,還是這個對話框,點擊 “從系統(tǒng)資源管理器菜單刪除 Ollydbg”,再點擊“完成”就行了。 OllyDBG 支持插件功能,插件的安裝也很簡單,只要把下載的插件(一般是個 DLL 文件)復制到 OllyDBG 安裝目錄下 的 PLUGIN 目錄中就可以了,OllyDBG 啟動時會自動識別。要注意的是 OllyDBG 1.10 對插件的個數(shù)有限制,最多不能超 過 32 個,否則會出錯。建議插件不要添加的太多。 到這里基本配置就完成了,OllyDBG 把所有配置都放在安裝目錄下的 ollydbg.ini 文件中。 二、基本調試方法 OllyDBG 有三種方式來載入程序進行調試,一種是點擊菜單 文件->打開 (快捷鍵是 F3)來打開一個可執(zhí)行文件進行調試,另一種是點擊菜 單 文件->附加 來附加到一個已運行的進程上進行調試。注意這里要附加的程序必須已運行。第三種就是用右鍵菜單來載入程序(不知這種算不算)。一 般情況下我們選第一種方式。比如我們選擇一個 test.exe 來調試,通過菜單 文件->打開 來載入這個程序,OllyDBG 中顯示的內容 將會是這樣: 調試中我們經(jīng)常要用到的快捷鍵有這些: F2:設置斷點,只要在光標定位的位置(上圖中灰色條)按F2鍵即可,再按一次F2鍵則會刪除斷點。(相當于 SoftICE 中的 F9) F8:單步步過。每按一次這個鍵執(zhí)行一條反匯編窗口中的一條指令,遇到 CALL 等子程序不進入其代碼。(相當于 SoftICE 中的 F10) F7:單步步入。功能同單步步過(F8)類似,區(qū)別是遇到 CALL 等子程序時會進入其中,進入后首先會停留在子程序的第一條指令上。(相當于 SoftICE 中的 F8) F4:運行到選定位置。作用就是直接運行到光標所在位置處暫停。(相當于 SoftICE 中的 F7) F9:運行。按下這個鍵如果沒有設置相應斷點的話,被調試的程序將直接開始運行。(相當于 SoftICE 中的 F5) CTR+F9:執(zhí)行到返回。此命令在執(zhí)行到一個 ret (返回指令)指令時暫停,常用于從系統(tǒng)領空返回到我們調試的程序領空。(相當于 SoftICE 中的 F12) ALT+F9:執(zhí)行到用戶代碼??捎糜趶南到y(tǒng)領空快速返回到我們調試的程序領空。(相當于 SoftICE 中的 F11) 上面提到的幾個快捷鍵對于一般的調試基本上已夠用了。要開始調試只需設置好斷點,找到你感興趣的代碼段再按 F8 或 F7 鍵來一條條分析指令功能就可以了。就寫到這了,改天有空再接著灌。 |
|
來自: wwwijhyt圖書館 > 《程序設計》