快手__nsTokensig和sig签名算法分析

本文详细探讨了快手极速版中的两个签名算法:__nstokensig和sig。__nstokensig签名主要涉及str和str2,str2是登录后返回的kuaishou.api_client_salt。算法经过SHA-256计算和d.a()处理。sig签名则在SO层实现,通过Xposedhook观察到其参数包括Context、byte[]和int,主要操作是对两个Map进行合并和排序。通过Xposedhook获取参数值并调用SO函数完成签名过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、__nstokensig签名

最近在学习android逆向,不足之处欢迎大佬多多指点。
这次分析的是快手极速版1.2.2.8,使用Fiddler抓包发现有2个签名,一个是__nstokensig和sig。

通过jadx-gui搜索字符串找到nstokensig算法,只在java层
第一层第二层

这里我就不继续往下跟e.a了,实际上他就是判断编码的操作。通过上面第一层发现,是传递str和str2进行签名,接下来我们hook一下他的传参数据。
在这里插入图片描述
通过xposed hook观测得知,str是sig签名结果,str2是kuaishou.api_client_salt,也就是在快手登录之后返回的一个值,这个值后续包是抓不到的。只有登录的时候才有。

得到传参后,我们回到刚刚的第二层,发现他先用 sha-256 计算之后,还调用了d.a(),我们跟进去看即可拿到java层算法,直接抠出来即可。
在这里插入图片描述

以下就是扣好的nstokensig签名

// An highlighted block
   public String getNsTokenSig(String sig,String token) throws NoSuchAlgorithmException {
   
   
        String str2 = sig+token;
        return new String(b(MessageDigest.getInstance("SHA-256").digest(str2.getBytes())));
    }

    private static char[] b(byte[] bArr) {
   
   
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值