aHR0cHM6Ly93d3cuZG91eWluLmNvbS91c2VyL01TNHdMakFCQUFBQTBIQS1DSEpkYW9kTjVNeWp0QzVtR1ozUnFnYnRUdEFRVE9DUDJ4NEI4ek41QVE5M0tvbzVLbWZCOHJ1d3JXWWc/ZnJvbV90YWJfbmFtZT1tYWlu
接口是主页的post,因为主站很多都没有校验
熟悉某音的知道,bdms是主要加密的文件,找到上一个栈的位置打上下面的条件断点
this._url&&this._url.indexOf('aweme/post/')!==-1
刷新网站就能断到,此时还是没有我们需要的参数的
单步步入,会进到主要的函数,d函数
直接在关键位置进行日志插桩,即可轻松拿到我们的日志
从图中位置开始最后的魔改base64,魔改只是把ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789改成了Dkdpgh2ZmsQB80/MfvV36XI1R45-WUAlEixNLwoqYTOPuzKFjJnry79HbGcaStCe
倒着看,会发现很乱,静下心慢慢就发现,这部分其实是在拼接这个乱码,然后这个乱码用于后面的base64,所以我们根据日志遍拿到了后面base64的字节数组(直接用乱码是不行的)

我们对比两份日志,比较,就会发现,其实这个部分其实都是一个会变的数组在异或一个不变的数组

所以我们拿到了固定的数组
接着,我们需要去找这个会变的字节数组
最后会跟到如图位置,这个地方可以猜测是把这个字符数组直接转换成对应的ascll码,所以我们往上找数组的生成会发现,是由8位数组和129位数组拼接而成的

8位数组的生成如图所示,127数组如下所示
可以根据日志发现,127位数组是进行了一些运算,类似base64,每次取3位,最后得到4位的结果,实现如下,所以关键的是97位数组的生成

通过搜索,快速定位到如图位置,发现最初是50位数组,然后50位数组拼接43位数组拼接3位数组拼接1位数组,得到最后的结果,其中43位数组是环境得到的
3位数组如图所示,是根据时间戳得到的
1位数组的生成比较麻烦,其中是一个大数组异或的结果,这个大数组里面有一些变量是通过一些参数生成的,跟50位数组的生成差不多
50位数组的话,是魔改的sm3加密传入的参数,得到32位结果后再次加密得到数组1
对ua进行rc4加密后通过sm3得到数组2
对字符串dhzx加密后得到数组3
紧接着通过三个数组,跟一些时间戳得到的值,aid,pageid得到50位数组
流程就是这样,各位努力吧
3460

被折叠的 条评论
为什么被折叠?



