cover_image

Android so加固

liumengde 看雪学苑
2018年05月12日 09:59

开源代码地址:https://github.com/liumengdeqq/CustomLinker.git

   

   

 一、so的加载过程分析



      图片

   


二.分析系统加载so的原理


     

(1)用mmap函数映射so文件到内存 

             图片

        

2)映射内存根地址

         图片

          

(3)映射so代码load内存

        图片

         

(4)映射soinfo结构体和重定向


图片

             

(5)重定向系统函数


图片

           

(6)调用初始化函数和函数数组


图片

        

(7)还原系统权限


图片

        

(8)单个函数加密


图片


          

三、难点分析


       

(1).在android 7.0之后dlopen不返回soinfo结构体,通过读取maps 获取基地址读取系统so的结构体

       

(2).在android5.1之后 出现read被pread64函数读取so的结构

       

(3).在android4.1.2 5.0 7.0等page_size 也是内存大小有改变

       

(4).在android4.4之后都是c++ 考虑安全问题 用c语言实现

    


四、加固前后对比图



图片



图片



本文由看雪论坛 liumengde 原创

转载请注明来自看雪论坛



往期热门阅读:



图片

扫描二维码关注我们,更多干货等你来拿!



继续滑动看下一个
看雪学苑
向上滑动看下一个