查看: 1898|回复: 5
收起左侧

QQ的三大流派技术分析

[复制链接]
ameier55
发表于 2007-7-3 13:51:18 | 显示全部楼层 |阅读模式
不知道大家玩游戏的时候是否用工具作弊?如果经常用过游戏外挂的人,经常会说一些外挂真变态,什么东西都可以做。外挂有很多种,原理也很多,很难绝对的进行分类。这里我们可以简单的把游戏外挂分为:破解形;挂机外挂;脱机外挂。当然分类方法还有很多,这里不再多讲。
1999年,IPQQ的始祖出现了,是在QQ的前身OICQ时候出现的。邹丹制作的破解版,可以说形式上开创了一个时代。尽管时间过去了好几年,邹丹创立的模式几乎成为了一种标准——密界的标准,以后所有QQ显IP的方式都是继承邹丹显示IP的方式。邹丹的这一举动,在当时引起了一大片争议声。邹丹也收到了腾讯的律师函,邹丹考虑再三后,退出了为制作IPQQ的行列。
这个时候可以说破解型的QQ技术流派第一次出现。
邹丹可以说是这个领域的开山鼻祖,以及某种表现形式的创立者。,邹丹收到了腾讯的律师信后,就收手了,但是他还是做不住,搞了一点别的东西,那就是他从早期的寻找某个QQ中暴露的函数变成了分析QQ的协议包。
最终他变到了类似脱机外挂第三个个流派,就是为GAIM做插件,GAIM已经有人把他转成了windows下面的代码了这里就不再描述。具体情况大家可以去看http://www.zoudan.com/
对于第三流派,这里要讲到一个重要的软件就是Luma以及他们的伙伴。LumaQQ以及别的形式的QQ都类似与脱机外挂。他们只是通过分析出来的协议,然后自行编写客户端。这中间的工作量,就不说了。按照我对网络游戏的理解,做一个网络游戏的外挂要么就是开发商把代码泄露了,要么就是开发人员自己写,否则就几个人的精力几乎是不可能完成的任务。当然这个跟QQ普及,以及协议相对简单有关系。具体情况大家可以去看
http://lumaqq.linuxsir.org/main/
这种流派后续还有很多,比如myim,不过这个东东被腾讯给关了。

对于最近出现的两款显隐身的一个是miniQQ一个是搜友,他们是利用了WAPQQ的一个精简协议做的。尤其是miniQQ比较有意思的。

那么现在重点是讲讲从邹丹到珊瑚虫4.0以上版本,这个过程发生的动作。

珊瑚虫在soff的坚持发展到今天真的是很不容易。最初的珊瑚虫是一个跟随版本,也就是跟着邹丹的后面照着做的。这个版本还是比较稳定的。这个时期的版本属于紧密跟随邹丹型的破解版本。

木子版本,也是属于破解版本。但也因为种种原因收手了。

Cygwin后来用钩子写了一个东西,不过Cygwin谦虚的表示“珊瑚虫最初版很简单的,也参考了之前别人修改的方法,比如版本库就是直接盗用木子的,不过这个版本库盗用不是技术盗用,不被人介意的。” 其实他没有说正式他运用挂钩的思想,才使得珊瑚虫成了一个流派的象征。就是第二流派外挂型。

这个时候有出现了很多所谓显示IP的某某QQ版本。这些版本比较有意思,他们变成了不是破解QQ了而是破解珊瑚虫或者破解木子了。

不过这些作者都很厚道,一般都会说明是利用了什么的,但印象中有一个作者很硬朗明明用了别人的还赖帐的。不过有很多作者根本不继续研究下去,有一些是非常之无聊,就是做一个安装画面而已。这里要说一下一个破解珊瑚虫的例子。不过这个还是要懂一些东西才可以做的。QQ狂人DIY版是把珊瑚虫外挂注入到QQ.exe里面,以实现直接点QQ.exe就可以直接启动珊瑚虫外挂的目的它们所用的工具:LordPE,详细的教程在网上有下载。

吸收和利用别人的东西,或者说尽量利用原来已有的功能是这一类流派的主要特征。并且各个版本之间来回折腾相互学习也是很正常的。
ameier55
 楼主| 发表于 2007-7-3 13:52:30 | 显示全部楼层

QQ的三大流派技术分析

比如木子、飘云、以及珊瑚虫外挂3V系列版本,获取IP的原理是一样的。

木子的代码
SetIP proc
pushad
;=================取得IP地址==================;
mov eax,dword ptr [ebp-10h]
push offset dwIp
push offset szRecentip
push eax
mov ecx, [eax]
call dword ptr [ecx+34h]
;=================取得端口号==================;
……
;=================取得版本号==================;
……
not2003:

飘云的代码。
pushad
; =================取得IP地址==================;
mov eax,dword ptr [ebp-14h]
push offset dwIp
push offset szRecentip
push eax
mov ecx,[eax]
call dword ptr [ecx+34h]
cmp dwIp,0 ;是否已经取得IP

珊瑚虫3.16的取IP部分反汇编代码:


mov eax,dword ptr ss:[esp+10]
lea ecx,dword ptr ss:[esp+1C]
push ecx
push DUMPED.01B8D9EC ; ASCII对应的字符为"dwRecentIP"
mov edx,dword ptr ds:[eax]
push eax
call dword ptr ds:[edx+34]
………………………………………..
mov eax,dword ptr ss:[esp+10]
lea ecx,dword ptr ss:[esp+1C]
push ecx
push DUMPED.01B8D9D8 ; ASCII对应的字符为"dwC2CIP"
mov edx,dword ptr ds:[eax]
push eax
call dword ptr ds:[edx+34]
…………………………………..
mov eax,dword ptr ss:[esp+10]
lea ecx,dword ptr ss:[esp+1C]
push ecx
push DUMPED.01B8D9C8 ; ASCII对应的字符为 "dwIP"
mov edx,dword ptr ds:[eax]
push eax
call dword ptr ds:[edx+34]

因此可以看出3V系列的珊瑚虫版本的核心功能其原理是一样的,这种方式最大的问题在于,如果QQ下定决心,只要更新一次客户端基本上可以让这些外挂要重新写过一个。

这里要提一个里程碑就是珊瑚虫V4系列,这个根据协议包来处理的,这个在游戏外挂中来说属于能制作变态外挂的范畴,因为它可以改变任何封包的问题了。

在观察这些流派的过程中,我对飘云比较有兴趣。他的主页在http://www.pyqq.cn 这个一直是继承了破解版本的思路,并且有很多东西都是由runjin一个人捣腾的。当时看到soff还在鸣谢中加上了runjin,觉得很奇怪。
QQ2003II推出后,可以说木子已达到顶峰这作了。可惜由于TX的干涉,被迫放弃。这个时候网上出现了木子继承版来了(感觉runjin当时应该是高三),木子继承版后,就把这个改名字改成飘云了。
这个小伙子汇编用得牛,人也不错,我当时学cygwin,划拉了一个QQ外挂的框架给他。最后糊涂的说成了飘云也要做外挂了,其实当时的目的也是跟runjin交流一下而已。但是既然要做,我又找到了几个人叫他们帮忙做一些东西。这个时候runjin也是要多看看VC.

目前我认为,这三个流派中的代表分别为飘云(破解型)、珊瑚虫(挂机外挂型)、luma(脱机外挂型)。
milk0548
发表于 2007-7-3 14:02:00 | 显示全部楼层
好精彩啊,你真厉害。不过坚持用原版
毒来啦
发表于 2007-7-3 14:16:01 | 显示全部楼层
原版放心!
ameier55
 楼主| 发表于 2007-7-3 15:01:20 | 显示全部楼层
偶也觉得原版比较好
welen
发表于 2007-7-16 21:33:00 | 显示全部楼层
知道了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-25 10:27 , Processed in 0.135947 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

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