写在前面:下文全部使用bz代替b 站,并且由于csdn现在版权的问题,本文只介绍对so文件的逆序列化(反正怎么获取文件网上很多文章)
如图,现在b站弹幕抓包得到的是乱码,实际上这不是加密,是使用protobuf序列化后的文件
1.什么是protobuf?
python(pip)可通过以下命令直接安装
pip install protobuf
在使用时这样导包
import google.protobuf
具体的就不说了,想详细了解的可以直接搜,网上有很多相关教程
2.怎么进行逆序列化
你需要知道bz弹幕的proto定义,再使用protoc进行编译,获得一个.py文件,接下来就可以使用文件里面的方法反序列化了
bz的弹幕proto定义在这里:https://github.com/SocialSisterYi/bilibili-API-collect/blob/bb437d2012e6291b38c78d42755db9d836d4975f/grpc_api/bilibili/community/service/dm/v1/dm.protohttps://github.com/SocialSisterYi/bilibili-API-collect/blob/bb437d2012e6291b38c78d42755db9d836d4975f/grpc_api/bilibili/community/service/dm/v1/dm.proto
接下来推荐一个在线proto编译网站
Protobuf Code Generator and Parser | protobufnet | Marc Gravellhttps://protogen.marcgravell.com/#
将bz的proto定义复制到该网站,选择语言为Python,点击Generate后右边得到的就是我们想要的
直接复制右边的代码,在自己的项目里面创建一个py文件,粘贴即可
注意:你创建的文件名必须以_pb2.py结尾!!!!(这里我叫做bili_pb2.py)