抖音直播匿名采集——协议分析

news2024/11/24 22:45:14

本文内容仅作学习参考,如侵权,请联系删除。

这次是关于匿名采集的分析,其中会涉及到以下几个只是点,websocket,protobuf,protobuf反序列化。

这里以web端的websocket做分析。

首先你需要将非匿名的代码给跑起来,基于此,才能研究非匿名的,否则一切都是空谈。

在非匿名的代码里,获取到wss的时候,主要解析2层,第一层是这样的。

在这里插入图片描述

在这里插入图片描述

这一层的作用是解析除了payload之外的数据,这些数据在发心跳包的时候会用到,
然后就解析这个二进制的payload,他是一个被gzip压缩的数据,直接用gzip解压即可
在这里插入图片描述

解压后的数据是一堆看似乱码的东西,这个也是最原始的数据,所有秘密都藏在这个里面。这里我们将解压的数据以bin文件的形式存在本地,然后先答题看一下数据,这个是匿名的直播数据。
在这里插入图片描述
正常的非匿名直播,他是有一个sec_user_id的东西可以获取到,但是在匿名直播里,他只有一个web_castuser_id,这个东西可以通过hook浏览器验证,这里要提一嘴,浏览器hook出来的数据,还不是最完整的,因为他是通过protobuf序列化之后出来的,有些字段他可能并没有在序列化里面,就不显示出来,所以最好的办法还是直接看解压的原始数据,一个一个看。

我们先看下进入的消息类型,这里需要关注一下这个东西。
在这里插入图片描述

这个东西也是抖音的一个id,他的全名暂且叫他target_uid,这个uid也是用户信息的一种
通过此接口可以查询到,https://live.douyin.com/webcast/user/?aid=8663&target_uid=9xxxxxx9

然后获取到了这个uid的位置之后,要怎么写proto序列化数据?这里直接用blackprotobuf数据去反序列化,看下这个东西的结构是什么样,然后根据结构去反推proto,把proto文件补全,编译之后,他就可以用了,以下为示例代码。

import blackboxprotobuf
import json
from loguru import logger

if __name__ == '__main__':
    with open(f'./bin/vWzYmhbh.bin', 'rb') as f:
        data = f.read()
        # deserialize, message_type = blackboxprotobuf.decode_message(data)
        deserialize, message_type = blackboxprotobuf.protobuf_to_json(data)
        info = json.loads(deserialize)
        logger.info(info)

将反序列化输出的json数据格式化一下,就可以清晰的看到没一层的数据,然后根据protobuf的语法去写就可以了。

在这里插入图片描述
到此,进入的消息类型就分析完了,然后是礼物的消息类型,关于礼物的类型,这个会复杂一些,因为他不提容易被找到,关于验证方式,可以按照以下方式进行验证。

首先准备一个抖音号,并且你要获取到自己抖音号的uid,也就是前面说的那个target_uid,记录下来。
然后进到一个直播间,在进入直播间之前,你要先将脚本运行起来监控数据,并且保证将数据解压保存为本地,运行起来之后,你往直播间刷几个小心心,刷完之后,停止监控,然后将你的target_uid,去刚刚保存的所有消息文件中搜索,就可以搜索到了,搜索到了之后,就可以按照上面的方式,写proto文件,然后解析获取。
在这里插入图片描述

上面这些就是礼物和进入的获取分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1301667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试剪切板贴图,兼测试2023年12月7日更新的Bard

当前的情况好比,(居然真的可以通过剪切板把图片放进来!) 听说2023年12月7日Bard有更新,所以,再测试了一次。这下,对大语言模型应该死心了;AI替代人的传闻应该是过早危言耸听了。

基于SpringBoot+Vue前后端分离的景点数据分析平台(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…

临时或永久修改linux-kali虚拟机的主机名和遇见的错误解决方法(保姆级图文)【网络工程】

目录 临时修改主机名1. 查看当前主机名2. 修改主机名3. 打开新窗口,临时主机名生效 永久修改主机名1. 查看当前主机名2. 修改主机名3. 执行重启虚拟机生效配置 配置好hosts文件报错效果解决方法 总结 欢迎关注 『网络工程专业』 系列,持续更新中 欢迎关注…

ArcGIS界面显示分辨率调整

因为电脑显示分辨率的问题呢,ArcGIS的界面显示会字体显示不合适,出现模糊情况,这时候只需要做个简单的操作设置一下便可以解决! 1、右键ArcMap的快捷启动方式。 2、对应选择兼容性——>更高DPI设置——>勾选替代DPI缩放行为…

【成功】Linux安装Mysql8并设置远程连接

今天在新搞来的阿里云的服务器里安装MySQL8,记录一下过程: 这是MySQL的官网和下载地址:MySQL :: Download MySQL Community Server (Archived Versions) 1. 先进入安装目录 cd /usr/local 2. 安装 wget https://downloads.mysql.com/arch…

stateflow——如何查看状态机中参数变化及状态机断点调试

法一:使用Data Inspector 点击“符号图窗”和“属性”,如图;在选择变量n并右键点击inspector,最后在logging,如图 法二:log active state 和法一类似使用data inspector查看,类似的查看方法和…

public static final

常量对象中声明并赋值的正确写法一&#xff1a; public class RoleConstant {public static final List<String> PROBLEM_VIEW_ALL_DATA new ArrayList<String>() {{add("角色1");add("角色2");add("角色3");}};}常量对象中声明并…

三. LiDAR和Camera融合的BEV感知算法-融合算法的基本介绍

目录 前言0. 简述1. 融合背景2. 融合思路3. 融合性能优劣总结下载链接参考 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第三章——LiDAR和Camera融合的BEV感知算法&am…

Stable Diffusion 源码解析(1)

参考1&#xff1a;https://blog.csdn.net/Eric_1993/article/details/129393890 参考2&#xff1a;https://zhuanlan.zhihu.com/p/613337342 1.StableDiffusion基本原理1.1 UNetModel、FrozenCLIP 模型1.2 DDPM、DDIM、PLMS算法 2. Runwayml SD 源码2.1 Img2Img Pipeline2.2 DD…

操作系统笔记——储存系统、文件系统(王道408)

文章目录 前言储存系统地址转换内存扩展覆盖交换 储存器分配——连续分配固定大小分区动态分区分配动态分区分配算法 储存器分配——非连续分配页式管理基本思想地址变换硬件快表&#xff08;TLB&#xff09;多级页表 段式管理段页式管理 虚拟储存器——基于交换的内存扩充技术…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《面向微电网群的云储能经济-低碳-可靠多目标优化配置方法》

这篇文章的标题涵盖了以下关键信息&#xff1a; 面向微电网群&#xff1a;研究的重点是微电网群&#xff0c;这可能指的是多个微电网系统的集合&#xff0c;而不仅仅是一个单独的微电网。微电网是指由分布式能源资源、储能系统和智能控制组成的小型电力系统&#xff0c;通常能够…

PPP协议概述与实验示例

PPP协议概述与实验示例 概述 PPP&#xff08;Point-to-Point Protocol&#xff09;是一种用于在点对点连接上传输多协议数据包的标准方法。它已经成为最广泛使用的互联网接入数据链路层协议&#xff0c;可以与各种技术结合&#xff0c;如ADSL、LAN等&#xff0c;实现宽带接入…

使用React 18、Echarts和MUI实现温度计

关键词 React 18 Echarts和MUI 前言 在本文中&#xff0c;我们将结合使用React 18、Echarts和MUI&#xff08;Material-UI&#xff09;库&#xff0c;展示如何实现一个交互性的温度计。我们将使用Echarts绘制温度计的外观&#xff0c;并使用MUI创建一个漂亮的用户界面。 本文…

视觉盛宴:TikTok独特的短视频美学探究

TikTok作为一款风靡全球的短视频应用&#xff0c;不仅改变了用户获取信息和娱乐的方式&#xff0c;更塑造了一种独特的短视频美学。从舞蹈、音乐、剧情到创意拍摄手法&#xff0c;TikTok的短视频内容呈现出丰富多彩的画面&#xff0c;构建了一场视觉盛宴。本文将深入探讨TikTok…

web 前端之标签练习+知识点

目录 实现过程&#xff1a; 结果显示 1、HTML语法 2、注释标签 3、常用标签 4、新标签 5、特殊标签 6、在网页中使用视频和音频、图片 7、表格标签 8、超链接标签 使用HTML语言来实现该页面 实现过程&#xff1a; <!DOCTYPE html> <html><head>…

【C++初阶】七、内存管理(C/C++内存分布、C++内存管理方式、operator new / delete 函数、定位new表达式)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】六、类和对象&#xff08;初始化列表、static成员、友元、内部类&#xff09;-CSDN博客 目录 一 . C/C内存分布 C/C中程序内存区域划分&#xff1a; 二 . C内存管理方式 …

YOLOv8改进 | 2023检测头篇 | 利用AFPN改进检测头适配YOLOv8版(全网独家创新)

一、本文介绍 本文给大家带来的改进机制是利用今年新推出的AFPN&#xff08;渐近特征金字塔网络&#xff09;来优化检测头&#xff0c;AFPN的核心思想是通过引入一种渐近的特征融合策略&#xff0c;将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于…

047:vue加载循环倒计时 示例

第047个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Nature子刊 | snATAC-seq 揭示斑马鱼胚胎早期发育过程中的单核染色质景观

2023年7月19日&#xff0c;一篇题为“Single-nucleus chromatin landscapes during zebrafish early embryogenesis”的研究论文在scientific data&#xff08;IF9.8&#xff09;上发表&#xff0c;该研究使用华大智造单细胞测序平台进行snATAC-seq&#xff0c;建立了斑马鱼胚胎…

openGauss学习笔记-150 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_backup

文章目录 openGauss学习笔记-150 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_backup150.1 背景信息150.2 前提条件150.3 语法150.4 参数说明150.5 示例 openGauss学习笔记-150 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_backup 150.1 背景信息 openGaus…