首先說一下OllyDbg的界面,如下圖所示
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxiejpXTwsmeOFTT6hFMG1mYw50MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4EzNyMDOwIjM2EDOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
下面依次介紹:
- 反彙編面闆:有四列,從左到右依次為:位址(Address),機器碼(Hex dump),反彙編代碼(Disassembly),注釋(Comment)
- 資訊面闆:在進行動态跟蹤時,資訊面闆視窗(Information window)将顯示與指令相關的各寄存器的值,API函數調用提示和跳轉資訊提示等資訊。
- 資料面闆:顯示程式在記憶體中的資料,第一列是資料所處的位址,第二列是資料的十六進制顯示,第三列是對應的ASCII碼顯示。
- 寄存器面闆:顯示了CPU各個寄存器的值。
- 棧面闆視窗:顯示目前棧的資料資訊,push入棧,pop出棧。棧用來進行參數傳遞以及儲存變量。更詳細的功能請參考《彙編語言》
如何使用OllyDbg開始調試程式
首先,設定OllyDbg的斷點,讓加載的程式在程式入口中斷。運作OLLyDbg,單擊“Options”-“Debugging options”選項,單擊“Event”标簽,一般設定于“WinMain”處。
加載一個程式有兩種方式:
- 第一種是通過 GreatProcess 建立一個調試程序。單擊菜單項“File”-“open”或按“F3”鍵打開目标檔案,就調用 GreatProcess 建立了一個調試程序,OllyDbg 将收到目标程序所發送的調試事件資訊,對其子程式的調試時間不予理睬。
- 第二種是将OllyDbg附加到一個正在進行的程序上,該方法通過 DebugActiveProcess 函數可以将調試器捆綁到一個正在運作的程式上的特點,如果執行成功,效果類似第一種方法。單擊菜單項“File”-“Attach”,打開附加對話框,選中正在運作的程序,按下“Attach”,即可附加目标程序。這時,程式會在 Ntdll.dll 的 DbgBreakPoint 處。按下“F9”或“shift+F9”繼續運作程式。
一些快捷鍵
快捷鍵 | 功能 |
---|---|
F7 | 單步步進,遇到call指令跟進 |
F8 | 單步步進,遇到call指令路過,不跟進 |
Ctrl+F9 | 直到出現 ret 指令時中斷 |
Alt+F9 | 若進入程式領空,按下後可立刻傳回應用程式領空 |
F9 | 運作程式 |
F2 | 設定斷點(INT 3 斷點) |