当前位置: 首页 > 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.lryc.cn/news/592094.html

相关文章:

  • IDEA高效开发:Database Navigator插件安装与核心使用指南
  • 【后端】.NET Core API框架搭建(10) --配置163邮件发送服务
  • 应用集成体系深度解析:从数据互通到流程协同
  • 实现库存显示和状态按钮的Question
  • nginx定制http头信息
  • python实现Markdown转化PDF的方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令:
  • 小架构step系列18:工具
  • web3 区块链技术与用
  • 6 种无线传输照片从安卓到 Mac 的方法
  • 在ComfyUI中CLIP Text Encode (Prompt)和CLIPTextEncodeFlux的区别
  • 5 种可行的方法:如何将 Redmi 联系人备份到 Mac
  • AI进入自动驾驶时代:OpenAI发布革命性ChatGPT Agent
  • 飞牛上使用Docker方式部署LibreTV,再配合内网穿透,实现免费无广告刷剧的服务教程
  • 深度剖析:最新发布的ChatGPT Agent 技术架构与应用场景
  • uniapp+vue2——自定义底部导航tabbar
  • android版本编译问题之Hvac 应用体积优化问题处理记录
  • 从一开始的网络攻防(四):XSS
  • 推荐算法召回:架构理解
  • 正则表达式,Collection集合,迭代器
  • 正则表达式完全指南:从入门到实战
  • Kotlin集合分组
  • 黑马Node.js全套入门教程,nodejs新教程含es6模块化+npm+express+webpack+promise等_ts对象笔记
  • Kotlin集合过滤
  • 【Python】LEGB作用域 + re模块 + 正则表达式
  • uni-app 跳转页面传参
  • SpringCloud相关总结
  • 牛油果果实检测-目标检测数据集(真实环境下)
  • 基于SpringBoot 投票系统 【源码+LW+PPT+部署】
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 基于jieba实现词频统计