前言
该文章为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系作者删除~
需求
监控某音网页版直播弹幕
正文
首先我们需要定位到弹幕传输的位置
因为是通过websocket进行传输的,所以我们可以全局先搜new websocket
onMessage是一个监听信息的方法
跳到当前这个位置,可以看到,deserializeBinary这个是将这个二进制字节进行一个序列化的方法,所以我们可以在这里下个断点,可以看到目前这个位置数据还是加密的。继续往下看
可以看到有一个.send方法,是用来发送数据
接收到服务器的数据响应r.toobject(),里面的数据是加密的
emit方法用于实现服务器向客户端广播事件,可以从这个位置跟进去查看数据
进到这个位置
可以看到deserializeBinary这个方法是一个解序列化的方法
s.toObject()就是我们的明文数据
接下来把这个js进行本地替换,注入我们的监听客户端
然后通过python开启服务端
importasyncioimportwebsocketsasyncdefecho(websocket):# 使用WebSocket在客户端和服务器之间建立全双工双向连接后,就可以在连接打开时调用send()方法。message='hello world'# 发送数据awaitwebsocket.send(message)returnTrueasyncdefrecv_msg(websocket):while1:# 接收数据recv_text=awaitwebsocket.recv()print(recv_text)asyncdefmain_logic(websocket,path):awaitecho(websocket)awaitrecv_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()最后
欢迎联系作者交流更多