文档章节

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

科技创造
 科技创造
发布于 2015/06/17 15:26
字数 805
阅读 1964
收藏 7
点赞 1
评论 1

通过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的安全分析实例


 

© 著作权归作者所有

共有 人打赏支持
科技创造
粉丝 36
博文 197
码字总数 174505
作品 0
徐汇
程序员
加载中

评论(1)

科技创造
科技创造
  
2楼:科技创造 发表于 2015-10-22 17:04 删除
一旦有部分权限过大,比如发送短信、读取联系人信息等权限时,就可以进一步分析这个apk了。
Android开发者指南(2) —— aapt

使用aapt   aapt是标准的Android辅助打包工具,位于SDK的tools/文件夹下。该工具允许查看、创建或更新Zip兼容格式(zip,jar,apk)的文档,并且能将资源编译到二进制格式的包中。   通常不...

walb呀 ⋅ 2017/12/05 ⋅ 0

关于Android图片资源瘦身的奇思妙想

版权声明:本文由张绍文原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/77 来源:腾云阁 https://www.qcloud.com/community 分析大部分apk,可以发现在...

偶素浅小浅 ⋅ 2016/11/01 ⋅ 0

从设计角度理解Apk打包过程

Apk的打包,大致就是把代码打成包、把资源打成包、最后对整个Apk文件做一下安全处理和优化操作,Andriod提供了Android Asset Packaging Tool工具aapt来做这些事。 我们从代码处理、资源处理和...

蓝灰_q ⋅ 2017/11/24 ⋅ 0

Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题

一、故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时。就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印...

jiangwei0910410003 ⋅ 05/03 ⋅ 0

解析apk安装包的工具--apkutil

apkUtil是一个用来解析apk安装包的工具,通过它可以获取一个安装包的图标、程序名、所需android平台,权限等信息,并将其转换为java对象。该工具依赖于aapt工具,目前仅支持在windows平台上运...

貌似掉线 ⋅ 2012/11/18 ⋅ 0

android apk打包基础知识

今天自己研究出apk打包,跟大家一起共勉。 aapt package -m -J src -M AndroidManifest.xml -S res -I android.jar //这句命令主要是重新自动生成R.java文件,比如增加个图片或者字符串或者增...

迷途d书童 ⋅ 2012/03/26 ⋅ 3

我想知道 类似应用宝 91 360助手这些PC软件是如何快速读取手机应用APP的 应用名字 图标的?

我想知道 类似应用宝 91 360助手这些PC软件是如何快速读取手机应用APP的 应用名字 图标的? 用什么原理实现.我自己用adb 或者 aapt 解析apk 都没达到我想要的这样效果 .请求下大家想法.思路....

John166 ⋅ 2014/07/29 ⋅ 1

安卓开发详解—Android安装包性能优化

安装包的性能优化的精髓:尽量删。 安装包的性能优化方法: 1.图片压缩: 图片:apk里面的资源图片 压缩图片 svg图片:一些图片的描述,牺牲CPU的计算能力的,节省空间。 使用的原则:简单的...

Cyunrei ⋅ 01/01 ⋅ 0

android aapt查看apkmenifast信息

aapt:Android Asset Packaging Tool , 在SDK的tools/目录下. 该工具可以查看, 创建, 更新ZIP格式的文档附件(zip, jar, apk). 也可将资源文件编译成二进制文件.同步软件中得到apk信息就是用的...

陌路-野山君 ⋅ 2013/12/01 ⋅ 0

Appium+python自动化3-启动淘宝app

前言 前面两篇环境已经搭建好了,接下来就是需要启动APP,如何启动app呢?首先要获取包名,然后获取launcherActivity。获取这两个关键东西的方法很多,这里就不一一多说,小伙伴们可以各显神...

上海-悠悠 ⋅ 2016/12/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 17分钟前 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 37分钟前 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 50分钟前 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

eclipse酷炫大法之设置主题、皮肤

eclipse酷炫大法 目前两款不错的eclipse 1.系统设置 Window->Preferences->General->Appearance 2.Eclipse Marketplace下载【推荐】 Help->Eclipse Marketplace->搜索‘theme’进行安装 比如......

anlve ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部