程式扎記: [ OllyDbg 教學 ] 第一卷 入門 : 第一篇 - 認識 OllyDbg

標籤

2011年6月10日 星期五

[ OllyDbg 教學 ] 第一卷 入門 : 第一篇 - 認識 OllyDbg

參考自 看雪學院 - OllyDB入門教學 
OllyDBG 的安裝與組態 : 
OllyDBG 1.10 版的發佈版本是個 ZIP 壓縮包,只要解壓到一個目錄下,執行 OllyDBG.exe 就可以了。中文化版的發佈版本是個 RAR 壓縮包,同樣只需解壓到一個目錄下執行 OllyDBG.exe 即可. 底下是打開後的視窗配置 : 
 

繁體版可以到下面下載 : 

[軟體名稱] OllyDBG V1.10 (OllyICE - 2008.1.1)
[軟體語言] 繁體中文
[檔案大小] 2.43 MB (2,557,717 位元組)
[官方網站] http://www.ollydbg.de/
[檔案來源] http://www.pediy.com/tools/Debuggers.htm
[存放空間] HTTP
[軟體簡介] 免安裝

OllyDBG 中各個視窗的功能如上圖. 接著簡單解釋一下各個視窗的功能 : 
- 反編譯組語視窗 
顯示被除錯程式的反彙編代碼,標題欄上的位址、HEX 資料、反彙編、注解可以通過在視窗中右擊出現的選單 介面選項->隱藏標題 或 顯示標題 來進行切換是否顯示。用滑鼠左鍵點擊注解標籤可以切換注解顯示的模式.

- 暫存器與旗標視窗 
顯示目前所選執行緒的 CPU 暫存器內容。同樣點擊標籤 暫存器 (FPU) 可以切換顯示暫存器的模式。

- 追蹤訊息視窗 
顯示反彙編視窗中選中的第一個指令的參數及一些跳轉目的位址、字串等。

- 記憶體內容視窗 
顯示記憶體或檔案的內容。右鍵選單可用於切換顯示模式。

- 堆疊視窗 
顯示目前執行緒的堆疊

啟動後我們要把外掛程式及 UDD 的目錄組態為絕對路徑,點擊選單上的 選項->介面 (Options->Appearance),將會出來一個介面選項的對話框,我們點擊其中的目錄標籤 : 
 

因為我這裡是把 OllyDBG 解壓在 D:\_AV Tools\ollydbg110 目錄下,所以相應的 UDD 目錄及外掛程式目錄按圖上組態。還有一個常用到的標籤就是上圖後面那個字型,在這裡你可以變更 OllyDBG 中顯示的字型。上圖中其它的選項可以保留為預設,若有需要也可以自己修改。修改完以後點擊確定,跳出一個對話框,說我們變更了外掛程式路徑,要重新啟動 OllyDBG。在這個對話框上點確定,重新啟動一下 OllyDBG,我們再到介面選項中看一下,會發現我們原先設定好的路徑都已儲存了。有人可能知道外掛程式的作用,但對那個 UDD 目錄不清楚。我這簡單解釋一下 : 這個 UDD 目錄的作用是儲存你除錯的工作。比如你除錯一個軟體,設定了斷點,加入了注解,一次沒做完,這時 OllyDBG 就會把你所做的工作儲存到這個 UDD 目錄,以便你下次除錯時可以繼續以前的工作。如果不設定這個 UDD 目錄,OllyDBG 預設是在其安裝目錄下儲存這些後綴名為 udd 的檔案,時間長了就會顯的很亂,所以還是建議專門設定一個目錄來儲存這些檔案. 

另外一個重要的選項就是除錯選項,可通過選單 選項->除錯設定 (Options->Debugging options) 來組態 : 
 

新手一般不需變更這裡的選項,預設已組態好,可以直接使用。建議在對 OllyDBG 已比較熟的情況下再來進行組態。上面那個異常標籤中的選項經常會在脫殼中用到,建議在有一定除錯基礎後學 脫殼(Unpack) 時再組態這裡. 
除了直接啟動 OllyDBG 來除錯外,我們還可以把 OllyDBG 新增到資源管理器右鍵選單,這樣我們就可以直接在 .exe 及 .dll 檔案上點右鍵選取「用Ollydbg開啟」選單來進行除錯。要把 OllyDBG 新增到資源管理器右鍵選單,只需點選單 選項->新增到瀏覽器 (Options->Add to explorer),將會出現一個對話框,先點擊「加入 Ollydbg 到系統資源管理器選單」,再點擊「完成」按鈕即可。要從右鍵選單中移除也很簡單,還是這個對話框,點擊「從系統資源管理器選單移除 Ollydbg」,再點擊「完成」就行了. 
OllyDBG 支援外掛程式功能,外掛程式的安裝也很簡單,只要把下載的外掛程式(一般是個 DLL 檔案)複製到 OllyDBG 安裝目錄下的 PLUGIN 目錄中就可以了,OllyDBG 啟動時會自動識別。要注意的是 OllyDBG 1.10 對外掛程式的個數有限制,最多不能超過 32 個,否則會出錯。建議外掛程式不要加入的太多. 到這裡基本組態就完成了,OllyDBG 把所有組態都放在安裝目錄下的 ollydbg.ini 檔案中. 

基本除錯方法 : 
OllyDBG 有三種模式來載入程式進行除錯,一種是點擊選單 檔案->開啟 (快捷鍵是 F3)來開啟一個可執行檔案進行除錯,另一種是點擊選單 檔案->附加 來附加到一個已執行的進程上進行除錯。注意這裡要附加的程式必須已執行。第三種就是用右鍵選單來載入程式. 一般情況下我們選第一種模式。比如我們選取一個 TTV.exe 來除錯,通過選單 檔案->開啟 來載入這個程式,OllyDBG 中顯示的內容將會是這樣 : 
 

除錯中我們經常要用到的快捷鍵有這些 : 
F2:設定斷點,只要在游標定位的位置(上圖中灰色條)按F2鍵即可 (變成紅色背景),再按一次F2鍵則會移除斷點。(相當於 SoftICE 中的 F9
F8:單步步過。每按一次這個鍵執行一條反彙編視窗中的一條指令,遇到 CALL 等子程式不進入其代碼。(相當於 SoftICE 中的 F10
F7:單步步入。功能同單步步過(F8)類似,區別是遇到 CALL 等子程式時會進入其中,進入後首先會停留在子程式的第一條指令上。(相當於 SoftICE 中的 F8
F4:執行到選取位置。作用就是直接執行到游標所在位置處暫停。(相當於 SoftICE 中的 F7
F9:執行。按下這個鍵如果沒有設定相應斷點的話,被除錯的程式將直接開始執行。(相當於 SoftICE 中的 F5
CTR+F9:執行到返回。此指令在執行到一個 ret (返回指令)指令時暫停,常用於從系統領空返回到我們除錯的程式領空。(相當於 SoftICE 中的 F12
ALT+F9:執行到使用者代碼。可用於從系統領空快速返回到我們除錯的程式領空。(相當於 SoftICE 中的 F11

上面提到的幾個快捷鍵對於一般的除錯基本上已夠用了。要開始除錯只需設定好斷點,找到你感興趣的代碼段再按 F8 或 F7 鍵來一條條分析指令功能就可以了.

1 則留言:

  1. 版大您好,我有一個exe壓縮檔,忘記壓縮密碼,可以請您幫忙用od看看嗎??
    如果可以請您回覆給我,我並將檔案寄給您好嗎??
    david_lin1214@hotmail.com
    先跟您說聲謝謝了!!

    david

    回覆刪除

網誌存檔

關於我自己

我的相片
Where there is a will, there is a way!