欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 抖音的逆向工程获取弹幕(websocket和protobuf解析)

抖音的逆向工程获取弹幕(websocket和protobuf解析)

2025/4/26 9:47:46 来源:https://blog.csdn.net/m0_56066265/article/details/147128515  浏览:    关键词:抖音的逆向工程获取弹幕(websocket和protobuf解析)

目录

  • 声明
  • 前言
  • 第一节 获取room_id和ttwid值
  • 第二节 signture值逆向
      • python 实现signature
  • 第三节 Websocket实现长链接请求
    • protubuf反序列化
      • pushFrame反序列化
      • Response解压和反序列化
      • 消息体Message解析
    • 应答ack
    • 参考博客

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在评论区联系作者立即删除!

前言

本文章主要讲解网页版直播间的数据逆向,从获取room_id和ttwid、signature 值逆向、websocket长链接、ack 应答四个方面进行讲解。

第一节 获取room_id和ttwid值

使用chrome浏览器打开直播间,在网页端右击鼠标点检查:
在这里插入图片描述
出现如下窗口,我且将该界面分为五个部分。
在这里插入图片描述

做逆向主要看人家怎么做的,我们就跟着做就好了。看到这你已经入局了。。。。。
抓包数据,定位到数据请求,是一个 websocket 连接,点击WS,刷新界面。
在这里插入图片描述
在payload中会有两个数据很重要:room_id和signature,每一个直播间的这两个值都会变化。
在这里插入图片描述
搜索room_id,查找在哪里有用到。
在这里插入图片描述
这是一个80017709309的一个文档请求。
在这里插入图片描述
在这里插入图片描述
鼠标点击右键,选择“在网络面板中打开”,需要将curl的代码转成python所用的代码。
在这里插入图片描述
在这里插入图片描述
复制好之后去该网址(https://curlconverter.com/)转换。生成python语言。只需要如下字段。 ttwid 作为后面发起 websocket 的 cookie作为响应。

import requests
import reurl = "https://live.douyin.com/80017709309"
cookies = {'__ac_nonce': '067f76f260003620e7eb',
}
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
}
response = requests.get(url, cookies=cookies, headers=headers)
ttwid = response.cookies.get_dict()["ttwid"]
print(ttwid)
#将room_id找出来
re = re.findall(r'\\"roomId\\":\\"(\d+)\\',response.text)[0]
print(re)

Edge浏览器:
在这里插入图片描述
chrome浏览器:
在这里插入图片描述
很奇怪的是我在chrome浏览器中的响应cookie和edge浏览器中响应的cookie不一致。 但是不影响程序的运行。

参考:
B站视频:
https://www.bilibili.com/video/BV1G2cJeTEc3?
安装与设置环境变量的过程在此网站。

第二节 signture值逆向

首先定位websocket的入口位置,按照数字步骤点击,即可进入websocket入口位置。
在这里插入图片描述
点击4后跳转到下图,打断点,进入getSocketParams()函数,主要是获取参数。
在这里插入图片描述
进入getSocketParams()函数后,找signature值。s和i 里面都没有signature值,所以猜测应该在函数里面。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词