protobuf协议数据逆向.proto思路

怎么辨认protobuf的?

如果你有protobuf的数据,想得到.proto文件,怎么办?

最近向我提问的朋友,关注这两个问题比较多,我这里简单说下思路(细节部分自行百度)。

一、如何辨认protobuf数据

还是以抖音直播弹幕为例,通过抓包,我们能拿到wss发送来的数据大概长这个样子。

JAVA抖音WSS弹幕

 我们能看到,这个数据明文和乱码同时交替存在,我们就有理由怀疑,它大概率是protobuf数据(普通的数据加密或压缩,多数情况全文乱码,或者无意义的字符串,当然也可能有其他情况,比如部分加密压缩,暂不考虑)

那么我们就可以用protobuf的方式,尝试去解析试试。

解析主要分为两步

1)拿到数据的结构,如下图。

 方法有很多种,

比如我前文JAVA的方法,你可以创建一个空的.proto文件,去解析数据,你可以拿到未识别的数据结构,得到上图结构。

或者你可以下载官方win版工具,通过protoc 命令将数据解码为以上结构。

2)手写.proto文件

你可以根据步骤1中的数据类型及编号,直接手写proto文件了。比如这个样子。

 到此你就能得到一份.proto文件。

最后根据解析出来的数据,与网页数据/可查看的源码对比,确认每个字段代表的含义。

(这里需要很大的耐心,因为protobuf的特点,你不必把所有字段都搞清楚,只定义你需要的字段即可)

 ————————————附录——————————————

怎么知道gzip压缩的是data?

 看图猜。

—————————————分割线———————————————————————

如果你需要的proto文件,已有朋友分享过,还是吃现成的香,最后我还是用了git上的python相关项目中的proto文件,如果你要解析的东西没人做过,也只能自食其力。

本质上proto以及gzip都属于一种压缩算法,不算加密,所以只能起到混淆以及压缩数据作用,大家在开发时,重要数据,还是要选择加密。不要靠这种方式。

———————————————————————————————————————

GZH搜“桃哥543技术交流”,发 “protobuf”获取相关工程链接。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
***含了许多Google Protocol Buffers的头文件,其中也包括了google/protobuf/empty.proto。引用中提到在使用protoc进行编译时,报错找不到google/protobuf/empty.proto文件。而引用中提到解决这个问题的方法是在protoc的安装目录下创建一个软链接,将移动后的protobuf文件目录连接到/usr/local/usr/include/google。综合这些信息,可以得出结论,google/protobuf/empty.proto是Google Protocol Buffers中的一个头文件,用于定义一个空的消息类型。如果在使用protoc进行编译时找不到该文件,可以尝试根据引用中提供的方法创建一个软链接以解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [protoc-3.4.0-win32](https://download.csdn.net/download/qq_40830236/10458935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [记录一次protobuf的坑(google/protobuf/XXXXX.proto: File not found.)](https://blog.csdn.net/allenlake09/article/details/120741799)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桃哥543

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值