当前位置: 首页 > news >正文

【抖音直播间弹幕】protobuf协议分析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将Uint8Array变成 PushFrame格式,里面的payload就存放着弹幕消息
在这里插入图片描述
点进去就可以看到其定义的proto结构
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
headers是一个自定义类型

在这里插入图片描述
在这里插入图片描述

将测试数据保存一下,等下做对比

在这里插入图片描述
先将PushFrame的 payload 内容进行gzip解压
在这里插入图片描述
然后再解析为响应
在这里插入图片描述
可以看到里面有对应的消息类型和数据
对应好解析就可以了

# 原始数据
original_message = [8,20,16,239,205,165,211,157,198,241,206,102,24,184,69,32,8,42,21,10,13,99,111,109,112,114,101,115,115,95,116,121,112,101,18,4,103,122,105,112,42,111,10,15,105,109,45,105,110,116,101,114,110,97,108,95,101,120,116,18,92,105,110,116,101,114,110,97,108,95,115,114,99,58,112,117,115,104,115,101,114,118,101,114,124,102,105,114,115,116,95,114,101,113,95,109,115,58,49,55,51,49,51,50,48,52,49,54,55,50,51,124,119,115,115,95,109,115,103,95,116,121,112,101,58,114,124,119,114,100,115,95,118,58,55,52,51,53,57,54,52,53,56,55,48,57,49,57,53,52,55,55,54,42,58,10,9,105,109,45,99,117,114,115,111,114,18,45,116,45,49,55,51,49,51,50,48,52,50,53,56,51,49,95,114,45,55,52,51,53,57,54,52,54,48,52,50,55,49,56,51,56,55,50,48,95,100,45,49,95,117,45,49,42,23,10,6,105,109,45,110,111,119,18,13,49,55,51,49,51,50,48,52,50,53,56,51,49,42,25,10,14,105,109,45,108,105,118,101,95,99,117,114,115,111,114,18,7,100,45,49,95,117,45,49,50,2,112,98,58,3,109,115,103,66,240,10,31,139,8,0,0,0,0,0,0,255,236,90,77,108,19,71,27,102,188,86,178,204,23,17,127,75,69,23,168,42,43,81,47,145,156,236,159,189,107,159,130,77,2,36,4,210,56,1,194,161,163,93,123,236,44,177,215,203,238,218,198,252,169,84,42,144,210,74,17,135,22,168,64,52,165,66,74,69,69,83,85,74,77,213,34,164,74,128,84,113,41,82,127,232,161,146,137,83,46,149,80,91,169,151,170,74,226,88,13,49,4,163,164,45,100,199,199,153,121,222,153,119,159,121,230,125,52,134,63,174,135,207,237,196,74,68,54,173,46,156,84,176,209,133,77,83,142,99,42,191,30,222,92,89,185,207,117,225,254,231,195,199,190,254,253,84,156,190,248,246,177,47,38,134,126,59,21,103,64,240,205,149,240,121,85,203,200,9,53,138,6,113,14,233,9,57,130,7,82,137,40,54,168,250,3,76,32,109,98,227,144,123,226,236,7,133,252,209,117,171,224,202,70,69,138,77,55,247,48,209,112,139,36,255,71,213,193,218,70,41,212,38,182,183,187,135,137,81,112,133,132,227,36,121,172,80,179,174,102,226,157,243,77,77,77,29,55,0,220,62,96,89,186,25,104,105,209,121,79,118,102,113,205,209,84,58,167,106,186,26,105,142,164,146,45,106,50,222,82,234,105,49,147,114,34,129,54,226,216,134,140,108,201,70,179,174,197,15,91,122,34,227,73,41,123,154,213,164,28,199,176,187,12,200,178,139,130,72,173,127,196,216,166,218,198,13,188,24,18,67,163,224,48,220,93,93,104,13,103,209,84,18,81,220,144,163,24,37,112,6,39,80,134,69,82,133,69,208,46,183,155,1,193,117,52,217,176,102,242,173,247,39,71,135,138,151,134,138,249,139,82,49,127,241,238,137,19,197,15,207,143,129,255,147,71,104,215,29,192,17,28,199,4,156,60,35,242,121,112,29,48,228,25,160,44,253,210,70,192,43,112,71,85,223,82,206,226,36,70,186,156,43,5,225,246,33,47,242,87,10,80,231,174,99,192,53,0,33,217,80,3,157,228,10,106,197,101,130,184,71,252,203,9,31,118,130,17,103,137,201,55,157,155,186,194,66,118,235,158,109,92,103,71,16,169,59,185,110,83,205,164,123,197,109,57,37,230,239,219,191,37,149,238,231,213,173,162,174,248,80,71,79,103,71,38,228,243,197,248,29,219,19,86,135,222,199,191,108,118,120,148,93,41,126,119,95,36,114,223,121,194,1,95,119,144,53,212,171,142,165,220,31,236,175,234,99,85,3,77,189,244,88,179,22,206,48,5,106,70,90,107,216,233,182,25,116,131,93,195,215,29,199,1,113,21,156,166,168,249,74,178,232,7,127,209,181,105,33,37,105,11,134,218,66,109,182,146,216,74,98,43,201,210,41,9,253,137,167,27,156,4,255,76,121,243,244,139,210,70,223,212,207,22,37,91,148,108,81,90,58,81,58,3,156,110,174,213,49,6,86,195,85,88,179,176,129,44,85,71,86,78,199,20,96,232,178,65,131,63,113,144,42,121,184,173,234,32,158,117,119,87,57,56,185,182,82,143,235,203,143,46,92,126,99,158,183,27,91,251,112,241,91,93,22,191,3,108,192,180,12,85,139,31,154,39,128,223,209,243,5,240,43,26,94,163,103,4,176,120,246,189,103,198,223,181,5,219,216,169,170,108,241,8,43,46,29,97,43,65,47,76,88,113,14,97,107,231,18,86,44,19,118,20,252,2,96,95,117,57,136,201,154,25,73,164,149,217,96,62,196,50,149,182,223,91,213,246,31,19,149,114,47,52,129,169,13,190,64,213,54,182,79,55,26,54,212,23,199,134,10,227,103,239,190,59,50,123,237,212,147,71,128,203,73,3,14,8,1,130,229,252,121,112,131,96,106,207,128,2,88,14,116,24,1,63,128,165,186,248,224,206,234,242,247,216,192,84,195,194,83,102,111,221,159,9,56,65,184,32,13,26,190,37,224,55,128,116,80,183,158,53,142,195,63,1,233,164,254,0,80,121,178,248,83,52,145,163,25,89,139,224,40,82,228,104,28,35,150,65,251,146,122,165,61,70,158,48,117,213,4,161,154,171,155,206,220,25,185,114,247,178,99,186,170,178,85,252,30,177,236,84,252,30,113,218,177,124,217,207,63,58,57,51,133,254,76,197,86,46,244,187,247,239,146,132,120,34,219,35,109,234,52,44,37,182,163,183,71,222,179,165,23,247,115,253,93,234,230,78,181,163,39,20,22,196,120,60,147,106,23,194,62,169,111,111,56,179,17,115,221,251,50,251,153,116,118,96,144,31,188,239,188,228,92,236,66,255,105,61,113,240,156,131,172,163,108,10,62,148,130,148,163,166,174,108,133,26,214,144,96,55,85,24,207,23,198,175,76,156,188,84,124,237,179,201,79,207,21,242,71,187,193,113,0,174,130,73,210,229,164,71,111,129,166,103,209,107,204,190,37,217,103,198,246,26,182,215,176,189,198,83,199,113,219,107,216,94,195,246,26,203,151,253,182,215,176,189,198,127,155,130,115,188,70,208,225,2,138,211,253,98,171,131,46,63,148,80,30,203,195,138,60,203,115,140,192,121,37,150,71,134,71,20,120,175,223,39,248,24,129,19,89,137,151,68,142,65,81,15,139,210,30,214,125,251,251,95,111,127,204,53,93,112,168,154,133,13,77,78,32,211,136,4,244,180,57,96,98,35,131,141,131,49,213,48,45,100,224,189,40,105,6,74,200,44,227,99,24,254,96,214,52,81,210,140,79,63,244,4,140,131,89,35,106,162,193,140,25,40,61,228,108,209,122,82,169,100,80,214,180,242,159,245,60,155,140,84,214,26,8,165,146,201,148,54,211,19,78,43,225,156,22,233,196,57,79,25,93,242,250,121,158,97,188,28,139,74,88,83,72,61,178,54,56,139,83,26,202,176,94,206,47,72,60,235,21,248,191,15,13,91,178,101,62,48,86,224,88,206,231,227,37,86,18,216,185,99,13,44,39,55,68,101,221,146,45,53,165,61,56,141,149,88,129,227,69,63,235,245,183,214,111,6,127,1,0,0,255,255,1,0,0,255,255,253,82,25,129,165,40,0,0]original_byte_message = bytes(original_message)
# print(original_byte_message)# 解析为PushFrame对象
push_frame = PushFrame().parse(original_byte_message)
# print(push_frame)# 对PushFrame的 payload 内容进行gzip解压
push_frame_payload = gzip.decompress(push_frame.payload)# 解析为Response对象
response = Response().parse(push_frame_payload)# 遍历Response对象里面的消息
for message in response.messages:message_method = message.methodmessage_payload = message.payloadprint(f"需要解析的消息类型:{message_method}")# print(message_payload)

在这里插入图片描述
然后再解析对应的消息类型就可以

在这里插入图片描述
所有的都在这个文件里

相关文章:

【抖音直播间弹幕】protobuf协议分析

将Uint8Array变成 PushFrame格式,里面的payload就存放着弹幕消息 点进去就可以看到其定义的proto结构 headers是一个自定义类型 将测试数据保存一下,等下做对比 先将PushFrame的 payload 内容进行gzip解压 然后再解析为响应 可以看到里面有对应的消…...

Swift 开发教程系列 - 第11章:内存管理和 ARC(Automatic Reference Counting)

在 Swift 中,内存管理由 ARC(自动引用计数)机制自动处理。ARC 通过追踪和管理对象的引用计数来确保分配的内存得到有效释放。尽管 ARC 在大多数情况下能够高效地管理内存,但理解其工作原理仍然十分重要,因为不当的引用…...

C#中 layout的用法

在C#中,layout并不是一个直接用于C#语言本身的关键字或特性。然而,layout在与C#紧密相关的某些上下文中确实有其用途,特别是在涉及用户界面(UI)设计和数据展示时。以下是几个常见的与layout相关的用法场景:…...

【编程概念基础知识】

、编程基础 一、面向对象的三大特性 1、封装: 盒子、零件、按钮 隐藏对象 的内部状态,并且只通过对象的方法来访问数据 想象你有一个小盒子(这个盒子就是一个类),里面装着一些零件(这些零件就是数据&a…...

【React】深入理解 JSX语法

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 深入理解 JSX语法1. JSX 简介2. JSX 的基本语法2.1 基本结构2.2 与普通 JavaScr…...

【Linux】从零开始使用多路转接IO --- 理解EPOLL的 LT水平触发模式 与 ET边缘触发模式

当你偶尔发现语言变得无力时, 不妨安静下来, 让沉默替你发声。 --- 里则林 --- 从零开始认识多路转接 1 EPOLL优缺点2 EPOLL工作模式 1 EPOLL优缺点 poll 的优点(和 select 的缺点对应) 接口使用方便:虽然拆分成了三个函数,…...

QtLua

描述 QtLua 库旨在使用 Lua 脚本语言使 Qt4/Qt5 应用程序可编写脚本。它是 QtScript 模块的替代品。 QtLua 不会为 Qt 生成或使用生成的绑定代码。相反,它提供了有用的 C 包装器类,使 C 和 lua 对象都可以从 lua 和 C 访问。它利用 Qt 元对象系统将 QOb…...

c++-有关计数、双变量累加、半衰、阶乘、变量值互换的基础知识

C是一种非常强大和灵活的编程语言,它包含了许多重要的概念和技巧。在本文中,我们将重点讨论五个主题:计数、双变量累加、半衰、阶乘和变量值的互换。我们将介绍这些概念的定义、用法、题目、答案和解释,以帮助读者更好地理解和运用…...

MyBatis3-获取参数值的方式、查询功能及特殊SQL执行

目录 准备工作 获取参数值的方式(重点) 查询功能 查询一个实体类对象 查询一个list集合 查询单个数据 查询一条数据为map集合 查询多条数据为map集合 特殊SQL执行 模糊查询 批量删除 动态设置表名 添加功能获取自增的主键 准备工作 模块My…...

web——[SUCTF 2019]EasySQL1——堆叠注入

这个题主要是讲述了堆叠注入的用法,来复现一下 什么是堆叠注入 堆叠注入:将多条SQL语句放在一起,并用分号;隔开。 1.查看数据库的名称 查看数据库名称 1;show databases; 发现有名称为ctftraining的数据库 2.对表进行查询 1;show tabl…...

【Ubuntu学习】Ubuntu无法使用vim命令编辑

问题 在VMware首次安装Ubuntu,使用vi指令对文件进行编辑,按i键后无法更改文件内容。 原因 由于Ubuntu中预装的是vim-tiny,平时开发中需要使用vim-full。 解决方案 卸载预装vim sudo apt-get remove vim-common安装vim-full sudo apt-get …...

UniAPP u-popup 禁止背景滑动

增加class .NoScroll {overflow: hidden;position: fixed; }在外层div上增加该class判断条件...

F5全新报告揭示AI时代API安全面临严峻挑战

F5 《2024年应用策略现状报告:API安全》揭示了 API 保护中的漏洞以及对全面安全措施的迫切需求 西雅图,2024年11月11日 – F5(NASDAQ: FFIV)日前发布《2024年应用策略现状报告:API 安全》(以下简称为“报告”),揭示了跨行业API安全面临的严峻现状。该报告强调了企业API保护方面…...

使用C语言进行信号处理:从理论到实践的全面指南

1. 引言 在现代操作系统中,信号是一种进程间通信机制,它允许操作系统或其他进程向一个进程发送消息。信号可以用来通知进程发生了一些重要事件,如用户请求终止进程、硬件异常、定时器超时等。掌握信号处理技术对于开发健壮、高效的系统程序至…...

什么是工单管理系统?全面认识指南

在现代企业中,客户服务和支持是业务成功的关键因素之一。为了有效地管理客户请求和问题,许多公司采用了工单管理系统。本文将深入探讨工单管理系统的定义、功能、优势。 一、工单管理系统的定义 工单管理系统是一种软件工具,旨在帮助企业管…...

集群化消息服务解决方案

目录 集群化消息服务解决方案项目概述架构图使用说明服务端通过API接口推送消息给客户端调用方式 请求参数返回参数 客户端推送消息连接websocket或发送消息 接收消息项目地址作者信息 集群化消息服务解决方案 项目概述 集群化消息服务解决方案是一种用于处理大量消息的高可用…...

python数据结构操作与可视化的应用

Python具有丰富的数据结构操作和可视化库,可以进行各种数据结构的创建、编辑和分析,并将结果可视化。以下是几个常见的Python数据结构操作和可视化的应用示例: 1. 列表(List)操作和可视化: - 创建列表&a…...

【基于轻量型架构的WEB开发】课程 作业4 AOP

一. 单选题(共7题,38.5分) 1 (单选题)下列选项中,用于通知/增强处理的是( )。 A. Joinpoint B. Pointcut C. Aspect D. Advice 正确答案:D 答案解析:在面向切面编程&#xff…...

跨境独立站新手,如何用DuoPlus云手机破局海外社媒引流?

独立站作为电商领域的一个重要组成部分,其发展在最近几年里确实令人瞩目,对于想要进入跨境赛道的新手卖家来说,手上握着有优势的货源,建立小型的DTC独立站确实会比入驻第三方平台具有更大的灵活性。本文将给跨境卖家们总结独立站和…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】标题栏

Android 标题栏 参考 Android Studio版本 配置gradle镜像 阿里云 Android使用 android:theme 显示标题栏 添加依赖 dependencies {implementation("androidx.appcompat:appcompat:1.6.1")implementation("com.google.android.material:material:1.9.0")…...

语音真实度突破98.7%的关键在哪?ElevenLabs最新v3.2引擎深度测评,附权威MOS评分对比表

更多请点击: https://intelliparadigm.com 第一章:语音真实度突破98.7%的关键在哪?ElevenLabs最新v3.2引擎深度测评,附权威MOS评分对比表 ElevenLabs v3.2 引擎在2024年Q2发布的音频合成基准测试中,首次在自然度&…...

Vitis HLS里给LED闪烁函数‘打标签’:深入解读ap_hs与ap_none协议的选择与实战影响

Vitis HLS中LED闪烁函数接口协议深度解析:ap_hs与ap_none的硬件实现差异与工程选择 在FPGA开发中,Vitis HLS作为高级综合工具,能够将C代码转换为可综合的硬件描述语言。然而,许多开发者在使用过程中常常忽略一个关键细节——函数…...

ctf show web入门48

这是一道典型的 PHP 代码审计与命令注入(Command Injection) 绕过题。代码逻辑分析 代码的核心逻辑如下: 输入点:通过 GET 方式接收参数 c。 过滤机制:使用 preg_match 进行正则匹配,过滤了大量关键字符和命…...

LVGL图片资源全解析:从C数组到图标字体的高效集成方案

1. LVGL图片资源方案概述 在嵌入式GUI开发中,图片资源的管理直接影响产品性能和开发效率。LVGL作为轻量级图形库,提供了三种主流的图片集成方案:内部C数组、外部文件系统图片和图标字体。每种方案都有其独特的适用场景和实现方式,…...

CREO 6.0装配实战:别再乱拖零件了,手把手教你用‘移动’和‘角度偏移’精准定位

CREO 6.0装配实战:从零件乱飞到精准定位的进阶技巧 刚接触CREO装配模块的新手设计师,最常遇到的挫败感莫过于:明明在脑海中构思好了零件位置,实际操作时却总是出现零件"乱飞"、"定位不准"的情况。这种体验就像…...

SIGTRAN协议:电信网络IP化的关键技术解析

1. SIGTRAN:下一代电信网络的信令传输基石2003年全球电信业寒冬中,一个技术决策正在悄然改变行业格局。当运营商们紧缩资本开支时,AT&T、Verizon等巨头却不约而同地加大了对IP网络的投入。这背后隐藏着一个关键技术转折——传统TDM网络向…...

PCB高级工艺如何降本:盲孔、微孔与HDI设计的成本优化实战

1. 项目概述:当高级PCB技术成为降本利器在硬件研发圈子里待久了,总有一个根深蒂固的印象:但凡沾上“高级”、“高密度”这些词的技术,比如盲孔、埋孔和微孔,那成本肯定是蹭蹭往上涨。我刚开始接触HDI板设计时也是这么想…...

告别手动刷新!用PowerShell脚本实现Windows下校园网自动重连(含任务计划设置)

告别手动刷新!用PowerShell脚本实现Windows下校园网自动重连(含任务计划设置) 每次开机都要手动登录校园网?网络突然断开还得重新输入账号密码?这些繁琐操作已经成为过去式。本文将手把手教你用PowerShell打造全自动校…...

从帧结构到数据解析:深入理解CJ/T 188 MBUS水表通信协议

1. MBUS协议与水表通信基础 第一次接触CJ/T 188 MBUS协议时,我完全被那一串串十六进制报文搞懵了。FE FE FE 68开头的报文到底在说什么?为什么水表厂商给的文档读起来像天书?经过几个项目的实战,我发现只要掌握几个关键点&#xf…...

如何利用WinRAR分卷压缩,轻松突破大文件传输限制

1. 为什么需要分卷压缩? 在日常工作和生活中,我们经常会遇到需要传输大文件的情况。比如设计师要发送PSD源文件给客户,程序员要分享开发环境的镜像,或者普通用户想通过邮件发送高清视频给亲友。但几乎所有主流传输平台都对单个文件…...