写点什么

hashmap 遍历,关于网络优化你必须要知道的重点,Android 岗

发布于: 2021 年 04 月 09 日

前言

博主 14 年毕业后从事 Android 移动应用开发,至今已是第六年了。在深圳摸爬滚打了好几年,也都是在小厂的圈子里跳来跳去。在我拿到这份新 offer 钱,15K 是我拿过的最高工资。已经有快一年没有涨过工资了。疫情在家隔离了两个多月,开始系统复习、学习。梅花香自苦寒来。终于是在五一前后获得了上市公司的 offer,虽不是什么一流大厂,但对于我来说,从 15K 的薪资涨到将近 30K,已经非常满足了。下面分享一下我的复习、学习指南,以及一些心得体会吧。

今天本文主要讲解:

APK 文件反编译


  • 什么是反编译

  • 如何防止反编译

  • APK 文件的基本构造


APK 加固的方案原理


  • APK 加固总体架构

  • APK 打包基本流程

  • Dex 文件的意义


AES 加密项目实战


  • APK 加固项目实战

  • APK 脱壳技术实战


一.APK 文件反编译

1.什么是反编译
  • 定义:利用编译程序从源语言编写的源程序产生目标程序的过程

2.怎么进行反编译?

先了解 apk 的文件构造结构



二.加固方案思想

一个程序员的故事:


辛辛苦苦找到一个对象,结婚后发现是个母夜叉。不给管钱就闹,晚上睡觉她趴着睡,导致这程序员无法去洗脚了。然而这个程序员很努力,平时除了上班,还能够做点外包,赚点外快。所以他就想到了把工资卡上交,而把赚到的外快放到了自己的小金库。从此过上了性福生活


一个加密的故事:


通过将非核心的 dex 文件进行暴露来达到保护核心 dex 文件的目的。


三.基本原理

3.1Apk 打包流程

加壳是在原来 apk 的基础上加一层保护壳,dex 文件修改了就需要重新打包,否则 apk 安装不了。这就需要我们详细学习 apk 如何打包的

3.2Dex 文件是什么

加固的目的是保护 dex,直接而言就是对 dex 文件进行操作,对 dex 文件动刀子,必须知道 dex 文件是什么,能否直接动刀子

3.3Dex 文件加载流程

加壳后的文件是不能直接用的,dex 文件是加密的,所以我们需要对他进行解密,解密后的 dex 文件如何加载?

3.4APK 文件是怎么生产的


四.加固总体框架


那么问题来了:


  • 如何达到加密效果?

  • 为什么是两个系列的 dex?

  • 壳 dex 怎么来的

  • 壳 dex 如何保护源 dex?

  • 如何签名?

  • 如何运行新 dex(如何脱壳)?

4.1 加密过程
4.2APK 文件如何签名


4.3APK 文件如何运行(脱壳)
4.4 如何制定某些类在 main dex 中
  • multiDexKeepFile:手动加入要放到 Main.dex 中的类


com.umeng.analytics.Abb.class
复制代码


  • multiDexKeepProguard:以 Proguard 的方式手动加入要放到的 Main.dex 中的类


-keep public class com.tencent.bugly.**{*;}
复制代码

结尾

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。


这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套**进阶学习的视频及面试专题资料包**,在这里免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~




用户头像

VX公众号:编程进阶路 2020.11.28 加入

还未添加个人简介

评论

发布
暂无评论
hashmap遍历,关于网络优化你必须要知道的重点,Android岗