b站弹幕 so文件解析/逆序列化

本文介绍了如何对b站protobuf序列化的so文件进行逆序列化,包括protobuf的基本概念,如何使用protoc编译proto文件,以及如何处理中文字符。通过指定网站提供的资源和在线编译工具,生成Python反序列化代码,解析弹幕数据。
摘要由CSDN通过智能技术生成

写在前面:

下文全部使用**代替b 站,由于csdn现在版权的问题,本文只介绍对so文件的逆序列化(反正怎么获取文件网上很多文章)

如图,抓包得到的是乱码,实际上这不是加密,是使用protobuf序列化后的文件

本人找了很多网站,只在知乎看到一个逆序列化的回答,其他的都是从乱码中匹配内容

https://zhuanlan.zhihu.com/p/392931611

但是这个回答比较简洁,对于不了解protobuf的人可能摸不着风,本人也没接触过protobuf,但是通过一段时间的查找资料了解了一二,故写下这一篇相对详细一点的博客方便其他不懂protobuf的人学习**

1.什么是protobuf?

protobuf (protocol buffer) 是谷歌内部的混合语言数据标准。通过将结构化的数据进行序列化(串行化),用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。

python(pip)可通过以下命令直接安装

pip install protobuf

在使用时这样导包

import google.protobuf 

具体的就不说了,想详细了解的可以直接搜,网上有很多相关教程

2.怎么进行逆序列化

你需要知道**弹幕的proto定义,再使用protoc进行编译,获得一个.py文件,接下来就可以使用文件里面的方法反序列化了

关于大概的方法,下面这个网站有介绍,下文是详细步骤bilibili-API-

在手直播弹幕中,protobuf的反序列化是将protobuf格式的数据转换为可读的文本或可操作的对象的过程。具体的反序列化步骤如下: 1. 首先,需要进行js向操作,使用浏览器的开发者工具(F12控制台)抓包,并找到传递消息的ws通信协议。 2. 在ws所在的js文件中,可以找到json格式的protobuf定义文件,这个文件是用来定义protobuf的结构和字段的。 3. 根据找到的json格式的protobuf定义文件,可以根据步骤1的信息,定义一个.proto文件。这个.proto文件包含了protobuf的消息类型、字段类型和字段名称等信息。 4. 使用合适的工具,比如protoc编译器,将.proto文件编译成对应的代码文件,例如Java或C++等。 5. 在代码中,可以使用相应的protobuf库来进行反序列化操作。根据编译生成的代码文件,可以将protobuf格式的数据转换成可读的文本或可操作的对象。 通过以上步骤,就可以实现手直播弹幕protobuf的反序列化操作。这样可以方便地对弹幕数据进行解析和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [快手直播弹幕采集-python-protobuf解析](https://blog.csdn.net/tdl320721/article/details/127489852)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值