2018年3月23日 星期五

IDA - 程式碼圖形控制

我們在軟體逆向工程時,都會先在IDA靜態分析,因為它的圖形控制的功能可以讓我們比較快速就可以了解軟體的狀況,因此就需要知道圖形控制的功能。

1. API (Application Programming Interface)參數分析:IDA 會分析每個API的參數,並且對已知的參數改成字串的名稱,如果對於它的命名不喜歡,也可以自定義的修改名稱。

    a. API參數命名。

    b. API 的第一個參數。

    c. 滑鼠移到Command的字串上,就會顯示它的資料。



2. API參數與全域變數的差別:

    a. API參數會透過arg_x來顯示,其中x是代表第幾個參數,如果是第一個參數就會是arg_0,第二個就是arg_1,以此類推。

    b. 全域變數則會顯示”cs:參數名稱”,如果名稱IDA分析不出來,就會顯示一個位址,然後可以再全域變數上面點擊左鍵,可以看到詳細的位址資訊(c)。






3. 條件流程控制:這個功能是IDA在軟體分析上,算是相當重要的功能,它會將所有條件式,畫成流程圖的樣子,這樣也是比較直觀的表示。

    a. 紅色的線代表這個條件式是 False (不會觸發JMP條件)的狀態。

    b. 綠色的線代表這個條件式是 True (會觸發JMP條件)的狀態。