弹幕音讯为纯协定开发,解析protobuf数据格式采集的,反对采集匿名直播间,能够采集发言,礼物,点赞,关注等匿名实在信息。

wss链接的signature的签名算法也有。此签名算法次要是对roomid进行签名。能够补环境+删检测来实现,前面有工夫会写相干剖析文章


Nodejs演示


Python演示


以下为浏览器Hook版本,此版本工夫有点久,不过也是能够用的,另外,你调试之后会发现,其实是有捷径的,他的堆栈调用会有一个法则,依据此法则能够一下就找到hook的地位

成果演示
内容蕴含"用户主页链接,礼物,音讯,点赞,直播间人数,直播间粉丝数"


寻找参数

能够先从这些加载的图片调用栈动手

轻易抉择一张图片,进到调用栈外面

F8运行,多运行几次之后,会发现这里会有音讯内容进去,这也就验证了咱们之前的想法

这里显示的音讯,是通过解析之后的内容,能够间接到调用栈最开始的地位,而后往回找线索,下图能够看到,它是一个setInterval定时器

在下面,能够看到key名称为sdkinit初始化

到了这一步,能够间接hook这个publishSync

window._a_ = a;var publishSync_ = window._a_.publishSync;window.__a__.publishSync = (i) => {  // 这里用箭头函数,不要用function    let obj = i.payload;    console.log(obj);}

胜利之后,就会有上面的成果

到了这一步,写一个wss服务端,将获取到的音讯共享进来

function hookFunc (o) {    if (_WSS_.readyState === _WSS_.OPEN) {        _WSS_.send(JSON.stringify(o)) // WSS服务端和数据解析可自行编写,此处不做演示    };};var _WSS_ = new WebSocket('wss://x.x.x.x:10086');window._a_ = a;var publishSync_ = window._a_.publishSync;window._a_.publishSync = (i) => {  // 这里用箭头函数,不要用传统function    hookFunc(i)}