websocket 监控某音网页版直播弹幕

文章介绍了如何监控某音网页版直播弹幕,通过查找并分析JavaScript代码中的websocket通信,发现数据在传输过程中进行了加密。通过解序列化方法获取明文数据,并展示了如何使用Python创建服务器来接收和发送数据,实现对直播弹幕的监听和交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~

需求

监控某音网页版直播弹幕

正文

首先我们需要定位到弹幕传输的位置
因为是通过websocket进行传输的,所以我们可以全局先搜new websocket

在这里插入图片描述
onMessage是一个监听信息的方法

在这里插入图片描述
在这里插入图片描述
跳到当前这个位置,可以看到,deserializeBinary这个是将这个二进制字节进行一个序列化的方法,所以我们可以在这里下个断点,可以看到目前这个位置数据还是加密的。继续往下看
在这里插入图片描述
可以看到有一个.send方法,是用来发送数据

在这里插入图片描述
接收到服务器的数据响应r.toobject(),里面的数据是加密的
在这里插入图片描述

emit方法用于实现服务器向客户端广播事件,可以从这个位置跟进去查看数据
在这里插入图片描述
进到这个位置
可以看到deserializeBinary这个方法是一个解序列化的方法

s.toObject()就是我们的明文数据

接下来把这个js进行本地替换,注入我们的监听客户端

在这里插入图片描述
然后通过python开启服务端

import asyncio
import websockets


async def echo(websocket):
    # 使用WebSocket在客户端和服务器之间建立全双工双向连接后,就可以在连接打开时调用send()方法。
    message = 'hello world'
    # 发送数据
    await websocket.send(message)
    return True

async def recv_msg(websocket):
    while 1:
        # 接收数据
        recv_text = await websocket.recv()
        print(recv_text)


async def main_logic(websocket, path):
    await echo(websocket)
    await recv_msg(websocket)


start_server = websockets.serve(main_logic, '127.0.0.1', 9999)
print('成功建立连接!!')
loop = asyncio.get_event_loop()
loop.run_until_complete(start_server)
# 创建了一个连接对象之后,需要不断监听返回的数据,则调用 run_forever 方法,要保持长连接即可
loop.run_forever()

最后

欢迎联系作者交流更多

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值