mac環境下Android 反編譯
一、需要的工具
apktool:反編譯APK文件,得到classes.dex文件,同時也能獲取到資源文件以及布局文件。
dex2jar:將反編譯后的classes.dex文件轉化為.jar文件。
jd-gui:用於將.jar文件轉換成java代碼。
二、反編譯步驟
第一步:使用apktool
工具對APK進行反編譯
1. 下載apktool:https://ibotpeaches.github.io/Apktool/install/
2.把下載好的apktool腳本和apktool.jar文件移動到 /usr/local/bin 文件夾下
3. 使用命令chmod +x
分別對apktool和apktool.jar文件進行提權
//先進入到/usr/local/bin文件夾下 cd /usr/local/bin
chmod +x apktool
chmod +x apktool.jar
4. 測試是否成功,終端輸入apktool,若成功,如下圖
5. 運行apoktool腳本進行反編譯
①. 把你需要反編譯的apk文件也復制到 /usr/local/bin
文件夾下,確保apktool
、apktool.jar
以及apk文件都在/usr/local/bin
目錄下
②. 終端輸入命令 apktool d xxx.apk
回車,等待執行完畢
//如果當前已在/usr/local/bin 目錄下,忽略此步 cd /usr/local/bin //開始反編譯目標APK文件 apktool d xxx.apk
③. 執行完畢后目錄下會生成反編譯apk的對應文件夾
但是我們在反編譯apk后的文件夾里並沒有看到classes.dex文件,這時候就需要在上述命令行添加-s,表示禁止將dex文件解碼成smali
apktool d -s xxx.apk
第二步:使用dex2jar工具把classes.dex文件轉化成.jar文件
1. 下載dex2jar並解壓 : https://sourceforge.net/projects/dex2jar/files/
2. 進入到你解壓后的dex2jar文件夾下(根據你的實際情況文件夾位置不一樣),如:
cd Downloads/dex2jar-2.0
3. 把classes.dex文件復制到解壓后的dex2jar文件夾下,終端執行命令sh d2j-dex2jar.sh classes.dex
sh d2j-dex2jar.sh classes.dex
3. 執行完畢后,會在文件夾下生成一個.jar文件,里面就是java源碼
第三步:使用JD-GUI軟件查看jar包下的java源碼
1.下載並安裝jd-gui http://java-decompiler.github.io/
2. 打開安裝好的JD-GUI,直接把第二步生成的.jar文件拖進去,就能看到反編譯出來的java源碼了
參考文檔:https://www.jianshu.com/p/3a305f32c4a3