技術博文2016/09/14

【APP開發】android 反編譯apk檔案

安裝ApkTool工具,該工具可以解碼得到資原始檔,但不能得到Java原始檔。
安裝環境:需要安裝JRE1.6
1> 到http://code.google.com/p/android-apktool/下載apktool1.3.2.tar.bz2 和apktool-install-windows-2.2_r01-3.tar.bz2 檔案。解壓兩個檔案,然後把解壓後的檔案放在一起,如:c:\apktool
2> 在系統變數PATH中新增進aapt.exe,如:;c:\apktool\aapt.exe
3> 在DOS視窗下進入apktool.jar所在目錄。執行DOS命令:apktool d -s c:\soft\xxx.apk c:\soft\source。
命令格式:apktool d [opts] <file.apk> [dir]  中的d代表解碼,[opts]代表選項,-s選項代表不解碼原始檔。

Apktool工具只能反編譯成smali的中間程式碼檔案,這裏需要藉助另外一個開源工具Dex2Jar,該工具可以把dex檔案轉換成jar檔案。這個工具不能直接翻譯成java檔案,但是可以把dex檔案轉換成jar檔案
下載地址:http://code.google.com/p/dex2jar/。
1> 把APK安裝包中的classes.dex解壓到某個目錄下,如:c:\soft
2> 在DOS視窗下進入dex2jar.bat所在目錄,執行DOS命令:dex2jar.bat c:\soft\source\classes.dex c:\soft\source,命令生成classes.dex.dex2jar.jar檔案。

安裝jd-gui工具,該工具可以把jar檔案反編譯成Java原始檔
下載地址:http://java.decompiler.free.fr/jd-gui/downloads/jd-gui-0.3.3.windows.zip。
執行該軟體,直接開啟classes.dex.dex2jar.jar檔案即可看到java原始碼。

 本文來自新浪部落格