1. 程式人生 > >android 如何反編譯apk檔案

android 如何反編譯apk檔案

我們都知道將apk解壓後我們能用的資源只有圖片了,或者是raw資料夾下的資源。

如何我們想要看看xml,看java原始碼,是看不了的,都是二進位制檔案。

好了,現在我們明確了我們的目標,有兩個,第一是看xml檔案,第二是java原始碼。

因此反編譯apk檔案也是分這兩個階段來進行的!

所以當然是下載工具了,

下面以test.apk為例!

第一步: 裝好三個工具 apktool(反編譯xml)+dex2jar+xjad (後面來個是用來反編譯dex的)

順便指出apktool是一個jar檔案,當然可以通過命令java -jar apktool.jar來啟動,但是為了方便可以加一個windows批處理apktool-install-windows-r04-brut1.tar.bz2工具

在google source下都能找到,將其解壓後並將apktool,apktool-install-windows-r04-brut1,dex2jar解壓後放到jdk中的platform-tools中,
這樣做的目的是新增到path下可以直接在命令列使用,同樣的dex2jar也是相同的操作,加壓後將所有檔案加到jdk中的platform-tools中

第二步:解壓test.apk為test資料夾
第三步:用命令apktool d test.apk test11得到test11資料夾,檢視此資料夾中的xml檔案,發現正常
第四步:用命令dex2jar classes.dex classes.jar解析之前解壓後的test資料夾中的classes.dex,將會生成一個classes.jar檔案
第五步:開啟xjard,在檔案中下拉選擇反編譯jar檔案,選中第四步中的classes.jar會自動生成一個 ~ 開頭的資料夾
第六步:整理。將第五步的資料夾copy到test11中,重新命名為src,並將smail和apktool.yml刪掉,大功告成!

經過本人多次測試:可以反編譯成功,但是有些許程式碼不能完全反編譯,但這並不影響我們對其研究!