安卓逆向—霸哥磁力搜索apk过签名校验

一、什么是签名校验

签名验证,就是在APP中写入自己私钥的hash值,和一个获取当前签名中的私钥hash值的函数两个值相一致,那么就说明APP没有被改动允许APP运行。 如果两值不一致那么说明APP是被二次打包的,APP就自我销毁进程。 签名验证可以在两个地方做,一个是在MainActivity.java的OnCreate函数中做,一个是在原生代码文件的JNI_OnLoad函数中做。

二、验证是否是签名校验

用Android killer随意改下smail代码然后重新打包,发现APP闪退。
在这里插入图片描述

三、Jadx查看JAVA代码/IDA查看so

签名校验一般都是在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")
欢迎大家前来交流
posted @ 2021-09-15 10:50  FalsePlus  阅读(62)  评论(0)    收藏  举报