今天會嘗試使用 Ghidra 這個逆向工具來逆向昨天那支很簡單的 Hello world 程式,流程其實意外的不複雜 XD,那我們就開始吧~
最有名的應該是 IDA Pro 吧?但是那個 license 的費用實在不太親民。除此之外比較常聽到的免費工具有 Ghidra、x64dbg 等等。
我這次選擇使用 Ghidra 主要還是因為開源免費,再者我都沒用過沒有特別偏好,總之就先用這個看看 XD
Ref: https://github.com/NationalSecurityAgency/ghidra#install
./ghidraRun
啟動之後,左上角裡面有個 New Project
,後面就取個名字就可以建好專案。
建好專案之後把昨天的 hello.out
拖曳進去資料夾中,看起來就會像這樣:
之後點兩下 hello.out
,就會使用 CodeBrowser 打開這個檔案,它會問你要不要分析這個檔案,選 Yes
-> Analyze
就可以。
按下去之後馬上就分析好了:
中間的區域是反組譯出來的組合語言,右邊的小區塊是反編譯出來的高階語言,可以看到即使和原先的程式不完全一樣,但要看出原本的功能是沒有問題的。
今天簡單操作了一下 Ghidra,老實說沒做什麼事 XD,當然實務上逆向的程式都不會這麼簡單,裡面很多功能我也還不了解,不過也不用擔心,明天我們一樣會實際找題目來解!