当前位置: 首页 > news >正文

Android中的APK打包与安全

aapt2命令行实现apk打包

apk文件结构

在这里插入图片描述

  • classes.dex:Dex,即Android Dalvik执行文件

  • AndroidManifest.xml:工程中AndroidManifest.xml编译后得到的二进制xml文件

  • META-INF:主要保存各个资源文件的SHA1 hash值,用于校验资源文件是否被篡改,防止二次打包时资源文件被替换,该目录下主要包括下面三个文件:

    • MANIFEST.MF:保存版本号以及对每个文件(包括资源文件)整体的SHA1 hash
    • CERT.SF:保存对每个文件头3行的SHA1 hash
    • CERT.RSA:保存签名和公钥证书
  • res:res目录下资源文件编译后得到的二进制xml文件

  • resources.arsc:包含了所有资源文件的映射,可以理解为资源索引,通过该文件能找到对应的资源文件信息

aapt2打包流程

在这里插入图片描述

  1. 通过aapt2打包res资源文件:生成R.java、resoucres.arsc和res文件
  2. 通过Javac编译R.java、Java源文件:生成class文件
  3. 通过d8命令:将class文件和第三方库中的class文件处理生成classes.dex
  4. 通过aapt2工具:将aapt生成的resoucres.arsc和res文件、未编译的资源assets文件和classes.dex一起打包生成apk
  5. 通过zipalign工具:将未签名的apk进行对齐处理
  6. 通过apksigner工具:对上面的apk进行debug或release签名

在这里插入图片描述

aapt2命令行实现打包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照上面的顺序使用各个命令便可以打包生成一个apk包了。

Gradle构建工具打包

如果使用传统的aapt2的方式打包,在多模块的情况下将会十分的麻烦。幸好,gradle已经将上述的命令集成了在了各个task中。
在这里插入图片描述

APK安全攻守道

风险种类风险描述解决方案
App防止反编译被反编译会暴露客户端逻辑,加密算法,密钥等等I加密,邦邦加固,360加固包等
资源文件泄漏风险获取图片,js等文件资源混淆(AndResGuard),加固等
so文件破解风险导致核心代码逻辑泄漏so加固
测试开关的代码被打包发布通过测试的url,测试账号等对正式服务器进行攻击正式服务器与测试服务器不要使用同一个
Root设备运行风险已经root的手机通过获取应用的敏感信息等root手机禁止应用启动
模拟器运行风险刷单,模拟虚拟位置等禁止在虚拟器上运行
截屏攻击风险对app运行中的界面进行截图或录制来获取用户信息添加属性getWindow().setFlags(FLAG_SECURE,FLAG_SECURE)不让用户截图和录屏
输入监听风险用户输入的信息被监听自定义键盘
http://www.lryc.cn/news/139671.html

相关文章:

  • HTTPS单向认证与双向认证
  • (七) ElasticSearch 分词器
  • 足球- EDA的历史数据分析并可视化
  • 用正则处理Unicode 编码的文本
  • 【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
  • 生成式人工智能的潜在有害影响与未来之路(三)
  • 【2023钉钉杯复赛】A题 智能手机用户监测数据分析 Python代码分析
  • Django(5)-视图函数和模板渲染
  • Windows下 MySql通过拷贝data目录迁移数据库的方法
  • RabbitMQ---订阅模型-Fanout
  • nginx 中新增url请求参数
  • [系统] 电脑突然变卡 / 电脑突然** / 各种突发情况解决思路
  • 改进YOLO系列:8.添加SimAM注意力机制
  • Go与Rust的对比与分析
  • SpingMVC拦截器-异常处理的思路,用户体验不好的地方
  • 【C++设计模式】用动画片《少年骇客》(Ben10)来解释策略模式
  • 软件测试及数据分析处理实训室建设方案
  • 切换Debian的crontab的nano编辑器
  • Spring Cloud Alibaba-Sentinel--服务容错
  • Stable Diffusion 系列教程 | 如何获得更高清优质的AI绘画
  • 食品饮料制造行业如何实现数字化转型和工业4.0
  • UE学习记录03----UE5.2 使用MVVM示例
  • 代码审计-审计工具介绍-DAST+SAST+IAST项目
  • 网络安全应急响应预案培训
  • STM32F4X 定时器中断
  • MongoDB +Dataframe+excel透视表
  • PostgreSQL日期相关
  • C++编程法则365天一天一条(8)const_cast去除cv限定
  • 某网站DES加密逆向分析实战
  • 面向对象的理解