1. 程式人生 > >Android工程師常用技能—APK反編譯

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。