首页
社区
课程
招聘
[原创]Protobuf协议逆向和仿真&举个栗子
发表于: 2020-5-2 11:04 15629

[原创]Protobuf协议逆向和仿真&举个栗子

2020-5-2 11:04
15629

产品有需求要全力满足,产品没有需求创造需求也要满足。

本次的主角是携程APP。以它为例子介绍一下Protobuf协议逆向分析及协议仿真。

本文你将了解到Google Protobuf的逆向分析及协议还原等知识。

机票价格接口

按照正常的过程,我们逆向第一步应该是抓包。下面是我抓到的。

看到这里不要怀疑,我们抓包没有问题,那为什么会这样呢。

正常情况下,抓到的包应该是标准的HTTP协议格式,我们实现完成整个报文的仿真模拟,然后发包即可。但是现在,我们什么都看不到。

抓包我使用的工具是Packet Capture,它是基于本地VPN实现的抓包,可以支持TCP及以上层的消息捕获。

那么,我们现在就有理由怀疑,携程的网络通信,没有使用HTTP协议,而是自建协议完成的。

分析完毕,那么下一步我们怎么来找到收发包位置呢。

(此处省略几万字的定位过程)

经过长时间的寻找,后来灵机一动,如果是我来写接收数据的代码,很可能我要写个while True的循环,然后用已经建立连接的socket进行循环接收数据。以此为标识,我们找找看。

紧接着,我们在最后一个结果中找到了想要的接收数据的标识。

当我们跟着这个invokeResponse一直下去,就能找到一个神奇的地方“ctrip.business.comm.ProcoltolHandle”,(在这里你能找到所有的序列化和反序列化过程)到这里,具体的逆向就不表了。相信看到这的同学继续找下去不是问题。从这里我们可以知道,每一个包前面有14个字节的协议头,之后是gzip压缩的结果。再后面是4字节的包体的长度,然后是消息内容。

这样我们就可以写出来解码的代码。

需要说明一下的是,data的来源即是我们抓包抓到的十六进制,copy出来就可以。

接下来着重说一下这个proto_decode。

我们反序列化protobuf是利用google提供的工具protoc.exe,带参数执行可以解码成可读的形式。(感谢YungGong协助)

这个其实就是相当于HTTP协议里的header了,可是我们现在还不知道字段名,记住这些数字。我们在代码里找找看。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-5-2 13:35 被燕幕自安编辑 ,原因: 图裂了
收藏
免费 4
支持
分享
最新回复 (25)
雪    币: 2324
活跃值: (5063)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图挂了
2020-5-2 11:44
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
值得怀疑 图挂了
我也很懵逼 改了一次还是不行 我待会再试试
2020-5-2 11:50
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
谁知道为啥啊 传了好几次也一直传不上去图~
2020-5-2 11:58
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
图片都不能看
2020-5-2 14:49
0
雪    币: 2220
活跃值: (4597)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
图全没了 不过意思我懂了
2020-5-2 20:25
0
雪    币: 50161
活跃值: (20605)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
帅逼李三郎 谁知道为啥啊 传了好几次也一直传不上去图~
论坛bug,我们正在解决中
2020-5-3 22:31
0
雪    币: 1841
活跃值: (1305)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
8
学习了,感谢分享
2020-5-4 02:19
0
雪    币: 236
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
学习了,感谢分享
2020-5-5 10:50
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
学习了 感谢分享
2020-5-6 06:07
0
雪    币: 248
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
感谢分享
2020-5-7 09:58
0
雪    币: 36
活跃值: (1061)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
mark
2020-5-7 10:40
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
不错
2020-5-8 15:57
0
雪    币: 19956
活跃值: (4952)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢楼主分享
2020-5-9 11:40
0
雪    币: 6
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
能给个联系方式吗?楼主
2020-5-10 08:05
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
16
ZwCopyAll 图片都不能看
图好啦
2020-5-11 20:42
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
17
小黄鸭爱学习 图全没了 不过意思我懂了
图好啦
2020-5-11 20:42
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
18
kanxue 论坛bug,我们正在解决中
感谢版主!
2020-5-11 20:42
0
雪    币: 1467
活跃值: (1054)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
19
wx_钟无艳 能给个联系方式吗?楼主
你加下我Q:1446684220
2020-5-11 20:43
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
mark
2020-5-11 22:09
0
雪    币: 237
活跃值: (83)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
mark
2020-7-18 02:36
0
雪    币: 201
活跃值: (145)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
mark
2020-7-27 09:51
0
雪    币: 5492
活跃值: (3317)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
23
mark
2020-7-27 09:57
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
学习了,谢谢up主
2020-11-4 18:44
0
雪    币: 1
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
mark
2020-11-12 16:19
0
游客
登录 | 注册 方可回帖
返回
//