404nofound 发表于 2021-9-15 10:53

霸哥磁力搜索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)

404nofound 发表于 2021-9-16 09:49

北辰没有林安 发表于 2021-9-15 11:23
既然是oncreate,用某加固抽了,就算过签了也没得玩了吧

没错,这种只适用于简单的情况

404nofound 发表于 2021-9-15 14:32

北辰没有林安 发表于 2021-9-15 11:23
既然是oncreate,用某加固抽了,就算过签了也没得玩了吧

是滴那,简单的可以这么玩

北辰没有林安 发表于 2021-9-15 11:23

既然是oncreate,用某加固抽了,就算过签了也没得玩了吧

zhangxu888 发表于 2021-9-15 11:33

直接NOP掉getSignHashCode也行吧

怜渠客 发表于 2021-9-15 13:34

有些启发{:301_1009:}

lx771602764 发表于 2021-9-15 14:21

学习到了

404nofound 发表于 2021-9-15 14:33

zhangxu888 发表于 2021-9-15 11:33
直接NOP掉getSignHashCode也行吧

应该也是可以的,可以试下

ll090822 发表于 2021-9-15 15:19

谢谢楼主的分享和努力

nuller 发表于 2021-9-15 15:39

签名还是有用的,只要不影响用户体验。

zhang4815 发表于 2021-9-15 16:27

学习学习!
页: [1] 2 3
查看完整版本: 霸哥磁力搜索apk过签名校验