跟羽夏學 Ghidra ——初識
寫在前面
??此系列是本人一個字一個字碼出來的,包括示例和實驗截圖。本人非計算機專業,可能對本教程涉及的事物沒有了解的足夠深入,如有錯誤,歡迎批評指正。 如有好的建議,歡迎反饋。碼字不易,如果本篇文章有幫助你的,如有閑錢,可以打賞支持我的創作。如想轉載,請把我的轉載信息附在文章后面,并聲明我的個人信息和本人博客地址即可,但必須事先通知我。
你如果是從中間插過來看的,請仔細閱讀 跟羽夏學 Ghidra ——簡述 ,方便學習本教程。請認準 博客園 的 寂靜的羽夏 ,目前僅在該平臺發布。
目錄結構
??安裝軟件的第一眼,我們首先看一下它的軟件目錄結構:
docs
??包含有關Ghidra和如何使用它的支持文檔,該目錄包括兩個子目錄。首先,GhidraClass子目錄提供教學內容,幫助了解Ghidra。其次,languages子目錄描述了Ghidra的處理器規范語言SLEIGH。
Extensions
??包含有用的預構建擴展以及編寫Ghidra擴展的重要內容和信息。
GPL
??構成Ghidra框架一部分的一些組件不是由Ghidra團隊開發的,而是由GPL下發布的其他代碼組成。GPL目錄包含與此內容關聯的文件,包括許可信息。
licenses
??包含概述Ghidra各種第三方組件的適當和合法使用的文件。
server
??支持Ghidra服務器的安裝,這有助于協作SRE。本系列教程不會涉及該相關內容。
support
??作為Ghidra各種功能的集合。此外,如果您想進一步自定義您的工作環境(例如,創建Ghidra啟動腳本的快捷方式),也可以在這里找到Ghidra圖標。
初識
??當我們首次啟動Ghidra時,軟件應該是這樣滴:
??Tip是該軟件的提示信息,以幫助使用者入門使用該軟件。把它關掉,下面我們正式開始如何使用該軟件。
??Ghidra不像IDA,如果進行逆向操作,需要創建項目Project:
創建項目
??點擊New Project,下面開始新建項目:
??默認非共享項目,下一步:
??然后我們需要輸入項目名字,這個你隨意,我輸入WingSummerReverse,點擊結束按鈕,項目就創建好了:
??榆次同時,在項目目錄路徑下,會創建一個項目名字+.rep的文件夾:
添加文件
??下面我們需要添加編譯好的示例文件tutorial,如下所示:
??點擊Import File之后,我們選擇文件,點擊確定后會得到如下對話框:
??我們可以得知,該文件是ELF格式,對于該部分,我重點介紹一下:
??Language字段允許您指定反匯編過程中應使用的處理器模塊。Ghidra語言/編譯器規范可以由處理器類型、大小端規范(LE/BE)、位值(16/32/64)、處理器變量和編譯器ID(例如ARM:LE:32:v7:default)組成。在大多數情況下,Ghidra將根據從可執行文件頭讀取的信息選擇適當的處理器,不需要我們進行更改。
??Destination Folder字段用于選擇將顯示新導入文件的項目文件夾。默認情況下顯示頂級項目文件夾,但可以添加子文件夾來組織項目中導入的程序。
??Program Name是Ghidra用來指代項目中導入的二進制文件的名稱,包括在項目窗口中顯示的名稱。它默認為導入文件的名稱,但可以更改為更具描述性的名稱,不要被它的意思所迷惑。
??點擊確定,待Ghidra簡單分析后,就會獲得該文件的相關信息:
??如果你加載的文件是ShellCode的純二進制代碼文件,你會碰到這種情況:
??這就需要自行指定Language(該文件由“羽云十六進制編輯器”的匯編器生成Intel的32位匯編保存的文件):
??指定完,我們也可以指定基址等相關信息:
開始分析
??下面我們將開始入門如何逆向了,我們雙擊要逆向的內容:
??可以看到Running Tools多了一個龍頭,也就是所謂的CodeBrowser對話框。
??首次,Ghidra會詢問我們是否分析,直接Yes:
??然后又彈出一個窗體,這個是用來選擇要分析的條目,如果可執行文件過大,就需要挑幾個最關心的部分,直接默認即可。
??由于軟件特別小,很快就能分析完了,如下圖所示:
??從此,我們就踏入了使用Ghidra逆向的第一步。在之后的博文,我們將逐步揭開Ghidra的神秘面紗,熟悉并熟練使用它。下一篇將是十分重要的一部分,學會了它+訓練,你將掌握了Ghidra的使用,并具有能夠分析的二進制基礎能力。
下一篇
本文來自博客園,作者:寂靜的羽夏 ,一個熱愛計算機技術的菜鳥
轉載請注明原文鏈接:http://www.rzrgm.cn/wingsummer/p/16685486.html



浙公網安備 33010602011771號