作者论坛账号:genliese
1. 前言
一道so文件动态加解密的CrackMe,运行时解密要执行的函数,且在执行后立马加密CrackMe:dex文件加的数字壳,so文件无壳,因为反调试,所以so文件采用全静态分析
分析环境:脱壳工具:FART
GDA
IDA
Frida
PyCharm
VSCode
2. 分析过程
2.1 脱壳
拿到FART定制ROM下跑,得到想要的dex文件,数字壳抹去了前八个字节的dex文件魔数,需要填充一下,才能用GDA进行解析
2.2 定位校验函数
从上图可知,校验函数为libnative-lib.so文件中的test函数
2.3 分析so文件
首先分析so文件提前加载的三处函数(init、init_array、JNI_OnLoad)
用readelf -d查看是否有init、init_array
发现只有init_array,用IDA查看init_array数组中的函数
datadiv_decode4192348989750430380函数的作用是解密字符串
接着分析JNI_OnLoad函数,导入jni.h头文件,用于解析JNI函数