某音直播的protobuf协议数据解析

对protobuf不熟悉的看看上一篇文章。

https://www.jianshu.com/p/095a210d9b8b

最近碰巧遇到某音,抓取弹幕的时候发现,都是乱码。


image.png

查看header头


image.png

瞬间明白,response用了protobuf格式。然后就想到protobuf数据反解析
将response数据保存成文件形式,用protoc工具进行反编译。
protoc --decode_raw < input.txt

image.png

更烦了,这么些1,2,3都不知道啥意思。

那么怎么解析成很好看的json格式呢

上面通过protoc解析出了个大概,那么里面的数据究竟是什么意思呢? 1 2 3, 1: 2:这些都是什么呢? 网上所搜一番得知:解析出来的数据中开头的1 2 3..或 1: 2: 3:的均为protobuf的tag, 是解析数据的关键值,带":"号的是字段,没":"号的是 repeated 集合.
了解知道了这些,那就可以开始还原了。逆向中是没有原始.proto文件的,对于protobuf的解析就需要依靠分析源码,自己生成一份.proto文件,以上图为例,在源码中定位到解析代码:

image.png

接下来就是对proto文件的编写

image.png

经过好长时间的编写,终于写完整。最终用python调用。


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容