1. 使用ApkTool拆包涧黄,得到AndroidManifest和res等資源文件:
命令使用:
java -jar apktool.jar d yourApkFile.apk
// 注意`apktool.jar`是剛才下載后的jar的名稱袒啼,`d`參數(shù)表示decode
// 在這個命令后面還可以添加像`-o -s`之類的參數(shù)晰韵,例如
// java -jar apktool.jar d yourApkFile.apk -o destiantionDir -s
// 幾個主要的參數(shù)設置方法及其含義:
-f 如果目標文件夾已存在推掸,強制刪除現(xiàn)有文件夾
-o 指定反編譯的目標文件夾的名稱(默認會將文件輸出到以Apk文件名命名的文件夾中)
-s 保留classes.dex文件(默認會將dex文件解碼成smali文件)
-r 保留resources.arsc文件(默認會將resources.arsc解碼成具體的資源文件)
2. 將dex文件轉換成jar文件:
方法1: 通過dex2jar反編譯dex文件(步驟1中獲取)游岳,得到源碼
命令用法:
d2j-dex2jar classes.dex
// 獲取classes.dex文件在最前面說過身隐,只要把Apk當做zip解壓出來,里面就有dex文件了
// 或者用apktool反編譯時帶上 `-s` 參數(shù)
(打開下載的dex2jar-2.0文件夾买窟,里面有shell和bat腳本丰泊,進入終端,就可以在命令行使用了始绍。)
方法2: 通過Google-enjarify瞳购,得到源碼(推薦使用)
用法:
1.下載獲取enjarify,解壓到期望目錄亏推,并將該路徑添加到環(huán)境變量path中
2.(可選) 由于enjarify要使用到python解析器学赛,所以如果你電腦還沒安裝python開發(fā)環(huán)境,下載一個python解析器(官方推薦pypy,下載地址:http://pypy.org/,注意:要pypy3.+版本)
3.下載之后解壓到期望目錄吞杭,并將該路徑添加到環(huán)境變量path中 (在命令行輸入 pypy盏浇,出現(xiàn)下圖所示即為安裝成功)
4.找到Enjarify目錄下的enjarify.bat文件,使用編輯器打開(建議notepad)芽狗,修改
python3 -O -m enjarify.main %* –> pypy -O -m enjarify.main %*
5.在命令行輸入 enjarify -f XXX.apk , -f 在這里是必須要加上的绢掰,否則會出現(xiàn)警告,無法反 編譯APK文件
6.反編譯之后的文件是一個jar文件童擎,使用jd-gui查看Jar文件
驗證pypy是否安裝好.PNG
3. jd-gui查看java源代碼:
下載對應系統(tǒng)的jd-gui(下載地址:http://jd.benow.ca/), 解壓得到jd-gui.exe滴劲,
雙擊既可以運行這個工具,直接把上一步得到的xxx.jar拖到jd-gui程序的界面上即可打開查看java源碼了
===相關軟件下載鏈接===
ApkTool
dex2jar
enjarify
pypy
JD-GUI
參考博客:
Android反編譯技術總結
Google反編譯新工具——Enjarify使用