某彈幕網分析-1

首先呢,打開改網站隨便點個直播間,當然要有人發彈幕。

觀察彈幕和請求,發現並沒有很多的請求,那我們看看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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章