Android开发经验谈Android进阶之路

Android 应用安全 - 应用加固概念

2021-01-28  本文已影响0人  盛世光阴

Android 应用安全 - 应用安全概览
Android 应用安全 - 移动应用安全
Android 应用安全 - Mobile安全漏洞Top10(OWASP)
Android 应用安全 - 案例
Android 应用安全 - 检测设备是否Root
Android 应用安全 - 加密算法
Android 应用安全 - 应用加固概念

前言

应用加固技术本质上就是为源APK进行加密,然后套上一层壳,从而使应用程序多一层防护,避免很容易被反编译获取敏感信息,并且可以在壳APK中增加运行安全环境检测,进一步增强应用防护性

1.应用加壳原理

加固.PNG

2.Dex文件结构

Dex(Delvik Excutable) 时android平台上虚拟机的可执行文件,类似于java平台上编译生成的的class执行文件,windows平台上的exe文件,里面包含了应用程序的源代码,通过反编译工具可以得到对应的Java class文件

Dex Format

由于我们会将将源APK与壳Dex文件合并生成新的Dex文件,所以为了保证我们合并后的Dex文件是一个合法的Dex文件,所以我们需要了解 Dex Header 的一部分

当我们进行Dex文件拼接时,需要对checksum,signature ,file_size 做修改从而保证新生成Dex文件的合法性

3.源APK准备

准备加固的APK文件

4.壳APK准备

由于最终生成的APK是依赖于壳APK中,壳APK最终还是需要加载源APK中的内容,所以壳APK主要有以下几个工作:

5.将壳Dex与源APK合并生成新的Dex文件

将源APK读取进行数据加密之后拼接在壳Dex文件尾部生成新的壳Dex文件

6.在壳APK运行时获取自身Dex文件并且脱壳出源APK文件

7.动态加载源APK的Dex文件

ActivityThread

欢迎关注Mike的简书

Android 知识整理

上一篇 下一篇

猜你喜欢

热点阅读