乐易论坛-乐易网易语言培训教程火山PC视窗中文编程交流论坛

 找回密码
 立即注册

手机号登录

用手机号号登陆

微信登录

微信扫码,快速开始

QQ登录

用QQ账号登陆

办理VIP,定制软件,报名培训联系QQ[重磅]2024年实地培训高清培训目录火山PC版乐易模块使用教程
有了火山,易语言是否还有必要学习吗?易语言0基础入门课程火山PC视窗0基础入门课程
乐易论坛官方QQ群一览表易语言外挂0基础入门课程火山PC视窗火山HOOK入门课程
易语言误报处理课程QQ空间POST课程2022年火山PC易语言POST系列课程
Android逆向Jeb动态调试0基础课程QQ邮箱网页POST课程WeChat个微Hook实战课程
百日Js加密分析实战课程(无密下载)QQ群POST课程h5游戏WebSocket逆向视频
JavaScript加密特训课程易语言汇编快速入门课程破解实战系列课程
手游模拟器脚本0基础课程易语言加密防破解0基础入门课程广告位招租联系QQ1615457736
查看: 32183|回复: 46

【实战】调用QQ/TIM算法,实现clientkey的提取,并完成快捷登陆

[复制链接]

【实战】调用QQ/TIM算法,实现clientkey的提取,并完成快捷登陆

[复制链接]
已绑定手机
已实名认证
揰掵佲
等级头衔

等級:乐易运营组

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分成就
易币
贡献
主题
精华
金钱
积分
33746
注册时间
2014-8-2
最后登录
1970-1-1

勋章墙

2019-10-11 15:03:37 | 显示全部楼层 |阅读模式
这是很早之前的东西了,只是网上很少人放出来,具体的分析过程我也不记得了!大概说一下思路吧!

1、当QQ/TIM 启动的时候 会在本地创建一个小型的web服务器  比如 访问这个网页 就能提取出 http://localhost.ptlogin2.qq.com:4300/mc_get_uins 你当前登陆的所有QQ 但是 他只能显示出来登陆了几个,不能进行操作
2、登陆QQ之后,我们可以直接在QQ的面板点击 QQ空间进入  
[AppleScript] 纯文本查看 复制代码
https://ssl.ptlogin2.qq.com/jump?ptlang=2052&clientuin=“+clientuin+”&clientkey="+clientkey+"&u1=https:%2F%2Fuser.qzone.qq.com%2F“+clientuin+”%2Finfocenter&source=panelstar

3、通过访问这个网址,可以获取到对应的cookies 从而完成快捷登陆,QQ9.1版本开始修复了 clientkey直接通过网页版获取,而是通过控件获取,导致我们无法加载控件
4、我们可以通过直接在内存中,完成 clientkey的计算 ,方法 包括了 内存搜索、 或者 调用相关的函数 本章 讲的是 如何调用 相关的函数计算
5、对应的算法 是 KernelUtil.dll 中 ?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z     
6、IDA载入后分析该函数
[C] 纯文本查看 复制代码
CTXStringW *__cdecl Util::Misc::GetSignature(CTXStringW *a1, int a2)
{
  int v2; // eax
  char v4; // [esp+0h] [ebp-10h]
  int v5; // [esp+4h] [ebp-Ch]
  int v6; // [esp+8h] [ebp-8h]
  int v7; // [esp+Ch] [ebp-4h]

  CTXStringW::CTXStringW(a1);
  v5 = 0;
  sub_55404A73(&v5);
  if ( v5 )
  {
    v6 = 0;
    if ( (*(*v5 + 60))(v5, a2, &v6) >= 0 )
    {
      v7 = 0;
      sub_5536126A(v6);
      v2 = Util::Encode::Encode16(&v4, &v7);
      CTXStringW::operator=(a1, v2);
      CTXStringW::~CTXStringW(&v4);
      if ( v7 )
        (*(*v7 + 8))(v7);
    }
    sub_5540C87C(&v6);
  }
  sub_5540C87C(&v5);
  return a1;
}

7、发现有2个参数  其中 a1 是返回值 a2是主要参数 ,查看交叉引用
[C] 纯文本查看 复制代码
CTXStringW *__cdecl Util::Misc::Get32ByteValueAddedSign(CTXStringW *a1)
{
  Util::Misc::GetSignature(a1, "buf32ByteValueAddedSignature");
  return a1;
}


8、定为关键位置
[Asm] 纯文本查看 复制代码
.text:55416*FC ; class CTXStringW __cdecl Util::Misc::Get32ByteValueAddedSign(void)
.text:55416*FC                 public ?Get32ByteValueAddedSign@Misc@Util@@YA?AVCTXStringW@@XZ
.text:55416*FC ?Get32ByteValueAddedSign@Misc@Util@@YA?AVCTXStringW@@XZ proc near
.text:55416*FC                                         ; CODE XREF: Util::URL::AdjustUrl(CTXStringW const &,Util::URL::URLMODIFYLEVEL,CTXStringW const &,wchar_t const *)+A8↓p
.text:55416*FC                                         ; Util::URL::GetKeyFmt(*FmtString &)+21↓p ...
.text:55416*FC
.text:55416*FC arg_0           = dword ptr  8
.text:55416*FC
.text:55416*FC                 push    ebp
.text:55416*FD                 mov     ebp, esp
.text:55416*FF                 push    offset aBuf32bytevalue ; "buf32ByteValueAddedSignature"
.text:55416D04                 push    [ebp+arg_0]
.text:55416D07                 call    ?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z ; Util::Misc::GetSignature(char const *)
.text:55416D0C                 mov     eax, [ebp+arg_0]
.text:55416D0F                 pop     ecx
.text:55416D10                 pop     ecx
.text:55416D11                 pop     ebp
.text:55416D12                 retn

9、函数代码不太难,直接远程注入,得到结果之后,构建第2步的网址,访问网页,发现 登陆成功了! 剩下的无非就是基本的网页抓包分析了!
10、值得注意的是,每个不同版本的QQ/TIM 所对应的 offset是不同的,所以需要动态获取

完整代码如下
游客,如果您要查看本帖隐藏内容请回复


12、整个快捷登陆代码如下
游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复


游客,如果您要查看本帖隐藏内容请回复
模块地址 https://www.leybc.com/thread-2843-1-1.html 模块中的命令都是乐易模块的!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

已绑定手机
q小杰
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
202
注册时间
2016-6-26
最后登录
1970-1-1

勋章墙

2019-10-11 15:48:36 | 显示全部楼层
不错                     
回复

使用道具 举报

已绑定手机
DD924
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
218
注册时间
2019-9-20
最后登录
1970-1-1

勋章墙

2023-7-30 20:14:17 | 显示全部楼层
战】调用QQ/TIM算法,实现clientkey的提取,并完成快捷登陆 [修改]
高级模式
回复

使用道具 举报

已绑定手机
tenp00
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
193
注册时间
2017-6-13
最后登录
1970-1-1

勋章墙

2023-7-31 15:53:44 | 显示全部楼层
IM算法,实现clientkey的提取,并完成快捷登陆 [修改]
高级模式
回复

使用道具 举报

已绑定手机
weenze
等级头衔

等級:顶级Vip

Rank: 14Rank: 14Rank: 14Rank: 14

积分成就
易币
贡献
主题
精华
金钱
积分
812
注册时间
2014-11-7
最后登录
1970-1-1

勋章墙

2019-10-11 15:10:22 | 显示全部楼层
mingge  66666
回复

使用道具 举报

已绑定手机
丶七年
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
365
注册时间
2019-6-16
最后登录
1970-1-1

勋章墙

2019-10-11 16:49:01 | 显示全部楼层
哇!看看看,支持大佬
回复

使用道具 举报

已绑定手机
已实名认证
745885260
等级头衔

等級:编程入门

Rank: 4

积分成就
易币
贡献
主题
精华
金钱
积分
495
注册时间
2017-9-20
最后登录
1970-1-1

勋章墙

2019-10-11 17:14:20 | 显示全部楼层
调用QQ/TIM算法,实现clientkey的提取,并完成快捷登陆
回复

使用道具 举报

已绑定手机
sxyo
等级头衔

等級:初识编程

Rank: 1

积分成就
易币
贡献
主题
精华
金钱
积分
17
注册时间
2019-10-11
最后登录
1970-1-1

勋章墙

2019-10-11 20:34:16 | 显示全部楼层
感谢大佬分享,正需要,谢谢
回复

使用道具 举报

已绑定手机
夏时
等级头衔

等級:编程学徒

Rank: 3Rank: 3

积分成就
易币
贡献
主题
精华
金钱
积分
172
注册时间
2019-8-20
最后登录
1970-1-1

勋章墙

2019-10-11 23:13:45 | 显示全部楼层
真棒我来学习了
回复

使用道具 举报

已绑定手机
empo
等级头衔

等級:编程起步

Rank: 5Rank: 5

积分成就
易币
贡献
主题
精华
金钱
积分
888
注册时间
2015-7-18
最后登录
1970-1-1

勋章墙

2019-10-11 23:22:19 | 显示全部楼层
学习一下......
回复

使用道具 举报

已绑定手机
已实名认证
飘雪
等级头衔

等級:程序设计师

Rank: 7Rank: 7Rank: 7

积分成就
易币
贡献
主题
精华
金钱
积分
3669
注册时间
2016-4-6
最后登录
1970-1-1

勋章墙

2019-10-12 14:41:31 | 显示全部楼层
调用QQ/TIM算法,实现clientkey的提取,并完成快捷登陆
回复

使用道具 举报

已绑定手机
lingjuesuo666
等级头衔

等級:编程菜鸟

Rank: 2

积分成就
易币
贡献
主题
精华
金钱
积分
67
注册时间
2019-5-8
最后登录
1970-1-1

勋章墙

2019-10-12 16:51:34 | 显示全部楼层
学习一下......
回复

使用道具 举报

如果懒得打字,请选择右侧内容快捷回复 提醒:以任何方式进行『恶意灌水』的行为,进行封号处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

热点推荐上一条 /5 下一条

QQ|网站地图|手机版|小黑屋|乐易论坛-乐易网 | 湘ICP备19007035号

拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表乐易立场!

娄底市乐易网络科技有限公司声明:乐易原创培训课程版权均为我公司所有,未经许可,不得擅自翻录,盗版,破解本站课课程,我们将保留法律诉讼的权利

GMT+8, 2024-4-28 15:34 , Processed in 0.055057 second(s), 83 queries .

Powered by Discuz! X3.4

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表