总结:可以把这个函数改造。构造一个能够去调用它参与逻辑的,增强反回编的难度。
由于这个解密函数是java层面的,且不是很复杂。因此通过PY读取所有的Smali文件。通过“Lcom/xshield/aa;->E”匹配,对上面的加密字符串解密,解密完以后替换,并且删除静态调用指令。
动态运行起来以后在对应的/data/data/包名/下有一个.imsi.jar,里面会发现主类和对应安全SDK的加载。
总结:这种来看是通过动态加载classload这个jar包,之前看过一家韩国公司的加固也是这样的。
首先在JNI_OnLOAD处下断点,发现运行到这个时候,闪退,有反调试。
在.init处下断点,首先进去对于字符串的解密,解密完以后,对 /proc/self/net/unix进行读取,
这时候可以把对应的so Dump下来。进行静态分析。核心的函数是没有做混淆处理的。