Android工程師常用技能—APK反編譯
概述:
很多的時候,當我們羨慕別人app的動效絢麗,素材優秀的時候,我們也想去用,怎麼辦?這個時候apk反編譯將會成為我們可以利用的工具。
準備工作:
下載工具:
2、 dex2jar:http://download.csdn.net/detail/vipzjyno1/7025127(借用別人的上傳地址)
3、 jd-gui:http://download.csdn.net/detail/vipzjyno1/7025145(借用別人的上傳地址)
我們這裡來反編譯知乎的apk:zhihu.apk
工具介紹:
Apktool:獲取res目錄,AndroidManifest.xml
Dex2jar:將apk反編譯成java程式碼(classes.dex轉成jar)
Jd-gui:檢視jar檔案即可以看見原始碼
首先,我們來獲取res目錄下的所有資原始檔:
1、 將apk放置於與apktool同一目錄下,輸入反編譯命令:
apktool.bat d -f zhihu.apk zhihu
這個時候有人可能會出現這樣的問題:
出現這個錯誤的原因是apktool版本太低。
將apktool.bat與apktool.jar放入C://Window目錄下
將zhihu.apk放在任何目錄下,開啟Cmd:
接下來我們來獲取java原始碼,獲得java原始碼總共需要兩個過程—dex2Jar和jd-gui
第一步:將zhihu.apk命名為zhihu.zip或zhihu.rar,解壓獲取到classes.dex檔案
第二步:將classes.dex放置於dex2jar目錄下,開啟cmd,輸入命令:
第三步:完成後會生成一個classes_dex2jar.jar的檔案
第四步:開啟jd_gui目錄下的jd-gui.exe檔案,開啟剛生成的classes_dex2jar.jar檔案檢視原始碼。
這裡可以看到知乎的app原始碼是經過混淆的,所以大家也就知道了如何去避免別人破解你辛辛苦苦開發的app。