赞
踩
签名验证,就是在APP中写入自己私钥的hash值,和一个获取当前签名中的私钥hash值的函数两个值相一致,那么就说明APP没有被改动允许APP运行。 如果两值不一致那么说明APP是被二次打包的,APP就自我销毁进程。 签名验证可以在两个地方做,一个是在MainActivity.java的OnCreate函数中做,一个是在原生代码文件的JNI_OnLoad函数中做。
用Android killer随意改下smail代码然后重新打包,发现APP闪退。
签名校验一般都是在MainActivity.java的OnCreate函数中做,或者是在原生代码文件的JNI_OnLoad函数中做,首先查看OnCreate,里面有个qian,跟进去看看。
qian里面就是查看APP哈希值是否改变,这是第一个地方。
这里调用了一个bug,而bug写在了so里面,有很大嫌疑,ida看见这个so。
IDA查看bug这个函数采用的是静态注册,里面调用了一个getSignHashCode,跟进去看看。
首先处理So文件,把exit换成nop,然后到处替换原来的so。
然后修改smail代码,把调用qian的地方给注释掉然后重新打包。
重打包后签名校验已经过掉了。
console.log("wx:spiderskill")
欢迎大家前来交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。