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

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.dtcms.com/a/285460.html

相关文章:

  • 计算机网络知名端口分配全表(0-1023)
  • 网络原理——UDP
  • 【论文精读】基于共识的分布式量子分解算法用于考虑最优传输线切换的安全约束机组组合
  • 游戏盾在非游戏行业的应用:跨界守护网络安全的新利器
  • 初探 Web 环境下的 LLM 安全:攻击原理与风险边界
  • Mock 单元测试
  • 如何上传github(解决git的时候输入正确的账号密码,但提示认证失败)
  • 撤销和重做!支持数据驱动的事务机制啦(使用OpenGL+QT开发三维CAD)
  • LatentSync: 一键自动生成对嘴型的视频
  • 医疗人工智能的心电图分析:创新技术与临床应用
  • 【playwright篇】教程(十六)[macOS+playwright相关问题]
  • 【Linux 中断机制:工作队列与中断线程化详解】
  • 5 种可行的方法:如何将 Redmi 联系人备份到 Mac
  • RustDesk 自建中继服务器教程(Mac mini)
  • 深入了解消息队列:从基础到选型
  • 云计算虚拟化层I/O性能优化:SR-IOV与DPDK技术的整合应用
  • 电脑视频常用几种接口
  • 工业互联网六大安全挑战的密码“解法”
  • Sentinel dashboard 添加context-path后无法信息无法上传问题
  • 差分隐私机器学习:通过添加噪声让模型更安全,也更智能
  • 【甲烷数据集】Sentinel-5P 卫星获取的全球甲烷数据集-TROPOMI L2 CH₄
  • 共享模式、社群与开源链动2+1模式AI智能名片S2B2C商城小程序的协同发展研究
  • wx小程序设置沉浸式导航文字高度问题
  • 手撕Spring底层系列之:Bean的生命周期
  • html复习
  • 【世纪龙科技】汽车故障诊断与排除仿真教学软件
  • 工业ESD防静电无尘净化棉签擦拭棒:精密制造领域的清洁守护者!
  • 【样式效果】Vue3实现仿制iOS按钮动态效果
  • 基于K8s ingress灰度发布配置
  • 飞书,正在成为中国AI制造故事的新阵地