一、需要的工具
- apktool:反編譯APK文件,得到classes.dex文件,同時也能獲取到資源文件以及布局文件。
- dex2jar:將反編譯后的classes.dex文件轉化為.jar文件。
- jd-gui:用于將.jar文件轉換成java代碼。
二、反編譯步驟
第一步:使用apktool工具對APK進行反編譯
1. 下載apktool

image
2. 把下載好的apktool腳本和apktool.jar文件移動到 /usr/local/bin 文件夾下

image

image

image
3. 使用命令chmod +x 分別對apktool和apktool.jar文件進行提權
//先進入到/usr/local/bin文件夾下
cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
4. 測試是否成功,終端輸入apktool,若成功,如下圖

image
5. 運行apoktool腳本進行反編譯
①. 把你需要反編譯的apk文件也復制到 /usr/local/bin 文件夾下,確保apktool、apktool.jar以及apk文件都在/usr/local/bin目錄下
②. 終端輸入命令 apktool d xxx.apk回車,等待執(zhí)行完畢
//如果當前已在/usr/local/bin 目錄下,忽略此步
cd /usr/local/bin
//開始反編譯目標APK文件
apktool d xxx.apk

image
③. 執(zhí)行完畢后目錄下會生成反編譯apk的對應文件夾

image
但是我們在反編譯apk后的文件夾里并沒有看到classes.dex文件,這時候就需要在上述命令行添加-s,表示禁止將dex文件解碼成smali
apktool d -s xxx.apk

image

image
第二步:使用dex2jar工具把classes.dex文件轉化成.jar文件
1. 下載dex2jar并解壓
2. 進入到你解壓后的dex2jar文件夾下(根據(jù)你的實際情況文件夾位置不一樣),如:
cd Downloads/dex2jar-2.0
3. 把classes.dex文件復制到解壓后的dex2jar文件夾下,終端執(zhí)行命令sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes.dex

image
3. 執(zhí)行完畢后,會在文件夾下生成一個.jar文件,里面就是java源碼

image
第三步:使用JD-GUI軟件查看jar包下的java源碼
1.下載并安裝jd-gui
2. 打開安裝好的JD-GUI,直接把第二步生成的.jar文件拖進去,就能看到反編譯出來的java源碼了

image

image
作者:AIllll
鏈接:http://www.itdecent.cn/p/3a305f32c4a3
來源:簡書
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。