OllyDBG - 第一章 | 認識OllyDBG
這篇將要開始介紹OD的使用,希望透過一步一步的學習和實作,可以讓自己對於OD工具有一定了解以及增加反匯編的一些知識和經驗,在未來實作應用上可以得心應手。
OllyDBG 窗口介紹

OllyDBG 中各個視窗的功能如上圖:
- 反匯編視窗:顯示被除錯程式的反匯編代碼,標題欄上的位址、HEX 資料、反匯編、注解可以通過在視窗中右擊出現的選單 介面選項->隱藏標題 或 顯示標題 來進行切換是否顯示。用滑鼠左鍵點擊注解標籤可以切換注解顯示的模式。
- 暫存器視窗:顯示目前所選執行緒的 CPU 暫存器內容。同樣點擊標籤 暫存器 (FPU) 可以切換顯示暫存器的模式。
- 資訊視窗:顯示反匯編視窗中選中的第一個指令的參數及一些跳轉目的位址、字串等。
- 資料視窗:顯示記憶體或檔案的內容。右鍵選單可用於切換顯示模式。
- 堆疊視窗:顯示目前執行緒的堆疊。
要調整上面各個視窗的大小的話,只需左鍵按住邊框拖曳,等調整好了,重新啟動一下 OllyDBG 就可以生效了。
設定UDD、外掛路徑
啟動後我們要把外掛程式及UDD的目錄組態為絕對路徑,點擊選單上的 選項 -> 介面選項,將會出來一個介面選項的對話框,我們點擊其中的目錄標籤:(如果目錄標籤為空白,先點選其他標籤再點回來即可)

針對自己OllyDBG的路徑位置去做設定,範例:(依照自己的路徑設定)
1 | // UDD路徑: |
註:UDD目錄:是用於儲存你的OD過程,比如針對某一程式下斷點,記憶體紀錄⋯等等,可以將其儲存以便下次再進行分析。
字型調整:

除錯選項:
選項 -> 除錯選項,新手一般不需變更這裡的選項,預設已組態好,可以直接使用。建議在對OllyDBG已比較熟的情況下再來進行組態。上面那個異常標籤中的選項經常會在脫殼中用到,建議在有一定除錯基礎後學脫殼時再組態這裡。

右鍵選單
除了直接啟動OllyDBG來除錯外,我們還可以把OllyDBG新增到資源管理器右鍵選單,這樣我們就可以直接在 .exe 及 .dll 檔案上點右鍵選取「用Ollydbg開啟」選單來進行除錯。要把OllyDBG新增到資源管理器右鍵選單,只需點選單 選項 -> 新增到右鍵功能表,將會出現一個對話框,先點擊「加入 Ollydbg 到系統資源管理器選單」,再點擊「完成」按鈕即可。要從右鍵選單中移除也很簡單,還是這個對話框,點擊「從系統資源管理器選單移除 Ollydbg」,再點擊「完成」就行了。

外掛程式
OllyDBG支援外掛程式功能,外掛程式的安裝也很簡單,只要把下載的外掛程式(一般是個 DLL 檔案)複製到OllyDBG安裝目錄下的 PLUGIN 目錄中就可以了,OllyDBG啟動時會自動識別。要注意的是OllyDBG 1.10對外掛程式的個數有限制,最多不能超過 32 個,否則會出錯。建議外掛程式不要加入的太多。
到這裡基本組態就完成了,OllyDBG把所有組態都放在安裝目錄下的 ollydbg.ini 檔案中
基本除錯方法
OllyDBG有三種模式來載入程式進行除錯:
- 一種是點擊選單 檔案 -> 開啟 (快捷鍵是 F3)來開啟一個可執行檔案進行除錯。
- 另一種是點擊選單 檔案 -> 附加 來附加到一個已執行的進程上進行除錯。注意這裡要附加的程式必須已執行。
- 第三種就是用右鍵選單來載入程式(不知這種算不算)。
一般情況下我們選第一種模式。
比如我們選取一個 找call練習.exe 來除錯,通過選單 檔案 -> 開啟 來載入這個程式,OllyDBG中顯示的內容將會如下圖:

註:開啟過程如果出現
在模組'USER32'中OllyICE遇到幾個損壞的斷點....的視窗問題,在按下確定後,在按下快捷鍵Alt + B將斷點做移除即可。
基本快捷鍵
(除錯中我們經常要用到的快捷鍵)
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)
額外常用快捷鍵
- 開啟一個新的可執行程式 (
F3) - 重新執行當前除錯的程式 (
Ctrl+F2) - 當前除錯的程式 (
Alt+F2) - 執行選取的程式進行除錯 (
F9) - 暫時停止被除錯程式的執行 (
F12) - 單步進入被除錯程式的
Call中 (F7) - 步過被除錯程式的
Call(F8) - 跟入被除錯程式的
Call中 (Ctrl+F11) - 追蹤時略過被除錯程式的
Call(Ctrl+F12) - 執行直到返回 (
Ctrl+F9) - 顯示記錄視窗 (
Alt+L) - 顯示模組視窗 (
Alt+E) - 顯示記憶體視窗 (
Alt+M) - 顯示 CPU 視窗 (
Alt+C) - 顯示補綴視窗 (
Ctrl+P) - 顯示呼叫堆疊 (
Alt+K) - 顯示斷點視窗 (
Alt+B) - 開啟除錯選項視窗 (
Alt+O)
註:快捷鍵可能有重複或是解釋可能有所不同,建議還是實際操作過自行體會。
註:以上參考了
看雪論壇 的 OllyDBG 入门系列(一)-认识OllyDBG
