• Android-IO加解密核心与dex文件改造过程分析


    IO加解密核心与dex文件改造过程分析

    技术点

      1.IO应用加解密核心原理
      2.文件加密的意义
      3.文件加密与文件混淆
      4.初探加密算法
      5.dex文件加密与解密
      6.APK打包流程与加壳过程
      7.APK解包流程与脱壳过程

    加密

      加密就是自己搞一套自己知道的搞乱手段
      加密在整体业务的一个具体地位:
        1.做加密的人----》算法
        2.用算法的人
        3.算法 = 方案 = 搞乱数据的方案 = 搞乱 + 恢复

    数字签名-哈希散列

      数字签名:一般用来固定某个数据,然后进行加密后得到密文
    作用:
      证据的固定 SHA1

    MD5算法

      MD5用的是哈希函数,它的典型应用是对一段信息产生信息摘要,以防止被篡改,严格的说,MD5不是一种加密算法而是摘要算法,无论多长的输入,MD5都会输出长度为128bits的一个串,通常用16进制,表示为32字符。
    对称加密和非对称加密
      加密算法分对称加密和非对称加密,其中对称加密算法的加密和解密密钥都相同,非对称加密算法的加密密钥和解密密钥不同,此外,还有一类不需要密钥的散列算法。

    SHA1算法:

      SHA1和MD5一样流行的信息摘要算法,然而HA1比MD5安全性更高,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要,基于MD5、SHA1的信息摘要特性以及不可逆,可以被用来检查文件完整性,数字签名等场景

    对称加密和非对称加密

    AES算法

      AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持位128位,192位,256位,分组长度128位,算法应易于各种硬件和软件实现,这种加密算法是美国联邦政府采用的区块加密标准

    RSA算法

      RSA加密算法是目前最有影响力的公钥加密算法,并且被普遍认为是目前最优秀的公钥方案之一,RSA是第一个能同时用于加密和数字签名的算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。

    ECC算法

      ECC也是一种非对称加密算法,主要优势是在某些情况下,它比其他的方法使用更小的密钥,比如RSA加密算法,提供相当的更高等级的安全级别,不过一个缺点是加密和解密的操作的实现比其他机制时间更长(相比于RSA算法,该算法对CPU的消耗严重)

    各算法比较

    在这里插入图片描述

    android对于加密的应用

    APK加固

    1.加固的基本原理
    (1)Dex文件是什么?
      加固的目的是保护dex,直接而言就是对dex文件进行操作,对dex文件是什么,是什么源dex,什么是壳dex?
    (2)Apk打包流程?
      加壳是在原来apk的基础上加上一层保护壳,dex文件修改了就需要重新打包,否则apk安装不了,这就需要我们详细学习apk如何打包
    (3)dex文件加载流程?
      加壳后的文件是不能直接用的,dex文件时加密的,所以我们需要对他进行解密,解密后的dex文件如何加载?

    壳程序

    (1)什么是壳程序?
      他就是能够在自己的源程序运行之前跑的一个程序,因为dex文件被加载了之后,需要dexClassLoad进行加载才运行
    (2)思路
      壳的思路就是在不动当前源程序的dex的时候,去加壳的dex,两段代码分别做成两个dex,然后生成新的apk,将apk进行4字节对齐整理,目的压缩空间,然后进行签名
    (3)弊端
      因为是两个dex,一个加密,一个解密,一定程度上相当于没加密,因为加密解密程序给出去了,因为在破解和防护的过程中,核心思路是让别人猜不到你的想法,再深一层,用C写,打SO库,多文件,SO做混淆搞几个假对象出来

  • 相关阅读:
    C# 多线程造成CPU占用率高
    备战金九银十,为Java岗准备全套架构视频 +大厂面经+面试专题
    Vue3+nodejs全栈项目(资金管理系统)——前端篇
    IDEA的Git操作——拉取、对比开发代码
    DJ13-1 汇编语言程序设计-2
    心法利器[62] | 向量召回和字面召回的选择与权衡
    JSON.stringify()的深入学习和理解
    嵌入式分享合集94
    学习笔记二十三:Deployment入门到企业实战应用
    Allure精通指南(01)介绍与基本使用
  • 原文地址:https://blog.csdn.net/weixin_43580319/article/details/126761151