原标题:Andriod so加固
随着移动互联网的爆发性增长,人们对移动应用的需求变得越来越复杂,企业在带给用户众多便利和享受的同时,却容易忽视应用自身的安全性问题,一旦遭受攻击,就会给企业和用户的经济或声誉带来影响。本文主要是站在企业的角度,阐述如何通过给android SO(动态链接库)加壳来提升移动APP的安全性,减少SO被逆向反汇编分析的风险。
一、so 的加载过程分析
二、分析系统加载 so 的原理 1、用 mmap 函数映射 so 文件到内存
2、映射内存根地址
3、映射 so 代码 load 内存
4、映射 soinfo 结构体和重定向
5、重定向系统函数
6、调用初始化函数和函数数组
7、还原系统权限
8、单个函数加密
三、难点分析
1、在 android 7.0之后 dlopen 不返回 soinfo 结构体,通过读取 maps 获取基地址读取系统 so 的结构体 2、在 android 5.1之后 出现 read 被 pread 64函数读取 so 的结构 3、在 android 4.1.2 5.0 7.0等 page_size 也是内存大小有改变 4、在 android 4.4之后都是 c++ 考虑安全问题 用 c 语言实现
四、加固前后对比图
开源代码地址:https://github.com/liumengdeqq/CustomLinker.git返回搜狐,查看更多
责任编辑: