Android APK文件的逆向反編譯


APK是Android Package的縮寫,即Android安裝包(APK)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。APK文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。

     

APK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是Dalvik VM executes的簡稱,即Android Dalvik執行程序,並非Java ME的字節碼而是Dalvik字節碼。

     

APK反編譯就是通過使用APK反編譯工具將APK文件中的源文件和資源反編譯出來,得到的源文件和資源文件可以進行處理后再進行編譯,以達到系統解剖分析,個性化定制,漢化等目的。

     

APK反編譯有很多工具,本次實驗中我們使用dex2jar工具。dex2jar 是一個用來將 Android 的 Dalvik Executable (.dex) format 文件轉成 Java 類文件的工具。該項目地址是:http://code.google.com/p/dex2jar/

     

針對JAR包的java反編譯工具,我們使用jd-gui工具。jd-gui是針對Java平台的反編譯工具,它可以將Java的字節碼文件(class文件)反編譯獲得java文件。反編譯得到的代碼是非常接近於源代碼,但是或多或少與源代碼有一些差異,這點需要使用時注意。

實驗步驟一

文件解壓     

      進入實驗環境,在C盤根目錄“APK逆向分析實驗”文件夾下找到SD-Booster_1.5.2.apk文件。將文件重命名為zip后綴。然后使用WinRAR程序將文件解壓。

 

 

實驗步驟二

獲得JAR包

      要從APK文件獲得JAR包需要使用專門的工具dex2jar。dex2jar 是一個用來將 Android 的 Dalvik Executable (.dex) format 文件轉成 Java 類文件的工具。

      首先在C盤根目錄“APK逆向分析實驗”文件夾下找到dex2jar-0.0.9.15.zip文件,將其解壓。

      將APK文件解壓獲得的classes.dex文件放到dex2jar解壓后的文件中。如下圖示。

 

 

然后在該目錄下進入Windows命令行窗口。輸入命令:

      d2j-dex2jar classes.dex

      執行完成后,在相同目錄下得到JAR包。

 

 

實驗步驟三

源代碼分析

      要從JAR包進行源代碼分析,需要使用反編譯工具jd-gui。jd-gui是針對Java平台的反編譯工具,它可以將Java的字節碼文件(class文件)反編譯獲得java文件。

      首先在C盤根目錄“APK逆向分析實驗”文件夾下找到jd-gui文件,雙擊打開。將JAR包拖入jd-gui窗口,將自動對JAR包進行反編譯。

      此時,你可以從jd-gui對JAR包中的文件逐個分析

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM