5、飘云的发展
飘云这几年总是用着自己最古老的口碑宣传方式,稳定的发展着自己的用户。
先说一下,硬件支持方面。很幸运,在不同阶段总是有人愿意以赞助形式提供服务器,域名也是有很多人免费提供与赞助的。第一个提供空间的是第5城市(模模糊糊的印象了),最后这个空间商倒闭了,接着我们遇到了成功助理,非常感谢成功助理http://www.1cg.cn/.他那个服务器特别好,并免费给我们提供了一年时间的使用。没有对飘云提出任何要求。之间还有几个网友短暂的收留过我们,这里要说的是他们把飘云赶走是因为飘云搬到哪个服务器,这个服务器马上会受到DDOS攻击。“杀手帝王”的服务器是深受其害,这里我们向这些给我们免费提供服务器的人表示感谢。飘云的玉米几乎都是别人赞助的,目前只有www.piaoyun.net与 bbs.piaoyun.nets是飘云团队正在使用的。其它的有不少曾经是飘云的赞助域名,现在还有很多人赞助了很多域名。目前的服务器是亿恩科技的,是飘云自掏腰包的。这里顺便鄙视一下亿恩科技的服务,真是垃圾。大家可以到他的官方网站http://www.enkj.com/去看看他们是如何吹牛的,反正在这个里面放了空间后就没有安稳过。顺便说一下,www.piaoyun.net里面是放的广告,也是无奈之举,因为软件我们可以花自己的精力制作,但是没有理由我们还要倒贴钱去买个空间。目前广告收入最高的时候有2000块钱,飘云没有出新版本的时候也有800多,勉强维持服务器的成本,到明年三月应该以把以前的花钱租服务器的钱赚回来,到那时候服务器也到期了。
飘云QQ是一个软件,其核心主要是两个方面去广告与显IP。原理无非是把某些网络数据包截获与丢弃,或者是直接找到程序入口通过给出一个参数,或者获得数据。总体来说就这么两种方法。目前原创的有飘云、珊瑚虫、 liteIM。都是用到了程序入口与数据包的方法。其中给过liteIM的作者morning飘云的代码,并且有过比较深入的交流。但是liteim由于自身的原因不再更新,使得liteim所在的打包QQ-极速QQ因此也陷入了困境。说实在的本人非常看好liteIM,尤其其制作理念,以及morning的技术深度与广度,以及周边的aqing等皮肤制作者,都是在修改版本中有分量的人物。
回到飘云的发展历程。他主要是有如下几个比较有意义的开发过程。
5.1、右键的简洁配置方式。
很遗憾,目前使用这些版本的菜鸟级人物真多,同时我们宣传的力度不够,很多人竟然不知道有右键这个功能。顺便要说一下,runjin做的这个菜单功能是用汇编写的,我当时一看就晕,有一种他是用“大炮打蚊子”的感觉。耗子的外挂版本是MFC搞的,不过总是有这有那的bug。让人郁闷与困惑中。
不管如何,飘云是最早试图把一些配置性的东西用简单的可视化的东西实现。我们的要求是简洁,简洁再简洁。让右键解决所有常用的实用功能。比如以前QQ尾巴病毒猖獗,我们就设置了一个拒绝接受文件与拒绝接收图片的功能。论坛上有一些mm说他们总是受到网上一些人无休止的视频请求的骚扰,我们就加了一个自动拒绝视频的功能。
5.2、自鸣得意的去广告功能
TX的广告的确很让人郁闷的,这里的广告指的是时不时“蓬、蓬”的弹出的那类东西,这些东西的确很烦人,大部分人讨厌它并对它恨之入骨。精确的去掉这个广告,有两种方法。第一种找到函数入口,并改变其参数。飘云就是用这个方法。因此有人说用UDP登陆时候飘云可能会出现漏网之鱼,还会有部分广告的出现,这个我就一直很困惑,我可以负责任的说这个不是所谓的UDP方式的原因,因为飘云非外挂版,跟你的登陆方式无关,跟所谓的网络协议也不搭边。
另外一种方法就是耗子在飘云外挂中运用到了。下面是耗子的一段话,原文请到http://bbs.piaoyun.net/read-htm-tid-59156.html
“常见的右下角弹出的消息,基本去掉了,但是我一直耿耿于怀的是,有一种右下角弹出的广告消息,非常罕见。弹出来时候的界面也和弹出的新闻有所不同,可是不幸的是,我已经两个月没有见到这个东西了,也一直分析不出来。所以,我只能说,看运气,也许明天就弹个出来,然后我在10分钟内作掉它。另外,我所能处理的这些消息的特征,应该说腾讯只要更新一下服务器配置,就有可能就可以躲过我的判断,当然我也可以迅速跟进,这个,不好说。”
这里有人就会问了,飘云版去广告,去得干净利落,而飘云外挂为什么还那么拖泥带水呢?
那是因为飘云外挂完全是一个干净的从协议包的方式干掉广告的。这点要佩服TX,以前的广告好处理,因为他时不时的发一个广告的消息过来,如果他频繁的发,那逮住这种包就很好办,做掉它也很快。但目前TX大大的狡猾了,发广告的时间不那么长了,并且是分号码段的,逮个广告包真难。
干掉协议包容易,难的是分析的过程,说实在分析真的更重要。我们采用的是土办法,耗子先写了一个抓包的程序。然后叫飘云的管理员—爆米花去申请了几个新号,一直挂着,这个号没有进行聊天,然后挂上24个小时,接着我们收集log,并对这些包结构进行分析。这样那个是广告的就很好逮住。
此外对于去广告的方法,我们曾经想通过直接去掉windows窗体的方法干掉,但这条路没有走通,里面遇到了很多讨厌的事情,bug多多。
因此对于去广告,我还是非常自鸣得意的,各种方法我们都用过。但是runjin所坚持的方法的确更高效与简洁。
5.3、不同版本的主显IP的问题
先说一下什么是主动显示IP,什么叫被动显示IP。被动显示IP就是通过截获自己机器上的某个协议包,或者分析某个内容地址上的信息获得的IP地址。主动显示IP是,通过某一个动作,比如主动发送一个网络协议包,然后截获自己机器上的某个协议包,或者分析某个内容地址上的信息获得的IP地址。
说一下飘云的方法,飘云主要是分析出了某个函数入口,或者说在内存的某个位置,放有了IP信息,飘云知道把这个信息取出来就可以了。这个就是被动显IP的方法。2005年的时候TX把消息发送的方式变换了,很多消息是通过服务器中转,因此被动显IP的成功率大大降低。
最早出现主显IP的说法是LumaQQ提出的“如来神掌”。珊瑚虫v4。0的时候是个里程碑,因此我在我的一篇文章中(地址见:http://bbs。piaoyun。net/read-htm-tid-15644。html )有提到。
主动发包,是这么两个要点,发什么样的包;发包的频率与时机。最难的是发什么样的包。
飘云在发什么包的问题上,一直是一个比较取巧的路。我们最早想根据lumaQQ所描述发一个0大小的图片的方式进行,但是似乎行不通,也许我们比较笨的原因。但是当我们改发一个小图片的方法的时候,感谢我们那破网络与破机器,我们发现自己或者对方总是有出现正在接收自定义图片的这种方式。因此这种方式我们就放弃了,毕竟用户体验太差。
飘云的第一个主显IP的是利用共享文件。
这个方法其实是很多朋友发现的,我们只是把这个操作用简洁的几个数据包的发送与接收就是所谓的主显IP了。这个方法难的是对接收到的包的分析,首先是获取不了端口号,或者显示为零。因为是用到的文件传输协议,里面的地址很多是保留地址,比如会出现0。0。0。12这样的情况。另外如果是同时用函数入口地址读内存与分析获得的数据包这么两种方法可能会导致数据的不统一。这是因为,一个是通过函数入口的方法它有滞后性,而截获协议包是瞬间的问题,因此只有取到最后一个才可能是正确的。简单的说,就是一个加密算法分析的过程。很高兴,qq这个东西一直都有,一直到前不久的beta1版本才正式把这个东西去掉了。飘云在公布的版本中一直就只用这个方法。
飘云的第二个主显IP的方法是利用刚登陆的时候有一次IP交换
这个具体是什么功能的尚不清楚,估计是本地会员的吧,runjin在关键时候又有天才的表现,两天之内发现并搞定,并率先发布beta1的主显IP的版本比珊瑚虫早一天吧。对这个主显IP的原理我并不是很清楚,估计runjin本身也不是很清楚,但是这些都不重要,关键是搞定了。不过这次的方法就没有那么幸运了,下个版本的时候TX就象吃生菜一样把这个功能喀嚓掉了。
飘云的主显IP就是用了上述两个主动显IP的方法。另外一个要说说发包的频率与时机。其实这个也没有什么太好说的,可以在某个动作下发一个包,也可以刚登陆的时候狂发。怎么着都行。不过我们在发包的频率上,尽量减低,最主要的原因是,狂发数据会使得TX的服务器需要响应的东西过于频繁,自身登陆可能会有部分问题。
目前要做好主显IP的方法,似乎还是有好几种,但是没有通过实验,不敢乱加定论。但是这里给后来者一个忠告,就是,主动显IP的问题是一个比较讨厌的问题,TX现在几乎是每个版本都会改变一点点东西,在05年与06年主显IP还是非常好办,到现在这种方式能否存在很长时间就要看运气还有TX的心情,TX的技术人员也不是盖的。