上次看了兩篇反編譯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這樣,暫時沒辦法還原
截個圖看一下吧:
指令行:
得到的檔案(1個jar檔案,1個資源目錄):
原文:http://www.cnblogs.com/creasylai19/p/3791316.html