反編譯的目的是有助于我們學(xué)習(xí)規(guī)范代碼眼姐,而不是植入惡意代碼诫惭,竊取他人智慧成果。
Don't be evil.
本文介紹的反編譯工具有4款桩了,需要配合使用附帽。比較經(jīng)典的反編譯工具apktool、dex2jar井誉、jd-gui就不進(jìn)行介紹了蕉扮,在此推薦一款新發(fā)現(xiàn)的工具apkdb,反編譯得到Resource 資源很方便颗圣。在實(shí)際使用中使用apkdb 與dex2jar 即可實(shí)現(xiàn)APK反編譯 工作喳钟。
- apktool
- dex2jar
- jd-gui
- apkdb v2.0
Android APK生成過(guò)程
提到APK反編譯,不得不提到APK生成過(guò)程在岂。雖然工具已經(jīng)提供apk反編譯的功能奔则,使得我們不用考慮具體的反編譯步驟,但是知道原理還是對(duì)我們有好處的蔽午。復(fù)習(xí)一下APK生成過(guò)程吧易茬!
APKDB獲取資源文件
在我給出的鏈接中,直接下載及老,按照壓縮包內(nèi)的說(shuō)明安裝即可抽莱,安裝成功后會(huì)在右鍵菜單中生成“使用APKDB編譯”的菜單項(xiàng)。反編譯界面如下圖所示写半,僅僅反編譯得到資源文件直接輸入“1”岸蜗,最后點(diǎn)擊回車即可在APK當(dāng)前目錄下生成反編譯后的文件夾,包含:asset, meta, lib, res, smail等文件夾叠蝇。res文件夾包含所有的resource文件璃岳,可以通過(guò)APKDB自帶的XML解析器查看所有的xml,包括AndroidManifest.xml悔捶。
如果想進(jìn)行簽名或其他操作铃慷,按照提示選項(xiàng)輸入執(zhí)行即可,不再進(jìn)行復(fù)述蜕该。
Dex2jar反編譯APK源碼
將下載好的Dex2Jar解壓到任意目錄下犁柜,在Windows下可以通過(guò)d2j-dex2jar.bat 文件執(zhí)行反編譯工作,Mac或Linux下通過(guò)d2j-dex2jar.sh也可以進(jìn)行堂淡。
進(jìn)入CMD馋缅,將目錄定位到dex2jar的根目錄扒腕,然后將需要反編譯的APK文件后綴名改為zip或rar,提取APK內(nèi)的classes.dex到dex2jar的根目錄萤悴。
最后在CMD 中執(zhí)行d2j-dex2jar.bat 腳本瘾腰,如下圖所示,輸入d2j-dex2jar.bat classex.dex
等待反編譯完成即可覆履,完成后會(huì)生成對(duì)應(yīng)的classes-dex2jar.jar蹋盆。
jd-gui查看APK源碼
上一步已經(jīng)完成了APK反編譯工作,最后一步就是查看APK的源碼硝全。直接打開(kāi)jd-gui栖雾,將生成的classes-dex2jar.jar直接在jd-gui中打開(kāi)即可。
**反編譯工具下載鏈接 : **http://pan.baidu.com/s/1mi0hI1E
**密碼 : **nm03