1. 程式人生 > >安卓-APK反編譯

安卓-APK反編譯

當你遇到一個apk,你有可能會被它的畫面驚豔到,會迫不及待的想知道這些效果是怎樣實現的,於是就想到了反編譯。

通過反編譯,你得到了這個專案的原始碼,當然,如果這個apk經過了加密混淆處理,一些程式碼會用a,b,c命名,有的關鍵的東西會隱藏起來,你會很難看懂它的程式碼,不過也能從中獲取一些蛛絲馬跡,當然,一個安卓程式是別人辛勤勞動的成果,我們應該抱著學習借鑑的態度。

我這幾天研究反編譯是為了學習apk加密測試,下面是方法。


反編譯工具:

apktool提取資原始檔(圖片檔案和佈局檔案)

dex2jar將apk反編譯成java原始碼(classes.dex轉化成jar檔案)

jd-gui:檢視jar檔案,也就是檢視原始碼


這三個檔案可以到這裡下載,提取碼是4yda點選這裡下載

反編譯方法:

     將壓縮包解壓得到以上三個壓縮檔案

     

      全部解壓

      

    1.apk反編譯得到資原始檔(資料夾):

              將需要反編譯的apk放在apktool資料夾中,開啟執行介面,定位到apktool資料夾,輸入命令:apktool.bat d -f
 test2.apk test2
           (注:test2.apk是需要反編譯的apk的檔名,test2是反編譯完成的存放資原始檔的資料夾)                  這時apktool資料夾中會多出一個test2資料夾,這就是存放資原始檔的檔案夾了,你可以去查看了                  當然如果你想將你反編譯過得資料夾重新打包成apk,你可以輸入
apktool.bat   b    test2,這裡我就不多說了,需要的自行嘗試即可。

   2.APK反編譯得到原始碼:

         將需要編譯的的apk程式設計壓縮包,即字尾名換成.rar或者.zip都可以,然後解壓,會得到一個classes.dex檔案(這個檔案就是java檔案編譯打包而           成的),把這個classes.dex檔案放到之前解壓出來的dex2jar-0.0.9.15資料夾內,執行介面定位到這個資料夾,輸入:   dex2jar.bat   classes.dex然後在這個目錄下會生成一個classes_dex2jar.jar的檔案                                     用上面解壓的jd-gui.exe開啟工具開啟生成的classes_dex2jar.jar檔案,就可以看到原始碼了,效果如下: