一宇弛、需要的工具
- apktool:反編譯APK文件源请,得到classes.dex文件,同時也能獲取到資源文件以及布局文件舅踪。
- dex2jar:將反編譯后的classes.dex文件轉(zhuǎn)化為.jar文件良蛮。
- jd-gui:用于將.jar文件轉(zhuǎn)換成java代碼。
二货徙、反編譯步驟
第一步:使用apktool
工具對APK進行反編譯
1. 下載apktool
2. 把下載好的apktool腳本和apktool.jar文件移動到 /usr/local/bin 文件夾下
3. 使用命令chmod +x
分別對apktool和apktool.jar文件進行提權(quán)
//先進入到/usr/local/bin文件夾下
cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
4. 測試是否成功痴颊,終端輸入apktool屡贺,若成功甩栈,如下圖
5. 運行apoktool腳本進行反編譯
①. 把你需要反編譯的apk文件也復(fù)制到 /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
③. 執(zhí)行完畢后目錄下會生成反編譯apk的對應(yīng)文件夾
但是我們在反編譯apk后的文件夾里并沒有看到classes.dex文件垒探,這時候就需要在上述命令行添加-s怠李,表示禁止將dex文件解碼成smali
apktool d -s xxx.apk
第二步:使用dex2jar工具把classes.dex文件轉(zhuǎn)化成.jar文件
1. 下載dex2jar并解壓
2. 進入到你解壓后的dex2jar文件夾下(根據(jù)你的實際情況文件夾位置不一樣)捺癞,如:
cd Downloads/dex2jar-2.0
3. 把classes.dex文件復(fù)制到解壓后的dex2jar文件夾下,終端執(zhí)行命令sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes.dex
3. 執(zhí)行完畢后惕鼓,會在文件夾下生成一個.jar文件唐础,里面就是java源碼
第三步:使用JD-GUI軟件查看jar包下的java源碼
1.下載并安裝jd-gui
2. 打開安裝好的JD-GUI一膨,直接把第二步生成的.jar文件拖進去,就能看到反編譯出來的java源碼了
作者:AIllll
鏈接:http://www.reibang.com/p/3a305f32c4a3
來源:簡書
著作權(quán)歸作者所有驼鹅。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)森篷,非商業(yè)轉(zhuǎn)載請注明出處。