原神抢码,米游社抢码-首发

本文章仅供学习使用-侵权请联系删除_2023年3月14日08:17:06

本来在深渊12层打不过的我偶然在刷到了一个dy的直播间,看到主播在抢码上号帮忙打深渊还号称痛苦号打不满不送原石的旗号我就决定扫码试试,在直播间内使用了两部手机互相扫码在扫了一下午的码后发现根本抢不到二维码心态崩溃后我就想着写一个脚本来帮我抢码(本人py小白),终于在又白忙活了一下的后终于决定抱着学习的态度写一个程序来帮我进行抢码的操作!

原理讲解

  1. 进行屏幕区域的截图(用来获取二维码)

  1. 将获取到的二维码进行解析

  1. 将解析后的内容截取出ticket

  1. 最后发送给米哈游的服务器

在抢码登陆中一共分为两步

第一步抢码

第二步登陆

哈哈听起来像废话,我们首先会进行二维码扫码的认主,先确定这个二维码的主人是谁只要确认好这个主人后就算等待几分钟再确认登陆也没有问题。

# 抢码开始
def Request(ticket):conn = http.client.HTTPSConnection("api-sdk.mihoyo.com")payload = json.dumps({"app_id": 4,"device": "","ticket": ticket})headers = {}conn.request("POST", "/hk4e_cn/combo/panda/qrcode/scan", payload, headers)res = conn.getresponse()data = res.read()data = json.loads(data.decode("utf-8"))retcode = data["retcode"]return retcode

我们先进行二维码的认主 ticket这个参数为二维码解析后的参数自行获取

# 确认登陆
def ConfirmRequest(ticket):conn = http.client.HTTPSConnection("api-takumi.miyoushe.com")payload = ''headers = {'DS': '','cookie': '','x-rpc-client_type': '','x-rpc-app_version': '','x-rpc-sys_version': '','x-rpc-channel': '','x-rpc-device_id': '','x-rpc-device_fp': '','x-rpc-device_name': '','x-rpc-device_model': '','Referer': ' https://app.mihoyo.co'}conn.request("GET", "/auth/api/getGameToken?uid=0000000",payload, headers)res = conn.getresponse()data = res.read()# print(data.decode("utf-8"))data = json.loads(data.decode("utf-8"))token = data["data"]["game_token"]conn = http.client.HTTPSConnection("api-sdk.mihoyo.com")payload = json.dumps({"app_id": 4,"device": "","payload": {"proto": "Account","raw": f"{{\"uid\":\"0000000\",\"token\":\"{token}\"}}"},"ticket": ticket})headers = {'DS': '','cookie': '','x-rpc-client_type': '','x-rpc-app_version': '','x-rpc-sys_version': '','x-rpc-channel': 'xiaomi','x-rpc-device_id': '','x-rpc-device_fp': '','x-rpc-device_name': '','x-rpc-device_model': '','Referer': ' https://app.mihoyo.com','Content-Type': 'application/json'}conn.request("POST", "/hk4e_cn/combo/panda/qrcode/confirm",payload, headers)res = conn.getresponse()

然后再进行二维码的确认来进行游戏内的确认登陆

启动后会在 屏幕中间显示一个300x300像素的框放入二维码后直接扫码登陆

由于自己学习就不做成品和优化了

好了废话不多说了这里只提供思路参数在米游社扫码时抓包即可获取,有需要的自行阅读吧

import cv2
from pyzbar.pyzbar import decode
import pyzbar.pyzbar as pyzbar
import numpy as np
from PIL import ImageGrab
import time
import tkinter as tk
import threading
import re
import http.client
import json# 显示框框 启动线程def my_function():import juxingmy_thread = threading.Thread(target=my_function)
my_thread.start()# 获取坐标
root = tk.Tk()
win_width = 300
win_height = 300
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x_pos = (screen_width // 2) - (win_width // 2)
y_pos = (screen_height // 2) - (win_height // 2)# 设置扫描区域左上角的坐标和宽高
left, top, width, height = x_pos, y_pos, win_width, win_height
right = left + width
bottom = top + height# 创建窗口并设置窗口名称
cv2.namedWindow("QR Code Scanner", cv2.WINDOW_NORMAL)
cv2.resizeWindow("QR Code Scanner", win_width, win_height)# 抢码开始
def Request(ticket):conn = http.client.HTTPSConnection("api-sdk.mihoyo.com")payload = json.dumps({"app_id": 4,"device": "","ticket": ticket})headers = {}conn.request("POST", "/hk4e_cn/combo/panda/qrcode/scan", payload, headers)res = conn.getresponse()data = res.read()data = json.loads(data.decode("utf-8"))retcode = data["retcode"]return retcode# 确认登陆
def ConfirmRequest(ticket):conn = http.client.HTTPSConnection("api-takumi.miyoushe.com")payload = ''headers = {'DS': '','cookie': '','x-rpc-client_type': '2','x-rpc-app_version': '2.46.1','x-rpc-sys_version': '9','x-rpc-channel': '','x-rpc-device_id': '','x-rpc-device_fp': '','x-rpc-device_name': '','x-rpc-device_model': '','Referer': ' https://app.mihoyo.co'}conn.request("GET", "/auth/api/getGameToken?uid=0000000",payload, headers)res = conn.getresponse()data = res.read()# print(data.decode("utf-8"))data = json.loads(data.decode("utf-8"))token = data["data"]["game_token"]conn = http.client.HTTPSConnection("api-sdk.mihoyo.com")payload = json.dumps({"app_id": 4,"device": "","payload": {"proto": "Account","raw": f"{{\"uid\":\"0000000\",\"token\":\"{token}\"}}"},"ticket": ticket})headers = {'DS': '','cookie': '','x-rpc-client_type': '2','x-rpc-app_version': '2.46.1','x-rpc-sys_version': '9','x-rpc-channel': ' xiaomi','x-rpc-device_id': '','x-rpc-device_fp': '','x-rpc-device_name': '','x-rpc-device_model': '','Referer': ' https://app.mihoyo.com','Content-Type': 'application/json'}conn.request("POST", "/hk4e_cn/combo/panda/qrcode/confirm",payload, headers)res = conn.getresponse()# data = res.read()# print(data.decode("utf-8"))while True:# 截取指定区域的屏幕截图screenshot = cv2.cvtColor(np.array(ImageGrab.grab(bbox=(left, top, right, bottom))),cv2.COLOR_BGR2RGB)# 将截图转换为灰度图像gray = cv2.cvtColor(screenshot, cv2.COLOR_RGB2GRAY)# 尝试使用pyzbar库识别二维码codes = decode(gray, symbols=[pyzbar.ZBarSymbol.QRCODE])# 如果找到了二维码,输出其内容if codes:print(codes[0].data.decode())pattern = r"ticket=([a-f0-9]+)"match = re.search(pattern, codes[0].data.decode())# 正则请求地址if match:start_time = time.time()# 进入抢码retcode = Request(match.group(1))end_time = time.time()if retcode == 0:# 计算代码执行时间elapsed_time = end_time - start_time#  输出执行时间print("抢码成功耗时 %.3f 秒" % elapsed_time)# 确认登陆ConfirmRequest(match.group(1))time.sleep(1)# 等待一段时间再继续扫描time.sleep(0.05)# 在窗口中显示截图cv2.imshow("QR Code Scanner", screenshot)# 检查是否按下了键盘上的任意键if cv2.waitKey(1) != -1:break
# 关闭窗口
cv2.destroyAllWindows()

下面是显示框部分的代码

import tkinter as tk# 创建一个Tkinter窗口
root = tk.Tk()# 隐藏窗口标题栏和边框
root.overrideredirect(True)# 将窗口置顶
root.wm_attributes("-topmost", True)# 设置窗口大小和位置
win_width = 300
win_height = 300
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x_pos = (screen_width // 2) - (win_width // 2)
y_pos = (screen_height // 2) - (win_height // 2)
root.geometry('{}x{}+{}+{}'.format(win_width, win_height, x_pos, y_pos))# 将窗口背景设为透明
root.attributes('-transparentcolor', 'white')# 将窗口的画布设为透明
canvas = tk.Canvas(root, bg='white', highlightthickness=0)
canvas.pack(fill='both', expand=True)# 绘制一个绿色空心正方形
canvas.create_rectangle(5, 5, win_width-5, win_height-5, outline='red', width=2)# 进入循环让窗口保持打开状态
root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶技术详解

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:自动驾驶技术 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 目录 一 自动驾驶视觉感知算法 1目标检测 1.1 两阶…

css背景图片属性

基础代码&#xff1a; div {width: 200px;height: 200px;background: url(./css-logo.png); }<div></div> 1、background-repeat&#xff1a;默认是repeat 设置背景图片在容器内是否平铺。 background-repeat: repeat-y; background-repeat: repeat-x; background…

消息中间件之RocketMQ源码分析(二十四)

事务消息 事务消息机制。 事务消息的发送和处理总结为四个过程: 1.生产者发送事务消息和执行本地事务 2.Broker存储事务消息 3.Broker回查事务消息 4.Broker提交或回滚事务消息 生产者发送事务消息和执行本地事务。 发送过程分为两个阶段: 第一阶段,发送事务消息 第二阶段,发…

Java泛型简介

Java泛型简介 Java泛型是在Java 5中引入的一个特性&#xff0c;它允许程序员在编译时指定类、接口或方法能够接受的类型。泛型的主要目的是提供编译时类型安全检查&#xff0c;避免在运行时因为类型转换错误而导致的ClassCastException。 在没有泛型之前&#xff0c;Java中的集…

Ubuntu系统使用Docker搭建Jupyter Notebook并实现无公网ip远程连接

文章目录 1. 选择与拉取镜像2. 创建容器3. 访问Jupyter工作台4. 远程访问Jupyter工作台4.1 内网穿透工具安装4.2 创建远程连接公网地址4.3 使用固定二级子域名地址远程访问 本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook&#xff0c;并结合cpolar内网穿透…

C语言系列(所需基础:大学C语言及格)-4-转义字符/注释/选择语句

文章目录 一、转义字符二、注释三、选择语句 一、转义字符 加上\会讲原来的字符改变意思&#xff0c;即进行转义 例如\t会使t变成\t用于表示转义字符&#xff0c;使得t转义成水平制表符 其他转义字符&#xff1a; 三字母词&#xff08;展示\&#xff1f;的用处&#xff09;…

k8s-001-Centos7内核升级

1. 查看内核 [rootlocalhost ~]# uname -a 2. 执行的命令(安装最新版内核): 下载: rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 安装: rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm &#xff08; 查看最新版内核&…

力扣hot100题解(python版33-35题)

33、排序链表 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4]示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5]示例 3&a…

kafka架构详解

文章目录 概述kafaka架构Kafka的设计时什么样的Zookeeper 在 Kafka 中的作用知道 概述 Apache Kafka 是分布式发布 - 订阅消息系统&#xff0c;在 kafka 官网上对 kafka 的定义&#xff1a;一个分布式发布 - 订阅消息传递系统。 Kafka 最初由 LinkedIn 公司开发&#xff0c;Li…

蚂蚁集团推动编制的全球首个隐私计算一体机国际标准发布

近日&#xff0c;IEEE 标准协会&#xff08;IEEE-SA&#xff09;正式发布并推行了由我国企业主导的全球首个隐私计算一体机国际标准《隐私计算一体机技术要求》&#xff08;IEEE 3156-2023&#xff09;。IEEE-SA是权威国际标准制定机构&#xff0c;该标准的成功发布意味着中国的…

继承-学习2

this关键字&#xff1a;指向调用该方法的对象&#xff0c;一般我们是在当前类中使用this关键字&#xff0c;所以我们常说代表本类对象的引用 super关键字&#xff1a;代表父类存储空间的标识(可看作父类对象的引用) 父类&#xff1a; package ven;public class Fu {//父类成员…

操作系统面经

1. 进程和线程的区别&#xff1f; 调度&#xff1a;进程是资源管理的基本单位&#xff0c;线程是程序执行的基本单位。切换&#xff1a;线程上下文切换比进程上下文切换要快得多。拥有资源&#xff1a; 进程是拥有资源的一个独立单位&#xff0c;线程不拥有系统资源&#xff0…

unity自定义着色器基础

这些内置渲染管线的着色器示例演示了编写自定义着色器的基础知识&#xff0c;并涵盖了常见的用例。 有关编写着色器的信息&#xff0c;请参阅编写着色器。 设置场景 第一步是创建一些用于测试着色器的对象。在主菜单中选择 Game Object > 3D Object > Capsule。然后&a…

高光谱遥感学习入门丨高光谱数据处理基础、Python和Matlab高光谱遥感数据处理

目录 ①Python高光谱遥感数据处理与高光谱遥感机器学习方法深度应用 ②Matlab高光谱遥感、数据处理与混合像元分解实践技术应用 ③高光谱遥感数值建模技术及在植被、水体、土壤信息提取领域应用 更多应用 高光谱遥感信息对于我们认识世界具有重要意义。尽管大部分物质在人眼…

记录 | docker权限原因导致service ssh start失败

【报错】 容器内启 ssh server 报错 有两个错&#xff1a; &#xff08;1&#xff09;/etc/ssh/sshd_host_rsa_key 权限太高&#xff1b; &#xff08;2&#xff09;/run/sshd用户组不为 root 解决方法&#xff1a; 方法一&#xff1a; 各自容器内对/etc/ssh/sshd_host_r…

【前端素材】推荐优质后台管理系统 Adminity平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面&#xff0c;通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面&#xff0c;使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

2024年四川媒体新闻发布渠道,媒体邀约资源表

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 四川有哪些媒体新闻发布渠道&#xff0c;媒体邀约资源表&#xff1f; 2024年四川媒体新闻发布渠道&#xff0c;媒体邀约资源表 四川本地媒体&#xff1a;如四川日报、华西都市报、成都商…

【论文阅读-PRIVGUARD】Day4:3节

3 PRIVANALYZER&#xff1a;强制执行隐私政策的静态分析 本节介绍PRIVANALYZER&#xff0c;这是一个用于强制执行由PRIVGUARD追踪的隐私政策的静态分析器**。我们首先回顾LEGALEASE政策语言&#xff0c;我们使用它来正式编码政策&#xff0c;然后描述如何静态地强制执行它们**…

<专利>机器人3D视觉快速定位抓取方法及系统

摘要&#xff0c;此专利无可用的关键技术信息&#xff0c;基本都是下面几句话反复说。。。 本发明提供了一种机器人3D快速定位抓取方法及系统&#xff0c; 包括&#xff1a; 通过高速的3D结构光成像对目标物体的表面轮廓进行扫描&#xff0c; 形成点云数据&#xff1b;对所述点…

Day07:基础入门-抓包技术全局协议封包监听网卡模式APP小程序PC应用

目录 非HTTP/HTTPS协议抓包工具 WireShark 科来网络分析系统 WPE封包 思维导图 章节知识点&#xff1a; 应用架构&#xff1a;Web/APP/云应用/三方服务/负载均衡等 安全产品&#xff1a;CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令&#xff1a;文件上传下载/端口服务/Sh…