我不是QQ的积极使用者,开发兰飞QQiPPro纯属偶然。在2006元旦以前我一直使用QQ2004甚至QQ2003,使用QQ2005不到30天。我一直以为真正好友之间该用MSN联络交流的,使用QQ聊天大致出于娱乐,因此从来没在QQ聊天时思索过对方可能在说假话,也从来没想过查看对方的地理位置(纯属个人愚见,大家不必赞同)。因此虽然久闻珊瑚虫的大名,但是却总无缘"相识"。正是由于用的少,所以平时并不在意是否暴露了IP。今年元旦,我在使用QQ时,偶然发现有人在不断试探我的电脑,好奇之余,便顺藤摸瓜找到对方,从端口扫描情况看,对方好像使用了QQ而且和我的QQ存在某种联系,这让我很不自在。于是我希望在网上搜索到一款QQ的IP保护的工具,可惜却搜到一大堆显示IP工具和几篇介绍据说可以保护IP的文章,这让第一次意识到显示IP的工具现在差不多和超女一般流行。出于好奇我动了开发一款QQ的IP保护工具的念头,并把这个项目定义为QQiPPro。
;;;;按照我对QQ通讯协议的理解,我分别把在不暴露IP的情况下纯文字交流和在不暴露IP的情况下可以自由传递图片定为QQiPPro的最低和最高目标,QQiPPro1.0和QQiPPro2.0分别实践了这些目标。不过这个项目进行的很不顺利,期间进行了多次调整,最大的调整就是通讯协议。出于直觉,我在SOCKETS5代理协议和HTTP代理协议之中优先选择了SOCKETS5代理协议,可惜在推出了QQiPPro1.0后就发现了两个问题:1.QQ2005在使用SOCKETS5代理的时候一传送图片就内存溢出,这是致命的问题;2.使用UDP的通讯方式可能导致收发数据包错乱,这也是一些朋友反映的在使用1.23以前版本一段时间后会出现IP暴露的最终原因。因此,使用QQiPPro的用户可能注意到QQiPPro从1.0到2.0 经历了从只支持SOCKETS5到不推荐使用SOCKETS5以至全面禁止SOCKETS改用HTTP的发展过程。不过我要承认,QQiPPro最终能够在隐藏IP的情况下,进行音频甚至视频聊天也大大超出我的设想。
;;;;最初我只想把QQiPPro设计成保护IP的强大盾牌,而不是富有攻击的工具。可惜人本身就是“矛盾”的,在大家的要求下,我在QQiPPro加入了显示好友IP的功能,后来为了显示使用代理上线的好友的真实IP,又引入IP虚拟技术;至于显示好友是否在线的功能,纯粹是偶然在开发中发现QQ通讯协议的结构缺陷后,才加入的——--QQiPPro探测好友是否在线的原理和其他工具是完全不同的。尽管QQiPPro的某些功能超出我的预想,但是还是希望大家只把QQiPPro当作“盾”来使用,而不要拿起“矛”。这也是QQiPPr把一些功能设置为默认情况下不启用的真正原因,希望大家能够理解。
;;;;在开发QQiPPro过程中,我也纠正了一些以前使用QQ中的错误认识:
- 误区1.只要隐身上线,对方好友就无法知道你是否在线的。不幸的是由于QQ协议结构性的缺陷,QQ并没有提供真正意义上的“隐身”,利用QQiPPro有60—80%可以知道你的好友是否正在隐身,假如对方使用了珊瑚虫等显示IP的外挂,那么可以100%获知对方是否隐身。我之所以强调结构性缺陷,是因为目前没有任何办法可以保证你的好友不能获知你当前隐身在线。因此以后大家使用隐身时,态度要端正,不要自欺欺人,“掩耳盗铃”。
- 误区2.只要把QQ设置通过服务器转发,并且使用TCP通讯方式就可以隐藏IP了,这是一些介绍隐藏IP的文章的介绍的方法。不用我说,大家现在都知道这种方法没有一点效果。这或许也是QQ2005再也没有出现"服务器转发"的选项的原因吧。
- 误区3.使用代理服务器就可以隐藏IP,这是现在大多数人使用隐藏IP的方法,可惜我不得不遗憾的宣布,这种方法不起作用,哪怕使用的是高度匿名的代理服务器。使用QQiPPro就可以取到代理后的真实IP(我相信还有很多工具可以做到),而且方法简单,不必借用任何黑客技术,因此大家要小心了。
- 误区4.使用内网就是绝对安全的。的确使用内网是比较安全的方式,QQiPPro之所以能保护IP就是采用内网虚拟技术。也正是这种考虑QQiPPro不提供穿透防火墙能力,因为我也找不出在内网里使用QQiPPro的理由。不过单纯从QQ的通讯协议本身来看(不论一些黑客技术),还是有可能取到网关IP的,而且方法不难,只是我目前好像没发现这类工具。尽管如此QQiPPro也作了一些防备,因此使用QQiPPro还是比内网安全的多。