BET365网站websocket解密分析

BET365网站websocket解密分析
**

前不久和朋友聊到了这个网站,就手痒试了试,但是js解密有点不在行,所以只能去各种博客,github中寻找案例,然后自己在琢磨琢磨。

**

本文仅用于交流学习
了解BET365网站的童鞋应该都知道它的更新频率是超快的, 这跟他使用的websocket数据传输方式分不开

来,开始工作,

https://blog.csdn.net/LICAOPING/article/details/107623612

这个博主的思路流程都是很清晰的, 但是我根据他的思路走,老是卡在第一个token中,第二个token加密倒是没什么难度,搞得我都想放弃了,最后只能另辟蹊径了。

该博客最后一段话中给了我一条思路:
BET365网站websocket解密分析_第1张图片

总结来说就是:
websocket请求有两个:

  1. wss://premws-pt3.365lpodds.com/zap/?uid=***** 负责传输数据,握手时需要sesion和token参数, 但是单个token参数的有效期为5-10,也就是每5-10分钟就会断开
  2. wss://pshudws.365lpodds.com/zap/?uid=***** 负责保持长链接, 握手时需要sesion和token参数, 每个一段时间就会返回一个token,当接收到参数时,对token进行二次加密,然后通过第一个websocket请求发送, 这样第一个websocket就可以保持长链接

思路解析:
我在网页上复制了第二个websocket请求返回的token进行了二次加密,发现和发送出去的token一摸一样,然后我就有了一个想法,token第一次加密我没有破解,但是第二次我破解了啊,我可不可以在网页上复制一个token,然后使用token链接两个websocket请求, 当第二个websocket请求返回token时,我对它进行二次加密然后发送出。不就能保持长链接了

然后我进行了测试果然可以

BET365网站websocket解密分析_第2张图片
大概跑了半个多小时我就停了,中间发送了几次token,这个思路完全没问题。接下来的数据解密就没有做了, 需要的可以自己延伸一下。

二次加密代码:
# t = token
    def decryptToken(self, t):
        n = ""
        i = ""
        o = len(t)
        r = 0
        s = 0
        MAP_LEN = 64
        charMap = [["A", "d"], ["B", "e"], ["C", "f"], ["D", "g"], ["E", "h"], ["F", 

你可能感兴趣的:(python,websocket,python,加密解密)