分析apk工具aapt的使用,解析其原理

通過apktool我們的確可以反編譯已經序列化後的AndroidManifest.xml和資源文件等等,但是有沒有一種快速有效的工具在不解包的前提下可以獲得某一apk的基本內容、權限以及該apk的基本信息呢?答案就是有,這個工具就是今天要介紹的aapt。

aapt簡介

aapt即Android Asset Packaging Tool,我們可以在SDK的platform-tools目錄下找到該工具。aapt可以查看、 創建、 更新ZIP格式的文檔附件(zip, jar, apk)。 也可將資源文件編譯成二進制文件,儘管你可能沒有直接使用過aapt工具,但是build scripts和IDE插件會使用這個工具打包apk文件構成一個Android 應用程序。

主要用法

下面的這個參數列表基本向我們展示瞭如何使用aapt以及aapt的基本功能了。

1
2
3
4
5
6
aapt l[ist]:列出資源壓縮包裏的內容。
aapt d[ump]:查看APK包內指定的內容。
aapt p[ackage]:打包生成資源壓縮包。
aapt r[emove]:從壓縮包中刪除指定文件。
aapt a[dd]:向壓縮包中添加指定文件。
aapt v[ersion]:打印aapt的版本。

使用aapt

這裏我就用一個應用來做測試sample,應用爲:應用匯應用市場。 列舉出apk中的所有文件

1
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk

 當然這個apk的內容太多,一張紙顯示不了所有的內容,你可以將其重定向到一個專門的文件中去,這樣查看也方便。

1
walfred@ubuntu:~/lab$ aapt l yingyonghui.apk > yingyonghui.txt

查看apk的基本信息 aapt最實用的功能,通過d(ump)參數可以查看該apk的基本信息以及權限等,但該參數還有一個value,可以選用的value值如下: d參數的語法如下:

1
2
3
4
5
6
7
8
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.

查看基本信息

1
walfred@ubuntu:~/lab$ aapt d badging yingyonghui.apk

 查看應用權限

1
walfred@ubuntu:~/lab$ aapt d permissions yingyonghui.apk

結語

怎麼樣,aapt這個小工具本領還真不小吧,當我們在判斷一個apk是否有惡意行爲時,我們第一步可以考慮使用aapt這個tool哦,我們可以分析這個apk的權限列表,一旦有部分權限過大,比如發送短信、讀取聯繫人信息等權限時,就可以進一步分析這個apk了。

最後推薦關於關於某銀行apk的安全分析實例

 

發佈了37 篇原創文章 · 獲贊 5 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章