本文是記錄自己學習IDA的一些總結與歸納,并将其展現成具體功能,便于複習與交流,有不對之處望大家包容并指出,歡迎大家留言收藏
本篇是IDA靜态分析的第一篇, 本文講解非常簡單的靜态分析so包 , 以便于熟悉IDA
環境
- IDA pro 7.0
- so包是32位
- 附加GitHub位址下載下傳apk
- 如果出現其他問題可以參考IDA常見問題
開始
- 通過分析apk, 我們知道, java層調用了那些本地函數 , 實際運用也是如果 , 我們需要先分析java層代碼 , 本文我們就是找到本地函數怎麼對比字元串
- 将apk包提取成檔案夾形式
- 打開IDA 到一下界面 ,我們選擇new
- new 打開一個新的檔案
- go 打開之前打開過得曆史資料
- Previous 最近用過的檔案
- 找到我們項目中的so檔案,輕按兩下打開,一路确定
- 這時候ida正式打開so檔案 ,顯示出各個子產品,我們找到functions window , 顧名思義 , 是方法區 ,然後搜尋我們剛剛需要找的函數名(快捷鍵 ctrl + f ) ,輕按兩下打開函數
- 這是這時候視圖區就定位到目前函數
- 點選函數名, 按F5 (注意:需要插件,很多ida都是自動內建的) 有确定按确定 , 就會轉成c函數
- 這時候,有一點c基礎的都大概能看得到基本邏輯 ,就是拿v5 和 password做對比,但是很别扭,為什麼參數都是int類型的 , 大家知道jni函數定義規則,由于ida并不能辨識參數類型,是以我們可以修改參數類型(點選參數類型按y)
- 最終成為如下圖,是不是非常親切
總結
本文講述以下幾點
- 靜态檢視so包
- 并找到指定函數
- 修改函數類型
感謝
歡迎大家點贊分享收藏
IDA學習專欄