某弹幕网分析-1

  • 2020 年 2 月 25 日
  • 筆記

首先呢,打开改网站随便点个直播间,当然要有人发弹幕。

观察弹幕和请求,发现并没有很多的请求,那我们看看ws(websocket)

点这个清空记录然后我们刷新一下页面

然后发现一堆我们一个一个观察

我们可以看到,都是这种二进制的,我们堆栈进去看看

当我们下断点之后,发现他弹幕就没了,放行之后弹幕就滚动出来了

跟进去这个函数,这个e参数在这个三元表达式里面处理我们继续看

this.protoLink.isWs()

判断这个,我们看到isWs,那肯定是ws所以我们看第一个

我们看这个函数 onProto,一般有经验的可以看出来是一种tlv结构,去掉on剩下Proto谷歌开源了一个pb全称Google Protocol Buffer又简称Protobuf,,然后我们就可以一步一步分析下去,只要掌握了堆栈大法,我们就可以为所欲为的分析任意网站。

Protocol Buffer   Google Protocol Buffer又简称Protobuf,它是一种很高效的结构化数据存储格式,一般用于结构化数据的串行化,简单说就是我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平台的,目前已支持多种主流语言(3.0版本支持C++, JAVA, C#, OC, GO, PYTHON等)。   通过这种方式序列化得到的二进制流数据比传统的XML, JSON等方式的结果都占用更小的空间,并且其解析效率也更高,用于通讯协议或数据存储领域是非常好的。   再者,其使用的方式也非常简单,我们只需要预先定义好消息(message)的数据格式,然后通过其提供的compiler即可生成对应的文件,在那些文件里定义和实现了操作这个数据结构所有字段的setter/getter方法,我们只需要使用这些方法设置该数据结构的字段,然后通过序列化方法即可得到需要的结果(二进制数据流)。

,一般弹幕网站都是使用的ws+pb,或者是ws+json