文章目录

  • 前言
  • 一、APK的获取
  • 二、APK查看
    • 1.修改文件后缀名,点击进行查看
    • 2.APK包体结构分析
  • 总结

前言

在移动安全的学习过程中,最离不开的过程就是和apk文件打交道,apk加固、apk漏洞挖掘、apk反编译等过程都和apk文件息息相关

以下先对apk整体结构进行认知描述

一、APK的获取

任意选择一款APK,有过Android开发经验的同学可以直接从AS自己打包一份APK,或者从其他渠道任意获得一份APK文件发送到自己的电脑上

我这里直接获取了自己之前的项目打包出来的APK

二、APK查看

1.修改文件后缀名,点击进行查看


修改文件的后缀名,可以修改为一种压缩文件打包的文件后缀名,而后使用压缩文件解压的软件进行查看,这里采用将APK文件名修改为RAR

点击打开压缩文件进行查看
接下来对APK的包体结构进行分析

2.APK包体结构分析

  • META-INF APK的签名文件,是APK的正盗版的唯一表示,如果要对APK进行反编译或是替换APK的签名文件,则必然会对此文件夹下的内容进行操作
  • AndroidManifest.xml Android的配置文件,其中会包含四大组件和一些权限的基本信息,学过Android开发的同学这方面应该不难理解
  • dex文件,APK的相关执行代码、算法和逻辑都包含在其中,这里主要讨论以Java语言编写的Android项目,在Java语言编写的Android的项目中,各个类的代码和各个类之间的联系都会被打包扔进dex文件当中,在反编译时,可以使用dex2jar工具将拿到手的代码反编译成java源文件
  • resource.arsc,字符文件,对APK整体的字符显示进行修改,例如将一个英语的APK文件,修改为汉化的APK文件
  • • res目录,资源文件,如图片等文件;通过情况下,当我们想要模仿一个竞业APP的状态时,我们可以使用ApkTool获取其资源文件

总结

以上是一款APK的主体信息介绍,其实实际的APK包含的内容远远超过上述介绍的五大部分,但上述的五大部分是一款APK不可缺少的主题信息,一款APK缺少任一一部分主题信息都无法得以正确运行;因而弄清楚五大主题部分信息的主要作用至关重要。

移动安全:APK的基础结构相关推荐

  1. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程

    首先下载并安装安卓SDK和java的JDK 安卓sdk下载: http://www.android-studio.org/ 也可以在这下载: 链接:http://pan.baidu.com/s/1bp ...

  2. android 在设备上安装apk包

    使用adb 命令安装 1 打开cmd 命令 win+r 输入cmd 命令 打开控制面板 输入adb install 然后把把apk 拖拽进去然后回车即可 安装 2 adb 卸载apk 输入adb un ...

  3. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  4. 一个apk多个ICON执行入口

    一个工程对应一个AndroidManifest.xml文件,这个文件中包含有该项目的一些设置,如权限.SDk版Activity.Service信息等.一般而言,这个文件中会有且仅有一个applicat ...

  5. android预置第三方apk,android 内置APK成系统应用

    一. 这种方法必须要自己编写Android.mk文件(关于Android.mk可以参考),在研发中,自己有源码时,可以将APK的源码包置于Android源码中(比如:alps/package/apps ...

  6. Unity导出apk出现的问题,JDK,Android SDK,NDK,无“安装模块”

    导出apk失败 使用unity导出apk文件,会出现提示:需要合适版本的JDK.Android SDK和Android NDK,要找到.下载和安装好合适的版本非常耗费时间, 网上很多教程指出可以直接在 ...

  7. Android studio 获取每次编译apk时的日期

    项目中需要获取apk的编译日期,首先肯定是用手动的方式获取,但这样容易遗忘,怎么样通过代码的方式获取呢? 其实android 为我们提供了一个BuildConfig的类,android 每次编译的时候 ...

  8. Android APK加壳技术方案----代码实现

    本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8746917 作者:Jack_Jia    邮 ...

  9. Android如何防止apk程序被反编译

    作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来.Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sd ...

最新文章

  1. boost::sort模块实现提供多种分布的灵活随机数生成器的测试程序
  2. mysql 修复模式_Mysql表修复
  3. 安装Frida抓包工具
  4. Win7系统桌面右下角托盘图标不显示原因和解决方法
  5. python os.walk遍历目录_Python 用 os.walk 遍历目录
  6. SQL 分页查询的四种方法
  7. java导出excel超出65536条处理
  8. 78. Cookie
  9. win11问题记录:
  10. 直线和直线,直线和圆,直线和矩形的交点
  11. 史上最全的NB-IoT知识,每个通信人都应该了解的
  12. 小程序引导用户下载APP
  13. 短路与和与、短路或和或的区别
  14. 视频教程-JAVAEE真实课堂系列之XML全讲-云计算基础架构
  15. 【考研初试】问题汇总及解答
  16. 使用ctrl+alt+delete没有任务管理器选项,鼠标右键点击任务栏显示任务管理器不可用
  17. 锂电池的六个主要参数
  18. LeetCode q22
  19. Vegas的MP4渲染格式
  20. 关于TI CCS版本的一些个人观点

热门文章

  1. 基于FPGA的VGA时序控制器
  2. java-php-python-ssm蔬菜水果销售系统计算机毕业设计
  3. springboot - vue-element-admin 整合,修改原有的登录退出
  4. radis安装和使用
  5. 【k8s】Unable to restart cluster, will reset it: apiserver healthz异常
  6. 2016年智能楼宇趋势展望
  7. 7-8 病毒感染检测 (10分)
  8. 深入浅出业务幂等性---4、消息幂等
  9. oracle的LPAD方法用法
  10. 用 Elasticsearch 统计做了几次核酸检测?怎么破?