吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 32882|回复: 42
上一主题 下一主题
收起左侧

[Android 原创] 用xposed绕过重签名后qq登录显示“非官方正版应用”的验证

  [复制链接]
跳转到指定楼层
楼主
z14mian 发表于 2019-1-21 22:42 回帖奖励
本帖最后由 z14mian 于 2019-1-22 10:01 编辑

一、前言
众所周知,如果一个app重新签名了之后,在调用qq进行第三方登录时,会显示“非官方正版应用”。

这就很令人难受了,卡在最后一步,的确会很让人抓狂。而且网上也貌似很少有这方面的教程(这让我等小白更抓狂了)。在一次机缘巧合下,看到了四哥的一篇文章:http://www.520monkey.com/archives/1009。四哥介绍了两种方式,一种是写xp插件,一种是直接改qq。改qq的话,一个是重编译麻烦,一个是只能自己用(毕竟别人也不敢随便用被改过的qq)。然后四哥说了一句话:写xp模块现在谁都会了,我们讲另一种好了。
Emmmmm
(⊙﹏⊙)
不!我不会!
于是就有了这篇帖子

二、分析
1. 在上面那个框出现的时候,用adbshell dumpsys activity top直接就能找到类名


2. 把qq安装包中的classes.dex拉出来,用jadx反编译软件打开,可以直接看到java代码。按照路径展开到目标位置,然后看代码。如图,日志已经出卖了你。

也就是说,这里的string a 就是app的签名md5值。我们只需要hook他就好了。先确认一下参数类型:instance是MessageDigest类,所以instance.digest()是byte[]类型(百度就有了)。

3. 按下ctrl,上面的HexUtil会变成可点。点过去。


4. 从页面最上的package可以看到类名com.tencent.mobileqq.utils。然后问题来了,这里有很多个a方法(因为被混淆过了),但是上面我们已经确定了参数是byte[],所以直接就能找到。

准备开搞

三、写xposed插件
1. 基础教程,可以看这里:https://blog.csdn.net/csdn_lqr/article/details/52245132

2. 开撸,代码如下
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.cy.qq;
import android.app.AndroidAppHelper;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
 
public class hook implements IXposedHookLoadPackage {
 
    public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
            if (!lpparam.packageName.contains("com.tencent.mobileqq"))
            return;
             
            XposedHelpers.findAndHookMethod("com.tencent.mobileqq.utils.HexUtil", lpparam.classLoader, "a", byte[].class, new XC_MethodHook() {
                protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                    super.beforeHookedMethod(param);
                }
 
                protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                    super.afterHookedMethod(param);
                    byte[] signatures = (byte[]) param.args[0];
                    String sign = bytesToHex(signatures);
                    XposedBridge.log("输出 ------------- " + sign);
                    AndroidAppHelper.currentApplication();
                    if (sign.equals("自己app签名md5")) {
                            String result="正版签名md5";
                        param.setResult(result);
                    }
                }
            });
        }
     
 
    public static String bytesToHex(byte[] bytes) {
        StringBuffer sb = new StringBuffer();
        for (byte b : bytes) {
            String hex = Integer.toHexString(b & 255);
            if (hex.length() < 2) {
                sb.append(0);
            }
            sb.append(hex);
        }
        return sb.toString();
    }
 
}

加了原签名md5判断的原因是,这个方法并不是验证签名专用的,如果无条件直接返回自己的值,会影响程序的运行,以及其他的程序都没办法用qq登录了。

3. 写完后,打包安装xp框架打勾重启。启动修改过的第三方app,搞定,成功绕过



四、其他
因为只是hook了程序,没有涉及到hook系统和资源布局,所以这个模块还可以用于免root的virtualxposed框架。


萌新第一次发帖,各位大佬多多指教 (>▽<)

免费评分

参与人数 12吾爱币 +21 热心值 +11 收起 理由
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
oriwqz + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
huzhangqiang011 + 1 用心讨论,共获提升!
Vsir + 1 + 1 我很赞同!
草月花舍 + 1 + 1 谢谢@Thanks!
海天 + 1 + 1 用心讨论,共获提升!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
多幸运遇见baby + 1 + 1 用心讨论,共获提升!
hunteraa + 1 + 1 微信可用吗?
bolipapadu + 1 + 1 谢谢@Thanks!
兔子我是胡萝卜 + 1 谢谢@Thanks!
瓜子吧3 + 3 + 1 这个是真的厉害,

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
推荐
Wise_58 发表于 2019-1-22 09:20
提示: 作者被禁止或删除 内容自动屏蔽
推荐
涛之雨 发表于 2019-1-28 21:02
所以。。。楼主有没有直接安装就行的办法。。。
总不至于出去装个逼还要给人家装一套框架吧(虽然vxp相对来说好多了)
3#
瓜子吧3 发表于 2019-1-21 23:07
4#
lei191650 发表于 2019-1-21 23:08
成品可以发出来测试一下最好了
5#
小泪痕 发表于 2019-1-22 00:11
看看学习一下 支持了
6#
可惜没如果i 发表于 2019-1-22 03:49

看看学习一下 支持了
7#
禽·兽 发表于 2019-1-22 06:37
虽然看的一脸懵逼但是小白还是表示下膜拜
8#
xudongchu 发表于 2019-1-22 08:02
谢谢您的分享!!!
9#
三号小学生 发表于 2019-1-22 09:05
感谢楼主分享
10#
z6810753 发表于 2019-1-22 09:23 来自手机
之前hook过这个地方,不过有问题,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-7-11 22:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表