使用android-apktool來逆向(反編譯)APK包方法介紹
谷歌官方提供了apktool可以逆向已經發(fā)布出去的APK應用,即反編譯已經打包成功的APK文件,使用它可以將其反編譯成非常接近打包前的原始格式,對于APK來說,可以具體的逆向AndroidManifest.xml、資源文件resources.arsc以及將dex文件反編譯成可以調試的smali文件。
Warnning
但apktool并不等于是可以用來侵犯前作者的作品的工具,所以使用apktool工具的用戶千萬不用用其來進行不正當、非法的使用。
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.
關于apktool
1、反編譯資源文件到原始格式(including resources.arsc, XMLs and 9.png files)并且重建他們;
2、smali debugging: SmaliDebugging已經不支持了,猜測可能另一類的dex2jar工具崛起太快,已經可以將dex文件直接反編譯成jar了;
3、更多關于apktool。
使用apktool
walfred覺得apktool目前最大的作用是可以逆向AndroidManifest.xml、資源文件resources.arsc,這里就簡單的使用apktool來逆向一簡單的hello程序吧。
如果已經有了Android開發(fā)環(huán)境就能很快使用上apktool了,這里假設你已經可以直接使用apktool了。
反編譯decode
walfred@ubuntu:~/lab/apktool$ apktool d HelloOurAndroid.apk

這時我們可以看到在當前目錄下已經生成HelloOurAndroid/文件夾了,我們來查看下反編譯后的AndroidManifest.xml文件和strings.xml文件:
AndroidManifest.xml文件反編譯之后和工程下的時候幾乎是一模一樣,所以我們可以來check下該Android應用的所有權限。

同樣可以查看這些hardcode的內容:

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

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

最后將重新編譯之后的APK進行簽名就可以運行了,當然如果你不想這么麻煩的去解包看,aapt這個工具也可以做到類似的功能哦,但最大的特點是aapt不需要解包。
相關文章
Android編程實現(xiàn)QQ表情的發(fā)送和接收完整實例(附源碼)
這篇文章主要介紹了Android編程實現(xiàn)QQ表情的發(fā)送和接收的方法,涉及Android圖片資源、正則表達式及對話框的相關操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
Android實現(xiàn)使用流媒體播放遠程mp3文件的方法
這篇文章主要介紹了Android實現(xiàn)使用流媒體播放遠程mp3文件的方法,結合實例形式分析了Android遠程播放音頻文件的相關步驟與實現(xiàn)技巧,需要的朋友可以參考下2016-08-08
Android 使用AsyncTask實現(xiàn)多任務多線程斷點續(xù)傳下載
這篇文章主要介紹了Android 使用AsyncTask實現(xiàn)多任務多線程斷點續(xù)傳下載的相關資料,需要的朋友可以參考下2018-05-05
Android使用ContentResolver搜索手機通訊錄的方法
這篇文章主要介紹了Android使用ContentResolver搜索手機通訊錄的方法,結合實例形式分析了Android中ContentResolver操作手機通訊錄的具體步驟與相關實現(xiàn)技巧,需要的朋友可以參考下2016-01-01

