一、__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