`

Fetion分析之一:飞信协议类型

阅读更多

系列文章:转载自:

http://hi.baidu.com/nathan2007/blog/item/2e288fec5b69a83d27979158.html

 

作者:nathan

以下分析均基于飞信的这一版本:Fetion 2006 beta 版本 2.1.0.0。

被迫开始用飞信(Fetion),痛苦啊,这玩意儿开发了几年(飞信博客上一家伙说参加飞信项目两年了),而且用的是.NET(工作量要比 C++小了去了),居然这么烂,也算是个奇迹了。。。。自己找点乐子,分析飞信的通信协议好了。。。这不是什么破解,俺也不是什么什么客,纯属无聊。
抓包看了一下,飞信是用了混合协议的:

1、基于HTTP(XML Web Services吧?)进行获取系统配置、更新程序、注册用户

2、基于HTTPS进行登录时密码验证

3、应用层协议是SIP协议,但不是标准的,估计是自创的?所有交互过程如发消息、短信通过SIP协议进行。


关于SIP,有巨多的RFC描述,飞信的SIP协议栈实现的是TCP、HTTP承载

1.TCP承载方式:连接服务器(目前是221.130.45.203)的8080端口,这时在客户端的“网络设置”中显示的是“TCP直接连接”,SIP信令直接就放在TCP的包中。
2.HTTP承载方式:连接服务器(目前是221.130.45.203)的80端口,采用POST方式,将信令包在POST请示中,这时在客户端的“网络设置”中显示的是“HTTP直接连接”

因为是TCP和HTTP承载,所以其包格式是非常清楚的,那么注意力就可以直接放到SIP协议或SIP信令上,详细的内容稍后再写。

总的来说,飞信协议是比较简单的,不对,准确地说法是比较规范和清晰,但协议本身是复杂的,另外:
1. 飞信的协议是明文,这一点如同其兄弟MSN,是不如QQ和RTX的,因此,通过飞信的交谈过程是可轻易截获的,通过很简单的工具,就可以截到同一网段上所 有人的交谈,估计会有人写Fetion Chat Sniffer的,就跟MSN一样,假如有一天Fetion有那么流行......要不我写一个?:)

2.协议效率比较低,我加了近200人,一次登录过程要传递的数据量居然超过了230K,我靠。

3.状态有问题,presence处理得不太好好象,我在线别人却看到我离线,真是奇怪,而且一会儿发一个presence一会儿发一个,讨厌啊。

BTW:

RFC在这里看:http://www.faqs.org/rfcs/,太方便了,就是关于SIP的多得看不过来。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics