2021-02-02(android安全)

android安全

  1. 网络安全
    应用层网络协议HTTP、WebSocket等


    微信截图_20210202095728.png

Http半双工/WebSocket双全工 (ws/wss 不加密/加密)
数据通信加密==对称、非对称加密区别:

对称加密:加密(encryption)与解密(decryption)用的是同样的密钥(secret key)
非对称加密:它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥

DNS污染:

例OKHttp中DNS解析失败,采用ip访问

中间层攻击:

xml配置禁止自签名证书
  1. 加固


    微信截图_20210202114611.png

    原理:类似于热修复技术(hook、gradle、dex加密、打包)

    加固过程:
    1.源程序

源程序也就是我们的要加固的对象,这里面主要修改的是原apk文件中的classes.dex文件和AndroidManifest.xml文件。

2.壳程序

壳程序主要用于解密经过加密了的dex文件,并加载解密后的原dex文件,并正常启动原程序。

3. 加密程序

加密程序主要是对原dex文件进行加密,加密算法可以是简单的异或操作、反转、rc4、des、rsa等加密算法。

该加固过程可以分为如下4个阶段:

(1) 加密阶段

(2)合成新的dex文件

(3)修改原apk文件并重打包签名

(4)运行壳程序加载原dex文件

加密阶段
加密阶段主要是讲把原apk文件中提取出来的classes.dex文件通过加密程序进行加密。加密的时候如果使用des对称加密算法,则需要注意处理好密钥的问题。同样的,如果采用非对称加密,也同样存在公钥保存的问题。

合成新的dex文件

上一步生成的加密的dex文件和我们的壳dex文件合并,将加密的dex文件追加在壳dex文件后面,并在文件末尾追加加密dex文件的大小数值

签名

运行壳程序加载原dex

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 反编译 反编译代码 dex2jar 这个工具用于将dex文件转换成jar文件 jd-gui 这个工具用于将jar文...
    MrGeekr极氪阅读 339评论 0 0
  • 声明:原创文章,转载请备注来源:http://shuwoom.com/?p=360&preview=true 10...
    空同定翁阅读 2,302评论 0 6
  • Author:杨空明 Date:2018-8-17 一、前言 Android开发者常常面临的一个问题就是防破解、 ...
    问心2018阅读 29,354评论 4 66
  • 1、网络请求——裸奔的数据 无论是网页还是APP,都不可避免与后台服务进行访问,可能从服务器获取数据或者提交数据到...
    dfqin阅读 10,072评论 0 16
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,045评论 2 59