前言:Apk反編譯,即 Apk包 -> 代碼 的一個逆向過程。如果對正向代碼 打包成apk不怎麼理解的,可以閱讀Apk打包流程(簡) :
https://blog.csdn.net/qq_30304193/article/details/81945488
一、反編譯工具介紹:
作用 | 下載地址 | |
apktool | 獲取資源文件,資源文件獲取,可以提取出圖片文件和佈局文件進行使用查看 |
https://ibotpeaches.github.io/Apktool/install/ 下載最新版本 |
dex2jar |
獲取源碼文件,將apk反編譯成java源碼(classes.dex 轉化爲jar文件)。實際上是一個.dex->.class過程 |
官網:https://sourceforge.net/projects/dex2jar/ 直接點擊下載即可 |
jd-gui | 源碼查看,查看apk中classes.dex轉化成的jar文件。.class->.java過程 |
如windows的選擇如下下載 |
二、反編譯工具的使用
反編譯過程,就是使用apktool查看apk的資源文件、dex2jar+jd-gui查看apk的源碼的過程。
apktool查看apk的資源文件(如果直接解壓.apk文件,xml文件打開全部是亂碼):
1、下載apktool
進入官網 界面如下:
注意:上圖下載2的apktool時,一般會是apktool_2.x.x.jar的,下載後重命名爲apktool.jar(這裏不需要解壓)
下載好後得到兩個文件如下:
2、把上步驟下載好的兩個文件放入到:C:\Windows 目錄下。
3、運行cmd,進入到你需要反編譯的apk目錄,然後輸入命令:apktool d app-official-release.apk(apktool d 你的apk名稱)
輸入命令(我這裏存放apk目錄是: C:\Users\dell\Desktop\123 ,apk名稱是:app-official-release.apk):
運行結果:
注意:第2步很重要,否則無法反編譯,會報如下錯誤。
dex2jar+jd-gui查看apk的源碼:
1、將APK文件
的後綴改爲.zip
,然後解壓,
從解壓的文件中找到classes.dex文件,並將其放入dex2jar同一目錄下,如下:
放入 dex2jar同一目錄,這裏是在C:\Users\dell\Desktop\反編譯\dex2jar-2.0 下:
2、cmd中也進入到同樣的目錄,然後輸入命令:d2j-dex2jar.bat classes.dex,即完成了.dex ->.class過程。
注意:d2j-dex2jar.bat是解壓工具dex2jar後的批處理文件名,如上步驟圖的紅線部分。因爲有得下載的工具解壓後不是這個名字。
生成classes-dex2jar.jar如下:
3、運行jd-gui.exe查看反編譯後的源碼文件:
選擇上步驟生成的"classes-dex2jar.jar"文件: