2024.9.15最新获取QQKey(Clientkey)的方法


前言

需要成品请直接看文章结尾,包含扫码控号,生成小马,获取Skey等各种功能

QQKey,顾名思义就是QQ的一种密钥,与密码不同,QQKey可以实现直接式登录QQ的各种业务,权限相当与密码会更高,且无需进行各种号主认证


一、通过网页抓包进行观察

Step 1. 迈出第一步

打开QQ空间后按下F12打开开发者控制台,点开网络后刷新观察

PIC1

Step 2. 获取QQ号

通过对每个请求观察找到pt_get_uins这个请求,发现其返回的正是我们所登录的QQ号

PIC2

加以观察,发现pt_local_tk这个未知的值,此时,就需要倒推回去了

Step 3. 获取pt_local_tk

继续往前看,发现xlogin请求返回的Set-Cookie就返回了我们正需要的pt_local_tk

PIC3
稍微比较一下,发现正好对应刚刚pt_get_uins请求内的pt_local_tk
这时,我们就正式搞定获取QQ号和pt_local_tk了

Step 4. 获取QQKey(Clientkey)

接下来就是我们最重要的获取QQKey了
QQKey,真实名称其实叫ClientKey,因为功能性被称为了QQKey
点击你的头像进行登录,此时又会蹦出来一大堆请求,别慌,一般像这种有目的请求一般还是比较好找的
观察请求,发现pt_get_st这个请求看起来比较可疑,观察请求,发现我们的QQKey就在请求的Set-Cookie里

PIC4

至此,获取QQKey的所有步骤已经完成,接下来就是程序实现了


二、程序实现

注意在请求后续QQ号和QQKey时需带上Headers
Referer: https://xui.ptlogin2.qq.com/
Host: localhost.ptlogin2.qq.com:4301

import sys
import requests
import re
import json
import os
os.system("title QQ Clientkey 获取器")
print("[Info] 欢迎使用 QQ Clientkey 获取器!")
print("[Tip] 在刚登录QQ时获取可能会出现如无法获取key的情况,这时请重启工具获取!")
session = requests.session()
try:
    print("[Info] 正在获取pt_local_token...")
    login_htm = session.get("https://xui.ptlogin2.qq.com/cgi-bin/xlogin?s_url=https://qzs.qq.com/qzone/v5/loginsucc.html?para=izone")
    q_cookies = requests.utils.dict_from_cookiejar(login_htm.cookies)
    pt_local_token = q_cookies.get("pt_local_token")
    pt_login_sig = q_cookies.get("pt_login_sig")
    print(f"[+] pt_local_token={pt_local_token}\n[+] pt_local_sig={pt_login_sig}")
    params = {"callback":"ptui_getuins_CB",
              "r":"0.8987470931280881",
              "pt_local_tk":pt_local_token}
    cookies = q_cookies
    headers = {"Referer":"https://xui.ptlogin2.qq.com/",
               "Host":"localhost.ptlogin2.qq.com:4301",
               "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0"}
except Exception as e:
    print(f"[ERROR] 获取pt_local_token时发生错误,原因:{e}")
    input()
    sys.exit(0)
try:
    print("[Info] 正在获取本机登录QQ号..")
    get_uin = session.get("https://localhost.ptlogin2.qq.com:4301/pt_get_uins",params=params,cookies=cookies,headers=headers).text
    uin_list = re.findall(r'\[([^\[\]]*)\]', get_uin)[0]
    split_list = list(map(lambda i:i if i[0] == '{' else '{'+i,uin_list.split(',{')))
    uin = None
    nickname = None
    if len(split_list) > 1:
        print("[Info] 检测到您正在多开QQ,将使用第一个QQ号获取")
        uin_list = json.loads(json.loads(json.dumps(split_list[0])))
        uin = uin_list.get("uin")
        nickname = uin_list.get("nickname")
    else:
        uin = json.loads(uin_list).get('uin')
        nickname = json.loads(uin_list).get('nickname')
    print(f"[+] uin={uin}\n[+] nickname={nickname}")
    clientkey_params = {"clientuin":uin,
                        "r":"0.14246048393632815",
                        "pt_local_tk":pt_local_token,
                        "callback":"__jp0"}
    print("[Info] 正在获取clientkey...")
    clientkey_get = session.get("https://localhost.ptlogin2.qq.com:4301/pt_get_st",cookies=cookies,headers=headers,params=clientkey_params)
    clientkey_cookies = requests.utils.dict_from_cookiejar(clientkey_get.cookies)
    clientkey = clientkey_cookies.get("clientkey")
    if not clientkey:
        print("\033[33m[Warning]未获取到clientkey,请尝试稍后重启工具获取!\033[0m")
    else:
        print(f"[+] clientkey={clientkey}")
except Exception as e:
    print(f"[ERROR] 获取clientkey发生错误,请检查是否开启QQ!")
    input()
    sys.exit(0)
while True:
    pass

执行效果

PIC5


三、总结

如需完整代码(获取Skey,Pskey,QQ空间&QQ群突破地址以及生成小马等各种功能),可参见我的Github仓库
其中也包含着扫码登录实现控号的功能,如果觉得好用不妨给我打个Star:)

请添加图片描述

新人第一次写文章,求赞!
就这样,散会!

### 回答1: 易语言是一种简单易学的编程语言,用于开发Windows平台下的应用程序。要写QQKey的关键是要了解QQ的协议和通信方式。 首先,需要明确QQKey的功能是什么。QQKey是指能够获取QQ用户的登录凭证,通常是QQ号码和密码的组合。为了实现这个功能,需要用到QQ的协议和API接口。 其次,需要学习易语言的基本语法和库函数。易语言提供了一些常用的函数库,例如网络通信库和字符串处理库,可以用来与QQ服务器进行通信。 接着,需要了解QQ的协议和通信方式。QQ使用的是自己的私有协议,并通过TCP/IP进行通信。在易语言中,可以使用网络通信库来实现与QQ服务器的通信,例如发送登录请求并接收返回的登录凭证。 最后,就可以开始编写QQKey了。首先需要创建一个易语言项目,然后导入网络通信库和其他需要使用的库函数。接着可以编写代码,根据QQ的协议和通信方式发送登录请求,并接收返回的登录凭证。 编写过程中要注意错误处理和安全性。例如,需要对用户输入的QQ号码和密码进行合法性检查,并加密传输,以保证安全性。 综上所述,易语言编写QQKey需要掌握QQ的协议和通信方式,并使用易语言的网络通信库进行登录请求和返回凭证的处理。在编写过程中,需要注意错误处理和安全性。 ### 回答2: 编写QQKey,需要使用易语言的相关功能和库。以下是使用易语言编写QQKey的步骤: 1. 导入库:打开易语言开发环境,从“库函数”菜单中导入QQKey相关库。这些库包含了与QQ通讯密钥相关的函数和方法。 2. 定义变量:定义一个变量来存储QQ通讯密钥。 3. 获取QQ号和密码:在程序中获取用户的QQ号和密码。可以使用输入框或文本框等控件来接收用户输入。 4. 生成QQKey:调用相应的函数或方法,将QQ号和密码作为参数传递给生成QQKey的函数。函数会将生成的QQKey赋值给变量。 5. 使用QQKey:将生成的QQKey用于与QQ服务器进行通讯。可以调用其他相应的函数或方法来实现与QQ服务器的交互。 6. 结束程序:在程序结束时,清空变量并释放相关资源。 需要注意的是,编写QQKey的过程中需要保护用户的隐私和安全,不得以任何形式泄露或滥用用户的QQ账号和密码。用户的隐私是程序开发者需要高度重视的事项。 编写QQKey的过程需要对易语言的基本语法和相应的函数库有一定的了解。在编写过程中,可以参考相关的文档、示例代码和在线论坛等资源,以便更好地完成该任务。同时,及时调试和测试程序,确保其功能正常,并及时处理可能出现的错误和异常情况。 ### 回答3: 易语言是一种适用于Windows操作系统的编程语言,可以用来编写各种应用程序。如果要编写一个QQ Key的程序,可以按照以下步骤进行: 1. 导入所需的库和模块:在易语言中,可以使用系统库和自定义模块来实现各种功能。首先需要导入相关的库和模块,例如导入"kernel32"库和"user32"库。 2. 创建主窗口:使用"窗口"函数创建一个主窗口,可以设置窗口的标题、大小和位置等属性。 3. 添加窗口控件:在主窗口中添加一个文本框和一个按钮控件,用于输入和显示QQ Key。 4. 编写按钮的点击事件处理函数:当按钮被点击时,该事件处理函数会被调用。在事件处理函数中,可以获取文本框中的输入内容,并进行相应的处理。 5. 生成随机的QQ Key:可以使用随机数生成函数来生成一串随机的数字作为QQ Key。 6. 将QQ Key显示在文本框中:在事件处理函数中,将生成的QQ Key显示在文本框中,可以使用"设置控件文本"函数来设置文本框的内容。 7. 运行程序:通过运行程序,可以打开主窗口,用户可以输入内容并生成QQ Key。 编写QQ Key程序的具体代码如下: ``` ' 导入系统库 导入DLL文件("kernel32.dll") 导入DLL文件("user32.dll") ' 创建主窗口 窗口 表单1, "QQ Key生成器", 0, 0, 300, 150, 窗口样式.默认样式, 0 设置窗口标题(表单1, "QQ Key生成器") ' 添加文本框 文本框 文本框1, 表单1, 10, 10, 280, 30 设置控件名称(文本框1, "文本框1") ' 添加按钮 按钮 按钮1, 表单1, 110, 50, 80, 30, 按钮样式.默认样式 设置控件名称(按钮1, "按钮1") 设置控件文本(按钮1, "生成") ' 按钮点击事件处理函数 过程 按钮1_单击() ' 生成随机的QQ Key 数值 QQ_Key = 随机数(100000000, 999999999) ' 将QQ Key显示在文本框中 设置控件文本(文本框1, 数值(QQ_Key)) 结束过程 ' 运行程序 运行对话框(表单1) ``` 以上代码实现了一个简单的QQ Key生成器程序,用户可以通过点击按钮生成随机的QQ Key,并显示在文本框中。当然,这只是一个简单的示例,可以根据自己的需求和创意来扩展程序的功能和界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值