抖音12.9协议初探

工作的原因,最近需要对抖音X-GORGON算法做出解密,但是在接触项目的过程中,发现16.0版本加密字段太多,为了减少工作量,就选用了12.9版本。jadx打开apk,直接按字段搜索x-gorgon,调用地有俩处


俩处引用都出自同一个方法com.ss.sys.ces.gg.tt,追踪至方法处。
第二处调用为写入请求头操作,可以确定这里的值为我们要破解的目标,跟进查看。

跟入方法leviathan,发现这是一个native层方法,引用自so库libcms.so,这里先放一放,先看看这个native方法的参数。
第一个参数为int值,构建代码可以直接找出来:
除此之外,我们可以发现,X-Khronos字段的值与此处相似度极高,,这里可以直接记下。
第二个参数为byte[]值,取值过程为:a.b(c2 + str3 + str4 + str5),这里的a.b为对str值进行的加密操作,具体方法可以跟出来:
此处的关键是确定b方法的传入参数,经过分析后,可以确定C2为请求参数再加密,str3,str4,str5分别代表STUB,COOKIE,SESSIONID内容加密,如果为空则用00000000000000000000000000000000拼接。
至此,leviathan的传入参数可以确认,剩下的就是找出leviathan再cms.so中的构建了。
拖出libcms.so文件放入ida,发现混淆严重:
至少还是可以看到JNI_Onload方法的,跟进查看,发现其伪代码为:
这个jumpout是什么情况?(未完待续)

posted @ 2021-08-09 11:43  DasNI  阅读(733)  评论(0)    收藏  举报