Android快速分析apk工具aapt的使用教程
前面walfred已經(jīng)介紹了使用apktool對(duì)apk進(jìn)行逆向編譯,通過apktool我們的確可以反編譯已經(jīng)序列化后的AndroidManifest.xml和資源文件等等,但是有沒有一種快速有效的工具在不解包的前提下可以獲得某一apk的基本內(nèi)容、權(quán)限以及該apk的基本信息呢?答案就是有,這個(gè)工具就是今天要介紹的aapt。
aapt簡(jiǎn)介
aapt即Android Asset Packaging Tool,我們可以在SDK的platform-tools目錄下找到該工具。aapt可以查看、 創(chuàng)建、 更新ZIP格式的文檔附件(zip, jar, apk)。 也可將資源文件編譯成二進(jìn)制文件,盡管你可能沒有直接使用過aapt工具,但是build scripts和IDE插件會(huì)使用這個(gè)工具打包apk文件構(gòu)成一個(gè)Android 應(yīng)用程序。
主要用法
下面的這個(gè)參數(shù)列表基本向我們展示了如何使用aapt以及aapt的基本功能了。
aapt l[ist]:列出資源壓縮包里的內(nèi)容。
aapt d[ump]:查看APK包內(nèi)指定的內(nèi)容。
aapt p[ackage]:打包生成資源壓縮包。
aapt r[emove]:從壓縮包中刪除指定文件。
aapt a[dd]:向壓縮包中添加指定文件。
aapt v[ersion]:打印aapt的版本。
使用aapt
這里我就用一個(gè)應(yīng)用來(lái)做測(cè)試sample,應(yīng)用為:應(yīng)用匯應(yīng)用市場(chǎng)。
列舉出apk中的所有文件
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk
當(dāng)然這個(gè)apk的內(nèi)容太多,一張紙顯示不了所有的內(nèi)容,你可以將其重定向到一個(gè)專門的文件中去,這樣查看也方便。
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk > yingyonghui.txt
查看apk的基本信息
aapt最實(shí)用的功能,通過d(ump)參數(shù)可以查看該apk的基本信息以及權(quán)限等,但該參數(shù)還有一個(gè)value,可以選用的value值如下:
d參數(shù)的語(yǔ)法如下:
aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]
values:
badging Print the label and icon for the app declared in APK.
permissions Print the permissions from the APK.
resources Print the resource table from the APK.
configurations Print the configurations in the APK.
xmltree Print the compiled xmls in the given assets.
xmlstrings Print the strings of the given compiled xml assets.
查看基本信息
walfred@ubuntu:~/lab$ aapt d badging yingyonghui.apk
查看應(yīng)用權(quán)限
walfred@ubuntu:~/lab$ aapt d permissions yingyonghui.apk
結(jié)語(yǔ)
怎么樣,aapt這個(gè)小工具本領(lǐng)還真不小吧,當(dāng)我們?cè)谂袛嘁粋€(gè)apk是否有惡意行為時(shí),我們第一步可以考慮使用aapt這個(gè)tool哦,我們可以分析這個(gè)apk的權(quán)限列表,一旦有部分權(quán)限過大,比如發(fā)送短信、讀取聯(lián)系人信息等權(quán)限時(shí),就可以進(jìn)一步分析這個(gè)apk了。
相關(guān)文章
Android sqlite cursor的遍歷實(shí)例詳解
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Android sqlite cursor的遍歷的相關(guān)實(shí)例及知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2021-06-06android FM播放時(shí)拔出耳機(jī)后FM APP自動(dòng)close解決方法
android FM播放時(shí)拔出耳機(jī)后FM APP自動(dòng)close關(guān)閉的情況應(yīng)該怎樣解決呢?下面為大家詳細(xì)介紹下具體修改方法,感興趣的朋友可以參考下2013-06-06Android ContentProvider的實(shí)現(xiàn)及簡(jiǎn)單實(shí)例代碼
這篇文章主要介紹了Android ContentProvider的實(shí)現(xiàn)及簡(jiǎn)單實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02Android sd卡讀取數(shù)據(jù)庫(kù)實(shí)例代碼
這篇文章主要介紹了Android sd卡讀取數(shù)據(jù)庫(kù)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02Android 自定義view實(shí)現(xiàn)水波紋動(dòng)畫效果
這篇文章主要介紹了 Android 自定義view實(shí)現(xiàn)水波紋動(dòng)畫效果的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01Android實(shí)現(xiàn)QQ圖片說(shuō)說(shuō)照片選擇效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)QQ圖片說(shuō)說(shuō)照片選擇效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android之利用EventBus發(fā)送消息傳遞示例
本篇文章主要介紹了Android之利用EventBus進(jìn)行消息傳遞示例。EventBus是一款針對(duì)Android優(yōu)化的發(fā)布/訂閱事件總線,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-02-02Android自定義可點(diǎn)擊的ImageSpan并在TextView中內(nèi)置View
這篇文章主要為大家詳細(xì)介紹了Android自定義可點(diǎn)擊的ImageSpan并在TextView中內(nèi)置"View",具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11