竹笋

首页 » 问答 » 常识 » 主流短视频直播web端XBogus及直
TUhjnbcbe - 2023/9/23 20:04:00
白癜风的专科 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/

1.首先找一个人少的直播间测试

2.进入直播间过一段时间,抓包发现一直在向两个接口持续发送请求

编辑

batch/为日志接口

/webcast/im/fetch/该接口响应的内容乱码,但根据经验推测为弹幕接口

编辑

编辑

msToken在cookie中可以找到,那么就剩下X-Bogus和_signature,经测试_signature并不校验,目前某主流短视频很多接口都不校验_signature(此时-12-11)。X-Bogus和url中的其他参数(包括msToken)缺少一个请求时都会返回空,那么就要搞定这个X-Bogus值

3.全局搜索X-Bogus,很容易就找到位置,可以看出这里的js做了ob混淆

编辑

打上断点,发现依然在请求该接口但未被断点断住,打上XHR断点断住后在控制台直接调用该函数

编辑

虽然返回了值,但是该X-Bogus和抓包看到的X-Bogus明显不同,且无法知道实际传参。

初步推测该函数生成的X-Bogus已被弃用,留在这是为了混淆的。后经无数次测试调试最后找到了实际生成X-Bogus的函数,函数调用还是比较复杂的,而且我不会反混淆,只能硬着头皮看。甚是折磨

编辑

可以看到其格式和抓包得到的X-Bogus一致

4.扣代码,补环境

编辑

本地使用nodejs成功生成X-Bogus,每次生成的值都不一样,内部应该有时间戳参与加密,有兴趣的小伙伴可以接着逆向内部算法。

5.直播弹幕接口

最后来调用直播弹幕接口,抓包复制拿来的参数可以再次请求,但过一段时间就会返回空,X-Bogus有一小段生命周期.

使用execjs调用js得到X-Bogus传入请求成功

编辑

除了X-Bogus还需要注意三个值internal_ext,cursor,last_rtt

第一次请求时internal_ext=,cursor=0,last_rtt=-1,然后返回的结果中可以找到internal_ext和cursor,last_rtt没有找到,这里是给的随机值

编辑

等待1秒后继续请求,如此循环。每次seq都会递增则正常。

虽然能正常请求到数据,但是返回的值还需要进一步解析,比如某某人来到直播间会显示{0.user}来了,送礼会显示{0:user}送给{1}{2}个{3:gift}

编辑编辑

有兴趣的大佬可以做进一步的解析。

该js代码中也找到了生成_signature的函数,应该是最新版(-12-11),但旧版的_signature也可使用,网上有大量的文章介绍,而且该接口并不校验_signature,这里就不做赘述了。

编辑

该文章仅做技术交流用途,如有侵权违规请联系本人即刻删除!

交流v:yok3ke

1
查看完整版本: 主流短视频直播web端XBogus及直