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

声明

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

前言

本文章主要讲解网页版直播间的数据逆向,从获取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 re

url = "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值,所以猜测应该在函数里面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值