跟羽夏學 Ghidra ——調試
- 2022 年 9 月 20 日
- 筆記
- 跟羽夏學 Ghidra, 逆向
寫在前面
此系列是本人一個字一個字碼出來的,包括示例和實驗截圖。本人非電腦專業,可能對本教程涉及的事物沒有了解的足夠深入,如有錯誤,歡迎批評指正。 如有好的建議,歡迎回饋。碼字不易,如果本篇文章有幫助你的,如有閑錢,可以打賞支援我的創作。如想轉載,請把我的轉載資訊附在文章後面,並聲明我的個人資訊和本人部落格地址即可,但必須事先通知我。
你如果是從中間插過來看的,請仔細閱讀 跟羽夏學 Ghidra ——簡述 ,方便學習本教程。請認準 部落格園 的 寂靜的羽夏 ,目前僅在該平台發布。
前言
在逆向的過程中,有時候靜態分析無法下手。動態分析也可以驗證靜態分析的結果,這就是調試。調試是任何一名程式設計師所必須的技能,不會調試就是一名不合格的程式設計師。
本篇不會介紹如何調試,只是介紹如何使用Ghidra
所提供的調試器,對我們的分析文件進行調試,縮短適應時間。注意:不要對惡意軟體等在真機上進行調試,可以通過在虛擬機遠程調試,不過本篇不會詳細涉及,只會一筆帶過。
簡介
下面我們學習如何進入調試器:
打開Ghidra
之後,點擊上圖中的瓢蟲按鈕,就會啟用一個調試器,如下圖所示:
可以看到,菜單工具和CodeBrowser
有很多是一樣的,但是布局有些不同且多了只有調試特有的窗體。
窗口介紹
下面我們熟悉一下Ghidra
調試器的特有窗口的作用。
Debugger Targets
該窗口包含建立與調試器的連接或啟動新的調試會話:
也就是說,當我們調試一個程式的時候,這裡就會有一個項目。
Objects
該窗口顯示正在調試的活動調試對象。從這裡可以暫停、單步等調試相關的操作。
可以說,這個窗口還是相當重要的呢。
其他
在底部記憶體區域窗口、堆棧窗口和標準控制台窗口以及監視窗口:
通過這些窗口,我們可以分析記憶體布局,堆棧情況以及關注的地址的值的變化。
在它的右側,還有執行緒和時間窗口:
在右側,有三個十分重要的窗口——斷點、模組和暫存器:
至於其他窗口,感興趣的話自行探索。
開始調試
下面開始學習如何調試。首先,和CodeBrowser
一樣,首次打開分析需要打開想要逆向的文件:
選中turorial
之後,點擊確定。我們看到了工具欄有幾個圖標不再是禁用狀態,Listing
窗口也有了該程式的反彙編。
看向工具欄,有一個瓢蟲圖標,那個就是用來調試的:
這裡面有好幾種方式,具體差別我不算特別清楚,自行搜索。
選中Debug tutorial in GDB locally IN-VM
之後,就啟用調試器,最終介面如下:
小結
本篇我們(部落格園寂靜的羽夏)介紹了Ghidra
的調試器,了解了具體布局。我相信用過其他圖形化調試器(比如KDB
)的人都清楚如何使用了,要想熟練應用,還請多加練習。
下一篇
跟羽夏學 Ghidra ——腳本