天天看點

apk檔案反編譯html,APK檔案反編譯

上次看了兩篇反編譯APK檔案的文章,反編譯了幾個音樂播放器,自己借用其中一個應用的界面做了一個相應播放器。近期有比較多的空閑時間,是以打算做一個LBS旅行應用。但目前發現又不會反編譯了,是以還是記錄下來,下次再忘直接看自己的文章比較快。(注:以下為Windows環境下)

1:反編譯Java源碼(從dex檔案->jar檔案->java檔案)

解壓後啟動指令行(開始->cmd),更改目錄到解壓路徑,如我的目錄:D:\adt\apk2java\dex2jar-0.0.9.15

運作指令

(1) d:

(2) cd D:\adt\apk2java\dex2jar-0.0.9.15

(3) 解壓要反編的APK檔案,得到classes.dex檔案,如我要反編譯去哪兒旅遊攻略,classes.dex檔案路徑為:D:\android_relate\travelLBS\com.qunar.travelplan_222048\classes.dex

(4) d2j-dex2jar -o D:\android_relate\travelLBS\com.qunar.travelplan_222048\qne.jar D:\android_relate\travelLBS\com.qunar.travelplan_222048\classes.dex

注:dex2jar指令已經廢棄,官方推薦用d2j-dex2jar指令,上面的指令d2j-dex2jar -o [反編譯後的檔案儲存位置及名字]  [要反編譯的dex檔案];如果不加-o參數即指反編譯到d2j-dex2jar指令所在路徑中,這裡還有其他的參數,具體可以自己去看d2j-dex2jar -help

(5) 得到qne.jar檔案後用jd-gui打開就行了,這個就不解釋了,去用就懂

2:反編譯資源檔案

工具:apktoole,下載下傳位址:http://code.google.com/p/android-apktool/ (假設我的apktool檔案路徑為:D:\adt\fby\prk-window)

運作指令

(1)d:

(2) cd D:\adt\fby\prk-window

(3) apktool d -s D:\android_relate\travelLBS\com.qunar.travelplan_222048.apk D:\android_relate\travelLBS\qne

注:-s是指src目錄就不要反編譯出來了,反編譯的話得到的是.smali檔案(對我反正暫時沒什麼用)。指令apktool d -s [apk檔案路徑] [生成的資源目錄路徑]。具體參數可以自己了解一下apktool -help

至此Java檔案和資源檔案都得到了。反編出來的java檔案可能添加了混淆,類名為a,b,c這樣,暫時沒辦法還原

截個圖看一下吧:

指令行:

apk檔案反編譯html,APK檔案反編譯

得到的檔案(1個jar檔案,1個資源目錄):

apk檔案反編譯html,APK檔案反編譯

原文:http://www.cnblogs.com/creasylai19/p/3791316.html