天天看點

反編譯 Android APK

一、準備工具和環境

    1.apktool   百度雲:https://pan.baidu.com/s/16KIVax0YZD02MZsoGy7cUQ

    2.dex2jar   百度雲:https://pan.baidu.com/s/1-4I20pGpkpbTZOLhTNaWOw

    3.jd-gui     百度雲:https://pan.baidu.com/s/17HEeaSbdefTNbTKiTsC3gA

    4.windows作業系統。

二、反編譯得到程式的源代碼、圖檔、XML配置、語言資源等檔案 and 重新打包成apk

    1.下載下傳 apktool,解壓得到3個檔案:aapt.exe,apktool.bat,apktool.jar ,将需要反編譯的APK檔案放到該目錄下

    2.運作CMD,cd到apktool檔案夾 ,輸入指令:apktool.bat d -f [apk檔案 ] [輸出檔案夾]

apktool.bat d -f  test.apk  test 
           

   test.apk 是你的應用名,别使用中文,test 是破解apk後的資源檔案所放的目錄。

    3.破解成功後,多了個test檔案,裡面就是apk破解後的所有資源檔案。

    4.想把反編譯完的檔案重新打包成apk的話,輸入指令:

apktool.bat   b    test(你編譯出來檔案夾)
           

你會發現

之前的test檔案下便可以發現多了2個檔案夾:build 和 dist(有重新打包的APK)

三、反編譯得到程式的Java源代碼

    1.使用 工具中的 dex2jar和jd-gui 。

    2.将apk的字尾名改成:.rar或則 .zip并解壓,得到解壓後的 classes.dex檔案。

    3.将擷取到的classes.dex 放到工具dex2jar-0.0.9.15 檔案夾内

    4.CMD指令cd到dex2jar.bat所在目錄,輸入指令:

dex2jar.bat   classes.dex
           

在目前目錄下會生成一個classes_dex2jar.jar的檔案

    5.用jd.exe将classes_dex2jar.jar檔案打開,就可以看到Java源代碼了。(有些apk編譯的時候做了混淆處理的話,你看到的類名,屬性名,方法名就是 a b c d e f g......這樣的)

四、圖形化反編譯apk

    1.下載下傳Androidfby,打開Androidfby目錄,打開Android反編譯工具.exe,然後浏覽要反編譯的apk,可以看到使用了什麼第三方jar和代碼

五、防止競争對手反編譯

    1.Eclipse做混淆處理,請看博友:http://blog.csdn.net/DucklikeJAVA/article/details/50762661

    2.用360加強apk,使用教程:http://jiagu.360.cn/1101144936.php?dtid=1101144931&did=1101736455

360加強後的apk,源代碼完全看不到,不愧是流氓軟體之父。