安卓apk反編譯

學習使人快樂,一些讓你賞心悅目得app卻沒有開源代碼,你該怎麼去學習他呢?反編譯似乎是一個不錯得選擇。當你有一套標準得反編譯工具幫助你來反編譯apk這樣會使你的工作輕鬆很多,直接上步驟:

1,下載反編譯工具,下載連接:https://download.csdn.net/download/qq_35539512/11268885

2,解壓得到得壓縮包如圖:工具介紹:dex2jar主要是將dex文件轉換成.jar文件,jd-gui用來讀.jar文件,apktool.bat用來得到APK的資源文件。

3,在D盤或者別的盤建一個apktool文件夾,將apktool.bat和apktool.jar文件放進去,然後cmd進入命令窗口,進入到apktool文件夾輸入apktool最後命令窗口顯示如下圖則未成功

4,打開dex2jar文件夾將文件夾中得lib文件夾和d2j_invoke.bat以及d2j_dex2jar.bat文件拷入到之前創建得apktool文件夾下

最後你的文件夾應該如下圖所示

5,將dex文件轉成.jar文件:工具已經準備好了該獲取我們需要的代碼了,先將要反編譯的apk的後綴.apk改成.zip,然後解壓這個壓縮包你會得到classes.dex,classes2.dex,classes3.dex文件(debug版本的apk),如果是release版本的apk你解壓後得到只有classes.dex,classes2.dex這兩個文件。當然要將這幾個生產的文件放到apktool文件夾下,然後再cmd窗口輸入:d2j-dex2jar.bat classes.dex(或者d2j-dex2jar.bat classes2.dex,用這個你可以得到完整的項目代碼),運行成功後你會得到一個classes-dex2jar.jar文件,然後打開jd-gui工具,選擇這個jar文件即可看到app對應的代碼了:

6,反編譯資源文件,將app(test.apk)放到apktool文件夾下,再cmd窗口運行apktool.bat apktool d test.apk(或者.\apktool.bat apktool d test.apk),稍等一小會你會再apktool文件夾下得到一個test文件夾,再test文件夾中你可以獲取app中得資源文件(圖片,layout等)。

7,總結:這種程度的反編譯只適合用來反編譯debug版本和release版本的apk,當然release版本的apk加了混淆得到的代碼會有字母替代類名和方法名的問題。如果你要反編譯的apk經過加固處理,你將不能獲取完整的項目代碼。有興趣的朋友可以試一試,能深刻體會到混淆和加固對apk的重要性。

(注:以上是window教程,如果用的是mac電腦則需要將dex2jar中的.bat文件用.sh文件替換,包括後面的窗口命令)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章