2320087128 发表于 2022-1-16 20:07

某多多ZC算法解析(老版本但是新版本应该是一个套路)

最后是调用Unidbg 实现的算法处理
用到的工具:jdax - jeb 算法助手(用于hook,方便),Unidbg雷电模拟器
实现的是某多多手机号注册,或者授权同理
第一次发帖如果有问题或者侵权联系我删除,app版本不是最新版本。

步骤如下:
第一步抓包:


可能不太直观,解析下Json

发现是有2个加密的地方

【touchevent】【fingerprint】这2个参数不知道是从哪里来的
然后反编译APP看看源码,先看第一个



然后知道g2的值是哪里来了
String g2 = g();
然后进g()这个方法里面




String jSONObject2 = jSONObject.toString();
str = g.c(k.a(jSONObject2.getBytes()));

目前我们不知道jSONObject2 是啥样子,但是在图上可以看到
LogUtils.d(jSONObject2);
LogUtils.d(str);
它输出了这2个值


这个hookapp叫算法助手,感谢大佬开发后上传到论坛,很方便。我就不提供下载了。
hook的值如下:
jSONObject2的值:


str加密完事后的值:


然后知道了参数,知道了结果,只需要去看看最后的加密过程了

k.a(jSONObject2.getBytes());



附上我后反编译的图片



没发现其中还有加密,可以直接使用,最后会公布调用情况

然后就有点明了了
str = g.c(gzip(jSONObject2.getBytes()));

找到g.c这个方法



return SecureNative.nativeGenerate(bArr);
在进入这个方法



发现了是进入so调用这个方法,只需要传递一个byte[] bArr 就行了,在hook看看它传递进去的值




然后我们先看看gzip还有没经过一层加密,调用例子按照易语言为实例



然后Unidbg 去实现,调用so这个加密 ,然后touchevent这个加密就弄完了,复刻出来了,只需要伪造里面的参数就行了



hook nativeGenerate这个方法的时候,也把fingerprint这个加密也hook出来了,我就不去找来源了



看看里面的参数



然后因为加密的方式一样



这样就实现了它的加密了。

2320087128 发表于 2022-1-17 15:58

天使3号 发表于 2022-1-17 10:29
配合改机软件可以当新用户无限砍一刀不

这属实没试过

天使3号 发表于 2022-1-17 10:29

配合改机软件可以当新用户无限砍一刀不

bestwars 发表于 2022-1-17 11:24

学习了   有点意思,同问楼上内容。。。

等到烟火也清凉 发表于 2022-1-17 11:36

天使3号 发表于 2022-1-17 10:29
配合改机软件可以当新用户无限砍一刀不

:lol 是朋友就砍一刀....

wasm2023 发表于 2022-1-17 13:24

给楼主砍一刀,表示支持

cub1c2 发表于 2022-1-17 14:56

好详细!新人学习了

tencentma 发表于 2022-1-17 16:59

这玩意我觉得可以试试看,抓包第一步

可坏 发表于 2022-1-18 09:23

要砍6位数的刀次,楼主加油。

sxhzsj 发表于 2022-1-18 09:49

楼主辛苦了,谢谢分享!
页: [1] 2
查看完整版本: 某多多ZC算法解析(老版本但是新版本应该是一个套路)