1. 这个是google 官方的,原理主是一个vm的壳,使用libpairip.so和java一起交叉校验, java会检查apk包的签名是不是正确的。然后libpairip会检查dex的crc是不是正确的。 然后libpairip会开线程,开定时检查一些gdb和frida之类的,检查到就会来个异常把进程搞死.
2. 签名绕过的第一个办法是修改java的dex, 然后使用apkanalizer+把dex的crc修正,因为是crc修正很容易,只需要修改或者插入一个无用的字符,让它最后crc等于原来的就好 了。apkanalizer+的原理应该也是如此,因为它需要先读取原版的crc,再把把新修改的dex的crc等于原来的。
3。 签名绕过的第二个办法是不要改dex, 改一下androidmanifest.xml, 把 com.pairip.application.Application改成android.app.Application. 原理是com.pairip.application.Application简单继承了android.app.Application, 只是多了一些签名验证,刚好我们不需要,使用基类跑就好了。
4. FRIDA 和gdb的检测,直接想办法在它的检测线程插个函数sleep无限时间即可,让它崩几次,找到崩的地方,看它第一层的返回地址,找到这个函数进行补丁。也可以使用stalker来跟一下。