初识Ghidra
目錄
- 預備知識
- 1.關于Ghidra
- 實驗目的
- 實驗環境
- 實驗步驟一
- 實驗步驟二
- 實驗步驟三
預備知識
1.關于Ghidra
2019年3月6日,美國國家安全局(NSA)免費向公眾開放其逆向工程工具GHIDRA,今年三月份舉辦的2019年RSA大會上,美國國家安全局首次公開介紹并演示了這款軟件的使用,源碼將于今年3月登陸代碼托管平臺GitHub。NSA指出,GHIDRA框架的本質,是一款適用于Windows、Mac和Linux平臺的反匯編程序。它能夠將可執行文件分解為匯編代碼,以進行分析。對于希望深入了解惡意軟件,以查看其工作原理的安全研究人員來說,反匯編工具是相當實用的。該軟件采用Java來編寫,因此能夠在安裝了Java運行時環境(JRE)的任何系統上運行。交互式GUI使得逆向工程師能夠利用在各個平臺上運行的功能,并支持各種處理器指令集。
實驗目的
通過該實驗了解NSA發布的軟件安全領域的神器Ghidra的使用。
實驗環境
服務器:kali,IP地址:隨機分配
輔助工具:Ghidra
工具請在實驗機內下載使用:http://tools.hetianlab.com/tools/ghidra.zip
實驗步驟一
需要提一點,java版本11.0以上才能使用,有些小伙伴要是不能使用,可能會是這個原因。
Ghidra跨平臺,這次我們在kali里嘗試。Kali的麒麟配上Ghidra的龍是不是很配呢~
創建文件。
使用nano寫一個hello world:
編譯成名為1的文件:
啟動Ghidra。
先直接告訴大家一個坑:
執行Ghidra的啟動腳本,反編譯腳本時會提示權限問題,為了方便,直接給Ghidra文件夾遞歸777權限。
接下來進入文件夾,啟動shell腳本:
就會出現歡迎界面:
在界面左上角點擊new project:
輸入路徑和名字:
點擊finish然后import file:
在出現的列表中選中之前編譯出的可執行文件:
點擊ok。
會自動分析一些必要的信息:
點擊ok,然后雙擊1。
實驗步驟二
此時進入了程序主界面:
點擊yes會進行自動分析,會出現需要分析的選項,直接默認就可以:
點擊analyze,很快就分析好了:
介紹最重要的兩個窗口:中間和右邊的:
中間的是匯編。
右邊的偽代碼。
最上面是快捷鍵:
比較常用的應該是綠色向下的箭頭,用來展示函數調用:
還有展示內存布局的窗口:
還能展示寄存器值及狀態:
左邊可以快速查找符號表、段表等:
這種布局應該是向od和ida致敬吧。
實驗步驟三
菜單欄。
Navigation下面主要介紹快捷鍵打開一些窗口:
Search可以用于搜索:
程序段和內存的值都是可以搜索的,而且可以設定搜索區域:
Windows下就有很多有用的了:
比如Comments:
調出反匯編窗口:
函數調用圖:
函數圖:
函數視窗:
比如我們選中了main函數,在反編譯窗口中就可以看到偽代碼,可以看到和我們直接寫的1.c的源碼差不多了。
還有python的功能,這個功能具體能做什么還沒仔細研究過,可能和IDA的python差不多吧,打印個hello world試試水~
符號引用,符號表:
其實最厲害的是腳本管理器。
可以看到針對ARM的:
針對IOS的:
甚至還有針對工控的:
這一部分的功能暫時還不知道怎么用,可能是用來幫助自動化分析的。這種腳本以插件的形式理論上可以無限擴展Ghidra的功能,而且個人猜測,很有可能NSA在釋出Ghidra時已經去掉了很多敏感腳本(從工控這一塊都可以看出),如果Vxworks都有,那些施耐德,西門子的工控理論上更是不在話下。
后門?
據大佬說,Ghidra可能有后門,但是NSA堅稱這是個BUG。
好吧,不管這是啥,我們還是把這個bug解決了安心點。
將support目錄下的launch.sh的150行的*改為本地環回地址127.0.0.1。
如上圖所示即可。
總結
- 上一篇: android耳机上报流程,Androi
- 下一篇: 六年级小学生做的个人网站