1. 程式人生 > >Android手機病毒分析(一)

Android手機病毒分析(一)

筆者剛剛做過三個月的手機病毒分析師,主要工作做的就是靜態分析可疑的手機APP,找出這些手機應用侵害手機使用者的證據,現在想把這些工作總結一下,分享出來。不足之處,歡迎指正。(這裡的病毒不是我們一般意義上的病毒,而是侵害到手機使用者的惡意APP。)

逆向

我們都知道,Android與其他的Java不同是執行在Dalvik虛擬機器上的, 其編譯過程如圖所示,靜態分析可以將apk反編譯為Smali檔案,也可以進一步反編譯為Java檔案。這裡我們直接看可讀性更高的Java程式碼。
jvm與Dalvik
反編譯Android的有多種方式,可以用Android Killer、Android逆向助手。也可以用dex2jar等工具手動反編譯,現在我們具體講一下。首先我們需要的工具有apktool,Dex2jar,jd-gui,AXMLPrinter2。然後依次在使用命令列執行以下指令。
1)apktool.jar d xxx.apk(把apk檔案解壓)
2)dex2jar.bat class.dex(把.dex檔案轉換為.jar檔案,使用jd-gui檔案開啟)
3)java -jar AXMLPrinter2.jar xxx.xml > xxx.txt(反編譯xml檔案)
4)如果有.so檔案可以用idapro來進行讀取。
另外針對有些apk進行了加固,需要進行脫殼。這一部分需要專門進行學習。這裡不再贅述。