某音Web端消息体ProtoBuf结构解析
背景
在开发一款流量软件时候,遇到了需要解析某音Web网页信息的需求。某音Web端的消息体传递基于HTTPS协议,对于某些Reponse数据,需要基于ProtoBuf协议进行解析。本文使用逆向分析思路推导某音的消息体结构,并且整理为Proto文件嵌套结构。Proto文件可以在新媒体运营工具获得。
Response数据分析
打开某音网页版后,通过开发者工具能够看到Fetch数据的请求。如下图表示的是获取到用户投稿到信息接口,其Response数据可以直接看到Json数据结构。

而像私信信息这样对信息安全性要求较高对数据,通过ProtoBuf协议进行序列化和反序列化。对应的数据在Response数据界面就是十六进制的数据。
ProtoBuf结构解析思路
首先我们需要看一下这个十六进制的数据大致的结构,使用在线解析ProtoBuf工具能够看到对应Id为2043!
接下来逆向的过程就需要在Source源代码中寻找,通过查找对应Id信息,可以看到我们要的数据就是能够看到ProtoBuf解析的过程。对应2043的Id是MessageByInitResponseBody,正好对应了我们获取私信信息的接口。
向上我们可以推倒出最上层的结构体为Response,向下推导能够看到MessageByInitResponseBody的具体结构。
总结
本文提供了一种逆向推导某音数据ProtoBuf结构体的思路,目前只是用在解析Response数据上,没有想好如何使用在Request请求上模拟对应的请求,有思路的大佬可以评论或者私信我。相关的Proto文件已经开源在新媒体运营工具,请大家多多支持!