霸哥磁力搜索apk过签名校验
# 一、什么是签名校验签名验证,就是在APP中写入自己私钥的hash值,和一个获取当前签名中的私钥hash值的函数两个值相一致,那么就说明APP没有被改动允许APP运行。 如果两值不一致那么说明APP是被二次打包的,APP就自我销毁进程。签名验证可以在两个地方做,一个是在MainActivity.java的OnCreate函数中做,一个是在原生代码文件的JNI_OnLoad函数中做。
# 二、验证是否是签名校验
用Android killer随意改下smail代码然后重新打包,发现APP闪退。
![在这里插入图片描述](https://img-blog.csdnimg.cn/71d7e6bccb984962bc54a620b8e9a6db.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_15,color_FFFFFF,t_70,g_se,x_16)
# 三、Jadx查看JAVA代码/IDA查看so
签名校验一般都是在MainActivity.java的OnCreate函数中做,或者是在原生代码文件的JNI_OnLoad函数中做,首先查看OnCreate,里面有个qian,跟进去看看。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f101553863eb445181e4c42c09f65bbb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)qian里面就是查看APP哈希值是否改变,这是第一个地方。
![在这里插入图片描述](https://img-blog.csdnimg.cn/0f1ea884a982401c8e4ec616ae5b2546.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
这里调用了一个bug,而bug写在了so里面,有很大嫌疑,ida看见这个so。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cfc1c3c3c0bc49c8832cf8a469302ca2.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/b2c1cb581584464db647cc6087f21bbc.png)
IDA查看bug这个函数采用的是静态注册,里面调用了一个getSignHashCode,跟进去看看。
![在这里插入图片描述](https://img-blog.csdnimg.cn/a25c6e65c9b1453e8ae1739f66909899.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0f2baee42bc436997cefa1f855f403b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
# 四、过签名校验
首先处理So文件,把exit换成nop,然后到处替换原来的so。
![在这里插入图片描述](https://img-blog.csdnimg.cn/f81eac6a07154c4583c1b4c62624e838.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_16,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/fb528bb1192746a2b6b98a0e6275766b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_18,color_FFFFFF,t_70,g_se,x_16)
然后修改smail代码,把调用qian的地方给注释掉然后重新打包。
![在这里插入图片描述](https://img-blog.csdnimg.cn/447451d2f8a34950898caa92263c0dde.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_20,color_FFFFFF,t_70,g_se,x_16)
重打包后签名校验已经过掉了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/be26c86592434ea4957105a77a1b6508.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBANDA0Tm9vRm91bmQ=,size_15,color_FFFFFF,t_70,g_se,x_16) 北辰没有林安 发表于 2021-9-15 11:23
既然是oncreate,用某加固抽了,就算过签了也没得玩了吧
没错,这种只适用于简单的情况 北辰没有林安 发表于 2021-9-15 11:23
既然是oncreate,用某加固抽了,就算过签了也没得玩了吧
是滴那,简单的可以这么玩 既然是oncreate,用某加固抽了,就算过签了也没得玩了吧 直接NOP掉getSignHashCode也行吧 有些启发{:301_1009:} 学习到了 zhangxu888 发表于 2021-9-15 11:33
直接NOP掉getSignHashCode也行吧
应该也是可以的,可以试下 谢谢楼主的分享和努力
签名还是有用的,只要不影响用户体验。 学习学习!