|
首先,就是HOOK掉关键传入sessionkey的地方,也就是Common.dll中的Common.oi_symmetry_encrypt2简单的分析一下参数,就可以看到参数中有sessionkey的指针了。可以说获得了sessionkey基本所有Q的操作我们都可以实现了简单的分析一下发送的QQ包下面是已经通过sessionkey解的udp数据包- (1)
- 00 00 00 10 00 00 00 12 08 01 12 0C 08
- C8 A3 C3 C9 06
- 10 E3 07 98 01 00 08 E5 0F 10 01 22 0B 58
- E2 D0 F3 B4 0D
- (2)
- 00 00 00 10 00 00 00 12 08 01 12 0C 08
- C8 A3 C3 C9 06
- 10 E3 07 98 01 00 08 E5 0F 10 01 22 0B 58
- 85 F9 9F 91 03
- (3)
- 00 00 00 10 00 00 00 12 08 01 12 0C 08
- E2 D0 F3 B4 0D
- 10 E3 07 98 01 00 08 E5 0F 10 01 22 0B 58
- C8 A3 C3 C9 06
复制代码- (1)和(2)是相同QQ号发送得点赞请求,那么唯一发生变化得就是对方QQ
- (2)和(3)不同QQ号发送,上面得5字节也发送了变化,那么有理由相信这就是我的QQ号
发送包分析完了,那就得求得加密算法了,QQ转16进制,应该是4字节,而到这里就变成了5字节,那这里一定是加密了,到这里我上网查了一些源码,没自己分析,就不多bb了,等下下载源码自己看看得了(python中有句话叫不要重复造轮子,确实不想造)至此感觉,QQ协议不过如此嘛,简简单单,东拼西凑QQ点赞器就成了?当然并没有- 确实刚做好能点赞,但是当我重新登录得时候,奇怪得事情还是发生了(bug),点赞并没有成功,于是我猜想了一下原因:
- 原本QQ协议一些参数需要重新获取
- 源码本身存在问题
- 已经被tx察觉
- 发生ip发生了变化
- 按照这个调bug思路我走了下去,确实问题发生在了ip上这不就简简单单,内存中搜索一下不就ok了吗?(你看我这臭毛病,总是喜欢自问自答),但是想在QQ中搜到自己想要的数据几乎不可能,于是还是从函数(win32.api)入手吧!
- 如果想要发送udp的包,那么一定逃不过下面的api
- ws2_32.dll.sendto
- ws2_32.dll.WSASendTo
- 事实上我们的想法确实是有效的,F2下断在参数中我们就找到了指向ip的指针,使用抓包工具,看看ip,确实是这个ip,至此我们要的所有条件就完成了。下节我们讲如何获取最新的clientkey(也就是快速登录)基本内容
- 老版本clientkey如何获取的
- 新版本会遇到什么问题
- 解决思路
- 百度链接: https://pan.baidu.com/s/1RYPyNAOAA6Wfl2KIbSA_oA 提取码: 3q21
|
|