写点什么

android 棋牌游戏开发,阿里 P8 亲自教你

发布于: 刚刚

今天本文主要讲解:

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.**{*;}
复制代码

文末

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家


这里笔者分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司 2021 年的面试题,把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。




【视频教程】



天道酬勤,只要你想,大厂 offer 并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。


**本文已被[CODING 开源项目:《Android 学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](


)



收录**


最后自我介绍一下,小编 13 年上海交大毕业,曾经在小公司待过,也去过华为、OPPO 等大厂,18 年进入阿里一直到现在。

深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此也是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

用户头像

还未添加个人签名 2021.10.19 加入

还未添加个人简介

评论

发布
暂无评论
android棋牌游戏开发,阿里P8亲自教你