万事俱备,只欠东风。
前面的实验环境已经搭好了。下面来抓包分析下,看看protobuf协议在抓包软件上长什么样子。
首先明确我们的目标。我们的最终目标是还原proto文件,有了这个文件,我们就能对数据做序列化和反序列化,最终用python请求和解析数据。
1.抓包分析
拿到一款app(前面的demo),首先抓包
如果协议头是application/x-protobuf,那么charles可以大致解析出来响应的文本。可以看到甚至连序号以及类型。注意这个前面的1,2,3不是charles自动标的序号,而是proto文件里面message中定义的字段编号。为了验证,我换了编号,请求响应如下:
如果传输内容不多,比较简单的话,基本上我们根据抓包结果就可以编写proto配置文件了。编写proto文件的时候注意,字段编号和类型一定得对上,不然就会出现问题。
但是现在大多数app,一般用了protobuf协议,基本上都是配合gzip压缩或者结合一些加密算法一起使用,提高效率