1. 程式人生 > >使用IDA_Pro分析Android程式

使用IDA_Pro分析Android程式

使用IDA_Pro分析Android程式

(作者:Baron_wu 禁止轉載)
首先安裝IDA_Pro(安裝方法自行查閱)
之後將apk應用字尾改為zip,然後解壓,開啟IDA_Pro進入空的工作臺,將解壓後的資料夾內的classes.dex拖入工作臺中,之後便開始分析程式。
在這裡插入圖片描述
在使用apktool分析程式時我們得到了fail的id值(具體方法請檢視:使用aptool分析Android程式 https://blog.csdn.net/Baron_wu/article/details/83548297 ):
在這裡插入圖片描述
在IDA_Pro工作臺按alt+t會出現搜尋介面 ,之後搜尋fail的id編號。在這裡插入圖片描述
如下


在這裡插入圖片描述
然後在其附近可找到對應的if-nez所在的行號。
在這裡插入圖片描述
如下,即為39。
在這裡插入圖片描述

使用C32asm編輯器修改對應的編碼。

Nez對應39 ,檢視Dalvik-Bytecode表可以找到nez對應39,eqz對應38。 將nez改為eqz
即將39改為38,儲存後退出。

在這裡插入圖片描述

APK程式安裝時會呼叫dexopt進行優化和驗證,dex檔案中的DexHeader頭checksum欄位標識了dex檔案的合法性,被篡改過的dex檔案在驗證時計算checksum會失敗,這樣會導致程式安裝失敗,因此再打包安裝程式前需要重新計算並寫回checksum。這裡我們使用DexFixer這個工具,執行DexFixer,將修改過的classes.dex檔案拖入就會出現如圖所示的內容,classes.dex就修改完了。

在這裡插入圖片描述
之後刪除MATE-INF資料夾在這裡插入圖片描述
然後將之前解壓的資料夾壓縮為zip,再將其後綴改為apk。
之後需要對app重新進行數字簽名:

在這裡插入圖片描述
之後將生成的apk程式拖到虛擬機器內便可以執行:
在這裡插入圖片描述
到此分析完畢。