当前位置: 首页 > ds >正文

websocket案例 599足球比分

目标地址:

aHR0cHM6Ly93d3cuNTk5LmNvbS9saXZlLw==

接口:

打开控制台 点websocket 刷新页面 显示

分析:

不写理论了

关于websocket 几乎发包位置都是下方图片 不管抖音还是快手 等平台

这里在进行 new WebSocket 后 是要必须走一步的 也就是 new WebSocket('').onopen() 也就是onopen 进行向服务端发送一条信息建立连接

当信息发送后 就正常建立连接 收到数据包 只是这里收到的是   二进制加密数据

要分析WebSocket 建立连接后主动执行什么 就要看 onmessage 这个回调 具体怎么操作的

断到 onmessage 后 可以看到 data就是 服务端向客户端传输的二进制数据

通过单步调试或者关键字搜索可以找到位置

进行单步调试 走到这里后 就已经有返回值了 h.decrypt 就是解密方法

之后往 h.decrypt 里面进 就可以找到解密关键

具体WebSocket的理论细节 包括环境怎么补 请参考 官方文档或者其他论坛

https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket

接下来你通过python把WebSocket代码写完 响应解密也写完后 进行建立连接你会发现一直403 反复查询 自己构建的问题 也没研究明白

其实是因为 WebSocket 进行建立连接的时候 可能需要到了 Cookie 请求头是不显示

当你在传输的时候带上Cookie 中的 ads-tracker-baidu 的值 就成功建立连接了

关于 ads-tracker-baidu 值的生成 来源于 wasm 有兴趣自己研究吧各位

下方为参考代码

import base64
import asyncio
import time
import websockets
import json
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
from base64 import b64decodedef AES_(txt):# 假设 c.result 是一个 Base64 编码的字符串key = "777db0c19edfaace".encode('utf-8')  # 16 字节的 keyiv = "9876543210599311".encode('utf-8')  # 16 字节的 ivcipher = AES.new(key, AES.MODE_CBC, iv)decrypted = cipher.decrypt(base64.b64decode(txt))# 去除 PKCS7 填充plaintext = unpad(decrypted, AES.block_size).decode('utf-8')return plaintextURI = ''async def listen_forever():async with websockets.connect(URI,additional_headers={"Origin": "https://www.599.com","Cache-Control": "no-cache","Accept-Language": "zh-CN,zh;q=0.9,or;q=0.8,en;q=0.7","Pragma": "no-cache",'Cookie': 'ads-tracker-baidu=xxxxxxxxxxxx','sec-websocket-extensions': 'permessage-deflate; client_max_window_bits',"User-Agent": "",}) as ws:print("WebSocket 已连接,开始持续接收数据……")await asyncio.sleep(1)  # 等待服务器握手完成await ws.send('{"device":"pc","topic":"USER.topic.app.8"}')while True:try:await asyncio.sleep(1)data = await ws.recv()print("收到消息:", data)print("解密的消息:", AES_(data.decode()))print("<------->")except websockets.ConnectionClosed:print("连接已断开,尝试 5 秒后重连")await asyncio.sleep(5)await listen_forever()  # 递归重连asyncio.run(listen_forever())

http://www.xdnf.cn/news/15851.html

相关文章:

  • 海森矩阵(Hessian Matrix)在SLAM图优化和点云配准中的应用介绍
  • 实战指南|智慧无人机安防系统搭建全流程解析
  • 深入理解Linux文件操作:stdin/stdout/stderr与C语言文件函数全解析
  • PDF 拆分合并PDFSam:开源免费 多文件合并 + 按页码拆分 本地处理
  • 突破性量子芯片问世:电子与光子首次集成,开启量子技术规模化应用新篇章
  • 暑期自学嵌入式——Day05补充(C语言阶段)
  • 二分答案之第 K 小/大
  • Visual Studio编译WPF项目生成的文件介绍
  • 服务器mysql数据的简单备份脚本
  • 二、Dify 版本升级教程(LInux-openeuler)
  • iOS OC 图片压缩
  • vue2 面试题及详细答案150道(101 - 120)
  • 国产替代:ASP4644在电信通信设备中的测试与应用前景
  • Java类:BigDecimal 的用法:乘法
  • IDEA 2020.1版本起下载JDK
  • Logback 配置的利器:深入理解<property>与<variable>
  • vue2 面试题及详细答案150道(21 - 40)
  • 闭包的定义和应用场景
  • Rust实战:高效对接Postman API
  • Spring中的SpEL是什么
  • Springboot3整合Elasticsearch8(elasticsearch-java)
  • [2025CVPR-目标检测方向]FSHNet:一种用于3D物体检测的全稀疏混合网络。
  • Hive数据仓库工具
  • 什么是高光谱相机,它与数码相机有什么区别?
  • 相机光学(五十)——Depth AF
  • RTKLIB读取星历文件,观测数据
  • 解决Flutter运行android提示Deprecated imperative apply of Flutter‘s Gradle plugins
  • 电解电容串联均衡电阻计算
  • 模板初阶和C++内存管理
  • 功能安全之BIST的基本原理