使用android-apktool來(lái)逆向(反編譯)APK包方法介紹
谷歌官方提供了apktool可以逆向已經(jīng)發(fā)布出去的APK應(yīng)用,即反編譯已經(jīng)打包成功的APK文件,使用它可以將其反編譯成非常接近打包前的原始格式,對(duì)于APK來(lái)說(shuō),可以具體的逆向AndroidManifest.xml、資源文件resources.arsc以及將dex文件反編譯成可以調(diào)試的smali文件。
Warnning
但apktool并不等于是可以用來(lái)侵犯前作者的作品的工具,所以使用apktool工具的用戶千萬(wàn)不用用其來(lái)進(jìn)行不正當(dāng)、非法的使用。
It is NOT intended for piracy and other non-legal uses. It could be used for localizing, adding some features or support for custom platforms and other GOOD purposes. Just try to be fair with authors of an app, that you use and probably like.
關(guān)于apktool
1、反編譯資源文件到原始格式(including resources.arsc, XMLs and 9.png files)并且重建他們;
2、smali debugging: SmaliDebugging已經(jīng)不支持了,猜測(cè)可能另一類(lèi)的dex2jar工具崛起太快,已經(jīng)可以將dex文件直接反編譯成jar了;
3、更多關(guān)于apktool。
使用apktool
walfred覺(jué)得apktool目前最大的作用是可以逆向AndroidManifest.xml、資源文件resources.arsc,這里就簡(jiǎn)單的使用apktool來(lái)逆向一簡(jiǎn)單的hello程序吧。
如果已經(jīng)有了Android開(kāi)發(fā)環(huán)境就能很快使用上apktool了,這里假設(shè)你已經(jīng)可以直接使用apktool了。
反編譯decode
walfred@ubuntu:~/lab/apktool$ apktool d HelloOurAndroid.apk

這時(shí)我們可以看到在當(dāng)前目錄下已經(jīng)生成HelloOurAndroid/文件夾了,我們來(lái)查看下反編譯后的AndroidManifest.xml文件和strings.xml文件:
AndroidManifest.xml文件反編譯之后和工程下的時(shí)候幾乎是一模一樣,所以我們可以來(lái)check下該Android應(yīng)用的所有權(quán)限。

同樣可以查看這些hardcode的內(nèi)容:

rebuild重打包
重打包剛剛修改過(guò)的HelloOurAndroid.apk,我們就修改strings.xml目錄下的“hello”為:Hello,OurUnix!

然后使用apktoo重新打包,命令如下:
walfred@ubuntu:~/lab/apktool$ apktool b HelloOurAndroid

最后將重新編譯之后的APK進(jìn)行簽名就可以運(yùn)行了,當(dāng)然如果你不想這么麻煩的去解包看,aapt這個(gè)工具也可以做到類(lèi)似的功能哦,但最大的特點(diǎn)是aapt不需要解包。
相關(guān)文章
Android編程實(shí)現(xiàn)QQ表情的發(fā)送和接收完整實(shí)例(附源碼)
這篇文章主要介紹了Android編程實(shí)現(xiàn)QQ表情的發(fā)送和接收的方法,涉及Android圖片資源、正則表達(dá)式及對(duì)話框的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Android實(shí)現(xiàn)使用流媒體播放遠(yuǎn)程mp3文件的方法
這篇文章主要介紹了Android實(shí)現(xiàn)使用流媒體播放遠(yuǎn)程mp3文件的方法,結(jié)合實(shí)例形式分析了Android遠(yuǎn)程播放音頻文件的相關(guān)步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08
Android 使用AsyncTask實(shí)現(xiàn)多任務(wù)多線程斷點(diǎn)續(xù)傳下載
這篇文章主要介紹了Android 使用AsyncTask實(shí)現(xiàn)多任務(wù)多線程斷點(diǎn)續(xù)傳下載的相關(guān)資料,需要的朋友可以參考下2018-05-05
Android動(dòng)畫(huà)之小球擬合動(dòng)畫(huà)實(shí)例
這篇文章主要介紹了Android動(dòng)畫(huà)之小球擬合動(dòng)畫(huà)實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
adnroid已安裝應(yīng)用中檢測(cè)某應(yīng)用是否安裝的代碼實(shí)例
這篇文章主要介紹了Android怎么檢測(cè)一個(gè)應(yīng)用是否安裝的方法,大家參考使用吧2013-11-11
Android仿微信左右滑動(dòng)點(diǎn)擊切換頁(yè)面和圖標(biāo)
這篇文章主要為大家詳細(xì)介紹了Android仿微信左右滑動(dòng)點(diǎn)擊切換頁(yè)面和圖標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
Android使用ContentResolver搜索手機(jī)通訊錄的方法
這篇文章主要介紹了Android使用ContentResolver搜索手機(jī)通訊錄的方法,結(jié)合實(shí)例形式分析了Android中ContentResolver操作手機(jī)通訊錄的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-01-01
Android網(wǎng)絡(luò)編程之UDP通信模型實(shí)例
這篇文章主要介紹了Android網(wǎng)絡(luò)編程之UDP通信模型實(shí)例,本文給出了服務(wù)端代碼和客戶端代碼,需要的朋友可以參考下2014-10-10

