1. 程式人生 > >Android專案打包apk及apk的反編譯,xml的反編譯

Android專案打包apk及apk的反編譯,xml的反編譯

一、專案打包的一般原理及其缺點

(1)開發一個簡單的專案,釋出的時候為一個APK檔案,如果我們不使用簽名的方式,直接在bin目錄下找到*.apk檔案,很方便,但是我們的使用者在使用的時候,有可能會被其他的程式覆蓋安裝;具體解釋如下:

(2)我們新建一個專案Test目錄結構如下,並把它釋出到模擬器上,得到我們的打包檔案Test.apk


(3)然後我們在看模擬器中的檔案目錄資訊,我們在安裝的應用,都會在安卓機器上的data----data---具體的安裝資料夾,例如我的是:com.example.test



這裡的com.example.test是在,專案目錄下的AndroidManifest.xml檔案中,因此我們可以修改他的檔名稱


(4)到這裡,如果遇到相同的安裝目錄名,就有可能覆蓋我們的應用程式,造成惡意的破壞!

二、帶有數字簽名的打包方式

(5)那我們就需要使用簽名的方式,打包我們的軟體,步驟很簡單,點選專案右鍵---Android-Tools---Export Android Application--然後後邊的就不在介紹!按照自己需求進行即可!

三、apk的反編譯實現過程

(6)在上一步中,我們已經生成了一個簽名的apk檔案Test.apk然後我們使用解壓軟體,解壓,


上圖既是解壓後的目錄,各種配置檔案都在,就是缺少我們的原始檔和R類等

(7)其中classes.dex檔案,就是我們專案中src目錄下原始碼的編譯,二resources.arsc既是我們R類中的編譯檔案

(8)現在我們開始反編譯,檢視其中的原始檔和R類

(9)準備工具dex2jar和JD-GUI這兩個工具網上很多,搜尋下載即可(http://yunpan.cn/cfpRvDD8QJcKi     提取碼 c156)

(10)開始:將classes.dex檔案拷貝到我們的工具dex2jar檔案目錄下:


(11)然後在上圖中的位址列中將地址刪除然後敲入cmd回車(這樣的話我們可以直接定位到該目錄下!非常好使)或者自己手工找到該目錄下!


(12)然後執行dex2jar.bat 後邊加上剛才拷貝的要反編譯的檔案calsses.dex


(13)然後就會在dex2jar工具下生成一個jar檔案(到這裡這個jar還只是class檔案需要使用下一個工具才可以)


(14)然後將生成的class_dex2jar.jar檔案拖入到第二個工具JD-GUI中,就可以看到了


(15)另外我們還可以點選file--save all sources生成原始碼的檔案,這個就不上圖了,原始碼有了剩下的是殺是刮隨你便偷笑

(16)到此為止,已經完成對軟體的反編譯,這樣的話我們可以輕鬆愉快的閱讀別人的原始碼了!大笑大笑

/*********************************************************************更新內容:反編譯xml檔案**************************************************/

下載後解壓然後將apk檔案複製到這裡、比如我這是lashow.apk


在位址列中輸入cmd,回車--命令apktool-v2.0.RC2.jar   d   lashow.apk


注意:可能很多朋友們反編譯的時候會出錯:意思就是找不到檔案等,這個時候需要更新一下apktool的版本了!

然後結束的時候,就會看到有一個新的資料夾 ,在裡邊就可以找到你想要的了