复制
收藏
提问
简洁

import time import requests import json import datetime import threading import random import os import base64 import gzip import hashlib newest_version = "3.4.6" newest_version_mingzi = "小南梁" newest_version_yaoqing = "9" data_0=''' {"req":"V114","e":{"pi":"2","sk":"3","ui":"不用填"},"ev":1} ''' # 在这里修改保存的文件夹地址 output_dir = '/storage/emulated/0/0py号子' data_0= json.loads(data_0) #获取sk # 尝试从数据中获取'sk'键的值 sk_value = data_0.get('e', {}).get('sk') # 检查'sk'键是否存在 if sk_value : pi,sk,ui,= data_0["e"]["pi"], data_0["e"]["sk"], data_0["e"]["ui"] else: pi,sk,ui,= data_0["t"]["pi"], data_0["t"]["sk"], data_0["t"]["ui"] url = 'http://cloudpvz2android.ditwan.cn/index.php' headers = { 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 13; 23013RK7C Build/TKQ1.220905.001)', 'Content-Type': 'multipart/form-data; boundary=_{{}}_', 'Connection': 'Keep-Alive', 'Accept-Encoding': 'gzip' } # 发送数据 def send(data): time.sleep(0.0) #如果锁ip就增加延迟 try: start_time = time.time() response = requests.post(url, headers=headers, data=data) end_time = time.time() # 记录请求结束时间 if response.status_code == 403: print("您可能已被拓维锁ip, 请开关飞行模式解除锁定") return "ip被锁" global latency_拓维 latency_拓维 = (end_time - start_time) * 1000 # 计算延迟, 并转换为毫秒 return response.text except RuntimeError: return "" # 在发送基础上,增加判断是否成功,并且自动输出拼接语句 def send_for_intent(data, intent): response = send(data) success = "\"r\":0" in response print(intent, "成功🎉" if success else "失败") return success, response data = {} for i in range (10000): data[f'号子{i}']= {"req":"V202","e":{"ci":"91","cv":"3.4.6.1540","di":"","head":{"appId":"109","appVersion":"1.0","channelId":"54","channelSdkVersion":"dj2.2-3.14.4.574","talkwebSdkVersion":"3.0.0"},"li":"786fa1bf3c20b7d68c4d83a9afbcd59d","oi":f"{i+99999}X241909023","pi":"","r":"1263479390","s":"3b769a92b0763b564a823246caa65a39","t":"241909023|e6f144a12d94c5d89b0e54297124f1f3|46619|20240708124004d1b0de932589d4bb3f55ffadb8605ec900d7a132e568738e|bdd8553dafb1d20b5a55a35fe130675e|80faf5d0832e49b54f4a672982c0d0d2|1721709615|4399","ui":""},"ev":1} def make_更新数据包(): if not os.path.exists(output_dir): os.makedirs(output_dir) for key, value in data.items(): file_path = os.path.join(output_dir, f"{key}.txt") content= json.dumps(value, separators=(',', ':'),ensure_ascii=False) with open(file_path, 'w', encoding='utf-8') as file: file.write(content) input("所有文件已保存完成,请手动加密整个文件夹'0py号子',该文件夹应该位于手机根目录下") def make_发送拼接提示(data_数据包, data_提示, file_path=None): # 如果file_path没有提供,则使用output_dir和data_数据包来构造文件名 if file_path is None: file_path = os.path.join(output_dir, f'{data_数据包}.txt') try: with open(file_path, 'r', encoding='utf-8') as file: data = file.read() suc, r = send_for_intent(data, data_提示) return suc, r except FileNotFoundError: print(f"没有找到文件:{file_path}") return False, None # 或者根据你的需求返回合适的值 except Exception as e: # 捕获其他可能的异常 print(f"读取文件时发生错误:{e}") return False, None # 或者根据你的需求返回合适的值 def make_号子(): c=0 for i in range(10000): suc,r=make_发送拼接提示(f'号子{i}',f'号子发送第{i+1}次') c=c+1 if suc else c if c ==10000: print("号子已完成") return print(response.text) def display_menu(): print(" ㅤ抓包后手动解密数据包,填入data_0,再运行本程序") print(" 先选择1更新数据包,再用DART或者其他软件加密手机根目录下的'0py邀请'文件夹,加密后再次运行本程序选择其他功能") print(" ㅤ 粒了 ") print(" ㅤ1:更新数据包") print(" ㅤ 2:号子") print(" ㅤq:退出") print(" ㅤㅤ请选择要执行的任务(可多选, 以空格分隔,按回车键执行):") def call_functions(choices): for choice in choices: if choice == "0": make_更新数据包()

728c543f9
2个月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

看起来你提供的是一个Python脚本,这个脚本包含了一些网络请求的功能,以及一些数据处理和文件操作的功能。不过,这个脚本似乎不完整,并且有一些错误和不规范的地方。我会尝试帮你理解这个脚本的主要功能和指出一些潜在的问题。

  1. 导入模块:脚本开始处导入了一系列Python模块,这些模块用于处理网络请求、文件操作、数据加密等。

  2. 版本信息:定义了三个变量newest_versionnewest_version_mingzinewest_version_yaoqing,看起来像是用于版本控制。

  3. 数据包data_0变量包含了一个JSON格式的字符串,这个字符串被解析为一个字典,用于获取sk值。

  4. 输出目录output_dir变量定义了保存文件的目录路径。

  5. 网络请求函数send函数用于发送POST请求到指定的URL。

  6. 发送并检查结果的函数send_for_intent函数在发送请求的基础上增加了检查请求是否成功的逻辑。

  7. 生成数据包的函数make_更新数据包函数用于生成数据包并保存到文件中。

  8. 发送数据包并提示结果的函数make_发送拼接提示函数用于读取文件内容,发送请求,并打印请求结果。

  9. 发送号子的函数make_号子函数用于循环发送号子,并检查是否所有号子都发送成功。

  10. 显示菜单和调用函数display_menucall_functions函数用于显示操作菜单并根据用户输入调用相应的功能。

潜在问题和建议

  • 脚本中存在一些变量名和函数名使用了中文,这在Python中是允许的,但通常不推荐,因为它可能会降低代码的可读性。
  • data_0的处理逻辑似乎有问题,它首先尝试从e键获取sk值,如果没有找到,又尝试从t键获取,但data_0的初始值中并没有t键。
  • make_号子函数中的if c ==10000:逻辑似乎有误,因为c的初始值是0,即使所有请求都成功,c的值也只会是9999。
  • call_functions函数中的if choice == "0":应该是一个错误,因为根据display_menu函数的输出,选项是从1开始的。
  • 脚本中没有看到实际的加密操作,但有提示用户手动加密文件夹,这可能需要用户具备一定的技术知识。

如果你需要帮助修正这个脚本或者有其他具体的问题,请提供更多的信息或者具体的问题描述。

你觉得结果怎么样?
Python requests库如何发送POST请求?
Python中如何使用json模块处理JSON数据?
Python threading模块如何使用?
如何使用Python的gzip模块进行数据压缩?
Python hashlib模块如何进行哈希计算?
如何使用Python的base64模块进行编码?

以上内容由AI搜集生成,仅供参考

在线客服