在逆向工程領域有許多優秀的工具可以使用(比如IDA Pro和OllyDbg),但現在我們有一個新的選擇-Ghidra。Ghidra是由美國國家安全局(美國主要的間諜機構,負責開發Stuxnet惡意軟體和EternalBlue的機構)開發的,是世界上頂級的間諜機構之一。
我們第一次知道Ghidra是在2017年的維基解密Vault 7洩密事件中,它在2019年春天作為免費和開源(根據Apache許可證)軟體釋出。它是一個優秀的逆向工程工具,與IDA Pro不同,它是免費的!
Ghidra幾乎具有Ida Pro的所有功能,是以如果你從事逆向工程,Ghidra是一個很好的選擇。
#下載下傳Ghidra
你可以從官網下載下傳:https://ghidra-sre.org/,由于它是用Java編寫的,是以幾乎所有的平台都可以使用,包括Windows、Mac OS和Linux。這裡以Windows 10來示範Ghidra。
由于Ghidra是一個Java應用程式,需要JDK 11以上版本。JDK請從Oracle下載下傳安裝。
#啟動Ghidra
下載下傳并解壓後,通過輕按兩下ghidraRun.bat來啟動它
同意協定
然後顯示這個視窗,開始你的第一個項目。項目類似于檔案夾,可以包含你正在處理的多個檔案。
點選"File"-->"New Project" 建立項目
這将打開一個像下面這樣的視窗。Ghidra的一個特點是能夠在一個檔案或項目上進行協作。在這種情況下,點選 "Shared Project"。在這裡,我們不需要共享,是以選擇 "No-Shared Project"。然後點選 "Next"。
選擇項目儲存位置和輸入項目名字,點"Finish"。
接下來,我們需要導入一個檔案。這是你要分析的軟體或惡意軟體。"File" -->"Import File"。
選擇要導入的二進制檔案,然後導入
選擇導入後,Ghidra會提示檔案的基本資訊,然後點"OK"
然後,Ghidra會顯示一個像下面這樣的視窗,顯示有關該檔案的關鍵資訊。
接下來,會顯示你的項目和導入的檔案。你可以輕按兩下檔案或将檔案拖到上面的綠色Ghidra龍圖示上開始進行分析。
然後Ghidra開始工作。它在中心清單視窗顯示程式的彙編代碼,然後詢問你是否要分析該檔案。點選 "Yes"。
Ghidra将分析你的檔案,并顯示類似于下面四個視窗的資訊。
視窗1是符号樹(Symbol Tree)
此視窗允許你檢視二進制檔案的導入、導出、函數、标簽、類和命名空間。
視窗2是清單視窗
這個視窗顯示的是彙編語言的代碼分解
視窗3 是反編譯器視窗
反編譯器使你能夠看到進階語言可能會是什麼樣子
視窗4是資料類型管理器視窗
資料類型管理器允許你檢視所有已定義的資料類型。
現在,你已經準備好并可以開始分析和逆向這個檔案了!
#本節概括
惡意軟體逆向工程是網絡安全學科中最高水準的技能之一,也是收入最高的技能之一。 Ghidra是一款出色的逆向工程工具,幾乎可以在任何平台上運作,而且成本效益非常高(免費)。在這個逆向工程系列中,我們将使用這個來自美國國家安全局的工具對多個惡意軟體進行逆向工程,從簡到難。