分析某dy直播间的互动信息

查看 145|回复 11
作者:wanxu   
看到上一次的某bo分析大家热度不是很高今天给大家带来一个某音直播间的直播数据的分析
今日使用Edge,误会了Edge以为替代JS没办法断点呢
调试器是一把杀猪刀
{:17_1068:}{:17_1068:}{:17_1068:}
好了正文开始,请各位食客准备好瓜子
今天我们只分析难度稍微高一点的互动信息他其它信息不过多赘述了


1683858289743.png (101.14 KB, 下载次数: 0)
下载附件
2023-5-12 10:24 上传

抓包以后我们每个包点开看一下,看到有这样一个包是一个Message
还是老办法,全局搜索WebcastRoomMessage


1683858862724.png (138.95 KB, 下载次数: 0)
下载附件
2023-5-12 10:34 上传

在这里每个Case处理了不同的消息,我们首先找到自己需要的互动消息


1683858977818.png (88.3 KB, 下载次数: 0)
下载附件
2023-5-12 10:35 上传

一个断点看到解密后的数据
那用上之前的方法,使用WebSocket将Json发送到我们的程序中
还是对着没有格式化的JS文件右键,保存以备替代(Chrome参考昨天)
打开我们替换好的JS文件
切换到这个Case位置
我们需要对这个Case进行简单的处理一下,它本身是直接return了
我们将源代码替换为


1683859353791.png (53.73 KB, 下载次数: 0)
下载附件
2023-5-12 10:42 上传

这一步看过我昨天文章的一定很熟悉了,直接附上JS代码(代码将就能用,各位大佬勿喷)
[JavaScript] 纯文本查看 复制代码let Ldy = l ? h.createElement(l, {
    message: e,
    activity: o
}) : h.createElement(P, {
    user: e.payload.user,
    content: e.payload.content
});
window.DataLx = Ldy.props;
!function() {
    let res = window.DataLx;
    if (window.flagLx) {
        window.wsLx.send(JSON.stringify(res));
    } else {
        var ws = new WebSocket("ws://127.0.0.1:9998");
        window.flagLx = true;
        window.wsLx = ws;
        ws.open = function(evt) {}
        ;
        ws.onmessage = function(evt) {
            ws.send(JSON.stringify(res));
        }
    }
}();
return Ldy;
接着就是昨天的创建一个服务端接受数据即可,需要的参考我昨天的文章吧!
欢迎一键三连,给我更新的动力,有问题可以留言,看到会回复!

下载次数, 互动

law.liu   

以下是对代码进行修改:[JavaScript] 纯文本查看 复制代码let l = 'div'; // 修复变量 l 的定义
let h = document; // 修复变量 h 的定义
let Ldy = l ? h.createElement(l, {
    message: e,
    activity: o
}) : h.createElement('P', {
    user: e.payload.user,
    content: e.payload.content
});
window.DataLx = Ldy.props;
(function() {
    let res = window.DataLx;
    if (window.flagLx) {
        window.wsLx.send(JSON.stringify(res));
    } else {
        var ws = new WebSocket("ws://127.0.0.1:9998");
        window.flagLx = true;
        window.wsLx = ws;
        ws.onopen = function(evt) {}; // 修复 WebSocket 的 onopen 事件处理函数
        ws.onmessage = function(evt) {
            ws.send(JSON.stringify(res));
        };
    }
})();
return Ldy;
代码做了以下修改:
添加了变量 l 和 h 的定义。
修复了 createElement 函数的使用,确保正确创建元素。
修复了变量 P 的定义。
修复了变量 e 和 o 的定义。
添加了 onopen 事件处理函数,确保 WebSocket 的连接正确建立。
law.liu   

这段JavaScript代码存在几个问题,可能会影响其正常运行:
变量 l 在代码中没有定义或赋值,这会导致创建元素时出错。
变量 h 在代码中没有定义或赋值,这也会导致创建元素时出错。
createElement 函数的使用方式不清楚,无法确定它是否可以正确创建元素。
P 变量在代码中没有定义或赋值,这会导致创建元素时出错。
变量 e 在代码中没有定义或赋值,这会导致传递给元素的属性 message 或 user 无效。
变量 o 在代码中没有定义或赋值,这会导致传递给元素的属性 activity 或 content 无效。
window.DataLx 在代码中没有明确的赋值语句,因此在 let res = window.DataLx 这一行可能会导致 res 变量为 undefined。
window.flagLx 在代码中没有明确的赋值语句,因此在 if (window.flagLx) 这一行可能会导致条件判断出错。
window.wsLx 在代码中没有明确的赋值语句,因此在 window.wsLx.send(JSON.stringify(res)) 这一行可能会导致错误。
WebSocket 的 open 事件处理函数为空,没有定义任何逻辑。
WebSocket 的 onmessage 事件处理函数发送的是 res,这可能是一个未定义的变量。
坚持梦想   

6的很,我之前也这样处理过,不过麻烦,现在使用wss连接弹幕服务器,使用protojs解码就可以了
wanxu
OP
  


坚持梦想 发表于 2023-5-12 11:09
6的很,我之前也这样处理过,不过麻烦,现在使用wss连接弹幕服务器,使用protojs解码就可以了

大佬有时间发个参考学习一下吧
坚持梦想   

https://github.com/jiansenc/tiktok_barrage_nodejs  你看一下这个吧,思路和你的一样
等到烟火也清凉   

一键三连 加油
sanshenghepan   

这个可以有
Yxl320628   

得到的是什么效果,哪个大哥发个图显示看看
aaaaaazai   

好厉害,学习了
您需要登录后才可以回帖 登录 | 立即注册

返回顶部