2018年5月31日 星期四

Android IDA Pro Debugger

在前一篇有介紹Android Studio smalidea 分析APP的行為,這次是使用IDA Pro來完成
Debugger,並且從中了解不同的工具的實作差異。
準備工具:

1. IDA Pro v6.6 以上

2. Android 模擬器 (可使用Android Studio內建的)

一、解壓縮apk

使用7-zip工具,將apk檔案解壓縮,然後可以看到主程式classes.dex。


二、開啟IDA Pro 載入Dex程式碼

開啟IDA Pro之後,將classes.dex拖曳到IDA Pro視窗裡面。



三、安裝APP到模擬器

將要Debugger的APP安裝到模擬器上,並且把APP執行起來。



四、設定IDA Pro Debugger環境

左鍵點擊工具欄上的Debugger -> Debugger options ,會看到Debugger setup的視窗,這邊的設定都是預設的。



然後再選擇Set specific options,會跳出Dalvik debugger configuration的視窗。



設定ADB executable的路徑。



五、IDA Pro Debugger APP

從工具列選擇Debugger -> Attach to process,然後找到要Debugger的APP,並按下OK,此時模擬器上的APP並不能運作,因為APP的執行流程給IDA Pro控制了,因此要再IDA Pro上按快捷鍵F9,讓執行流程重新回到模擬器的APP。



在程式碼的區塊裡面按下快捷鍵F2 (會顯示紅色的區塊),可以設定中斷點,等下在模擬器上面按下APP的Button的按鈕,就會被中斷到這裡,並且觀察參數的訊息。



在APP上按下數字鍵6 (Button 6),這時候IDA Pro 會接管APP,這時可以觀察參數。



在工具列上選擇Debugger -> Debugger windows –> Watch view,然後會跳出Watch view的視窗,在視窗裡面按下右鍵,選擇Add watch,輸入(Object*)view (參數的格式可以是Object*、String、char*、int,如果參數顯示不出來可以換一換不同的格式)。



從參數裡面,可以看出剛剛按下的是數字鍵6,因此可以從Debugger APP來了解程式的運作行為,這是非常有趣的一門技術 。