protobuf 介绍及反序列化

何为 ProtoBuf

  • 官方文档给出的定义和描述:

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。

Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 >~ 100倍)、更为简单。

你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更>新数据结构,而不破坏由旧数据结构编译的已部署程序。

简单来说,就是

  • 与平台无关,与语言无关
  • 高效
  • 扩展性、兼容性好

反序列化工具- protoc

  • linux 安装
    wget命令下载github上面的protobuf项目

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protobuf-cpp-3.7.1.tar.gz
解压
tar -xzvf protobuf-cpp-3.7.1.tar.gz
然后按照官方给出的命令进行安装
cd protobuf-3.7.1
./autogen.sh
./configure
make
make check
sudo make install
sudo ldconfig

  • 检测是否安装成功

在命令行模式下输入 protoc --version


image.png
  • 接下来就可以开始解开protobuf协议返回的数据了。
    将抓包的response数据保存下载,通过命令

protoc --decode_raw < encodeFile
就可以愉快的分析返回的数据了

  • 如果文件太大,命令行不够用怎么办,那就保存成txt

protoc --decode_raw < encodeFile > *.txt

image.png

后面整理某短视频的protobuf数据解析。。。

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

推荐阅读更多精彩内容