Websocket逆向技术的实际应用
- 前言
- 一、websocket逆向实际应用
-
- [1. 插件开发](#1. 插件开发)
- [2. 弹幕互动游戏](#2. 弹幕互动游戏)
- [3. (半)无人直播](#3. (半)无人直播)
- 二、直播间常见通信技术
-
- [1. http轮询](#1. http轮询)
- [2. websocket通信](#2. websocket通信)
- [三. 直播间常见消息解析技术](#三. 直播间常见消息解析技术)
- [四、 逆向直播间常用技术](#四、 逆向直播间常用技术)
-
- [1. RPC远程服务调用](#1. RPC远程服务调用)
- [2. 通信拦截](#2. 通信拦截)
- [3. API调用](#3. API调用)
- 五、学习路线
前言
本章节主要介绍websocket逆向的实际用途 、直播间常见通信技术 、websocket逆向技术 以及学习路线。
一、websocket逆向实际应用
websocket逆向技术偏向于直播间互动玩法
1. 插件开发
- 语言播报
- 刷礼物加播
- 自动点歌
- 弹幕互动插件
2. 弹幕互动游戏
- 和游戏交互
- 和硬件交互
- 整盅玩法
3. (半)无人直播
- 数字人
- ...
二、直播间常见通信技术
下面章节会详细讲解
1. http轮询
以前直播间大多采用http轮询,现在越来越少,但还是有用的,比如视频号助手。或者把http轮询作为一个备用方案,当websocket发生阻塞的时候,就会启用http轮询,保持直播间的通信,例如国内最火的短视频平台。
2. websocket通信
现在直播间基本采用websocket进行通信,如果把http轮询比作发短信,那websocket可以认为是打电话。
三. 直播间常见消息解析技术
客户端接收的消息,会有不同格式,这也决定了逆向的难度。
- 明文的json字符串或者二进制字符串,这种是最简单的,只需要进行简单的反序列化或者解码即可使用。
- protobuf二进制,这种需要还原proto结构,再进行反序列化。
- 明文+乱码配合使用,这种需要按部就班进行分析。
四、 逆向直播间常用技术
下面章节会详细讲解
1. RPC远程服务调用
不需要掌握数字签名认证,只需要逆向找到消息解析的地方即可。
2. 通信拦截
只需要掌握消息解析的原理即可实现,不需要了解数字签名以及校验
- 文章链接:http拦截
- websocket拦截
3. API调用
涉及的验证比较多,难度最高,但是并发高、部署方便。
五、学习路线
正在搭建一个实战平台,实战平台采用大厂常用弹幕通信技术,也会出对应的教程
实战1:http轮询
视频号助手采用的就是http轮询,每隔几秒向服务器发起http请求,然后将获取到的内容渲染到浏览器上。逆向技术推荐:http拦截。因为会涉及到扫码登录、数字签名...操作起来比较麻烦,也只能看自己的直播间,所以推荐http拦截。
实战2:websocket
这个websocket实战不会涉及到签名算法等,消息也是没有加密的,带大家了解websocket逆向的完整流程。
实战3:websocket+protobuf
这个实战训练结合了快手平台的弹幕技术,涉及到protobuf序列化与反序列化。
实战4:websocket+protobuf+gzip
这个实战训练结合了海外tiktok的弹幕技术,涉及到websocket地址的组成、protobuf序列化与反序列化...
实战5:websocket+protobuf+gizp+数字签名
这个实战训练结合了国内最大的短视频平台的弹幕技术,涉及到数字签名、websocket地址的组成、protobuf序列化与反序列化...
实战6:websocket+unicode编码
这个实战训练结合了国外twitch的弹幕传输技术,比较简单,但是会涉及到unicode编码,这个还是很少见的
实战7:websocket+其他编码
这个不会涉及到什么消息结构,需要按部就班分析。