前言
在目前许多的Android应用加固中,都用到了so文件,并且通过针对so文件的section table进行混淆处理,以避免ida等逆向工具进行静态分析,因为在Android源码中,so的加载是完全不需要section信息的。
在此之前,很多文章都已经写到过关于Android so加载的流程,但很多都是基于Android4.x系统
虽然流程大同小异,但在Android5.0以后已经从Dalvik转换成ART,文件关系上已经对不上
因此,我针对Android7.1.2_r28的代码,对so加载过程进行分析
so加载
在加载一个so的时候,必然要写一句
1 | System.loadLibrary("native-lib"); |
那么,我们就从这个函数看起