使用到的工具:
Apktool:用來獲取圖片、xml等資源文件
dex2jar:把dex文件轉(zhuǎn)換成jar包
JD-GUI:反編譯jar包,獲取源代碼
JADX-GUI:方便的反編譯工具,一步到位直接反編譯apk
第一種方式. 使用dex2jar、JD-GUI和apktool
第一步. 反編譯獲取源代碼:
- 解壓你要反編譯的apk文件(apk文件其實(shí)是個壓縮文件)。
- 進(jìn)入apk解壓后的目錄,拷貝classes.dex文件,粘貼到dex2jar目錄。
- 打開cmd,把路徑切換到dex2jar目錄,運(yùn)行命令: d2j-dex2jar classes.dex ,成功后會在dex2jar目錄生成一個classes-dex2jar.jar文件。
- 打開JD-GUI,然后把剛才生成的classes-dex2jar.jar文件拖進(jìn)去就可以查看源代碼了。
第二步.獲取圖片、xml等資源文件:
apktool工具是一個jar包,不需要解壓。
打開cmd,進(jìn)入apktool工具根目錄,運(yùn)行命令: java -jar apktool_2.0.2.jar d -f csdn.apk -o cccc,
其中cccc是破解后的文件輸出目錄,可以自定義,不需要自己創(chuàng)建。
完成后會發(fā)現(xiàn)apktool工具根目錄下多了一個cccc文件夾,里面的圖標(biāo)、xml文件等就可以直接使用了。
如果你覺得上面這些步驟太麻煩的話,這里有一個集成了以上幾種工具的一步到位反編譯apk工具onekey-decompile-apk。
下載地址:https://github.com/ufologist/onekey-decompile-apk,使用方法里面有詳細(xì)介紹。
第二種方式. 使用jadx-gui
jadx-gui是一個圖形話反編譯工具,可反編譯apk文件,使用非常簡便 。能獲取源碼,獲取xml文件,缺點(diǎn)是不能獲取圖片文件。
使用方法:下載了之后解壓,進(jìn)入解壓后的目錄,運(yùn)行bin文件夾里面的jadx-gui.bat,然后選擇你要反編譯的apk所在的位置,或者把你的apk文件直接拖到j(luò)adx界面,ok,這就反編譯成功了,就是這么簡單粗暴。
jadx-gui和jd-gui反編譯后的源碼有一點(diǎn)不一樣:
- 有些變量jd-gui會有初始化值;
-
有些jd-gui會反編譯出錯,而jadx-gui能成功,所以根據(jù)情況混合使用吧。
以上提到的反編譯工具下載地址:
github上一個反編譯工具集合的帖子:
https://github.com/Juude/droidReverse
onekey-decompile-apk:
https://github.com/ufologist/onekey-decompile-apk
JADX-GUI:
http://sourceforge.net/projects/jadx