一、準備工具和環境
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,源代碼完全看不到,不愧是流氓軟體之父。