前言
一道so文件动态加解密的CrackMe,运行时解密要执行的函数,且在执行后立马加密CrackMe:dex文件加的数字壳,so文件无壳,因为反调试,所以so文件采用全静态分析
分析环境:脱壳工具:FART...libnative-lib.so文件中的test函数
2.3 分析so文件
首先分析so文件提前加载的三处函数(init、init_array、JNI_OnLoad)
用readelf -d查看是否有init...,用于解析JNI函数
接着分析ooxx函数
sub_8930函数的内容如下:
其中sub_8A88函数的作用是获取so文件的加载基址,如下:
获取so文件的加载基址的方法是,通过读取CrackMe..., 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
0x30, 0x31, 0x32..., 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
0x30, 0x31, 0x32