Fetion分析之二:服务器地址从何而来——变态的配置文件

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

 

Fetion分析之二:服务器地址从何而来——变态的配置文件
2007年03月08日 22:30
作者:nathan

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

作协议分析时,一抓包,就发现飞信工作时连的是221.130.45.203这个服务器。那这个IP地址从哪来的呢?会变吗?飞信的客户端程序中并没有配置服务器地址这一说。固定一个IP?不会吧,一面向全国的系统,不可能用一个IP地址。用一个固定域名解析出来的多IP地址中的一个吗?抓出它访问DNS的包一看,它就只在开始时解析过一次域名:nav.fetion.com.cn,这个域名的IP是221.130.45.201——听说开发飞信的人就是微软开发MSN的人,所以啥都跟MSN一样,你看那飞信的主界面元素,你能找一个位置和功能跟MSN不一样的吗?连解析域名这点都跟MSN一样,没意思啊,印象中MSN也是一开始就解析一个地址,好象是Messenger.msn.com?如果想在局域网内封锁MSN,就把这个域名给指向127.0.0.1,MSN就傻了。

既然只解析过nav.fetion.com.cn,那么221.130.45.203这个工作服务器(SIP的Proxy Server)地址,就应该是nav.fetion.com.cn返回来的了。确实是,但只是第一次登录时返回,并保存在了本地。后面再登录时,如果版本不更新,是不会再返回这些系统配置信息的。所以,除第一次外,再抓包是看不到这些配置信息的。


本地配置文件并没放在Fetion的程序目录中,而是放到了%USERPROFILE%/Application/Fetion目录下。这个目录下有configuration.dat和飞信的用户目录,每个飞信用户目录下还有configuration.dat、contacts.dat、userinfo.dat这三个配置文件,看名字就知道是与用户相关的系统配置文件、好友列表文件、用户的个人信息文件。

这些文件全是XML格式的,所以可以用Notepad打开,不过,你打开后就会发现,这些文件的内容全被加密了,变态啊,这些文件有什么好加密的呢。

我们如何获得这里头的信息呢?

方法有两个:

一、我们让Fetion不要加密这些文件的内容,方法是:修改FetionFx.EXE文件。用ildasm,将FeionFX.EXE反汇编出来,将其中的Imps.Client.Pc.PersistentManager.EncodeMode1和Imps.Client.Pc.PersistentManager.DecodeMode1这两个函数改掉,将这两个函数体改成以下内容:
.maxstack 1
IL_0000: ldarg.0
IL_0001: ret
即,立即将参数返回。然后再用ilasm工具重新汇编生成FetionFX.EXE文件,覆盖掉以前那个,然后,再运行飞信,所有配置文件就不会再加密了。

二、构造一个请求,给nav.fetion.com.cn,让它返回。请求的内容很简单,抓一下包就会知道,取系统配置的请求过程是:
xxx.xxx.xxx.xxx:xxxx >>>>>>>> 221.130.45.201:80
POST /nav/getsystemconfig.aspx HTTP/1.1
User-Agent: IIC2.0/PC 2.1.0.0
Host: nav.fetion.com.cn
Content-Length: 233
Connection: Keep-Alive


--------------------------------------
xxx.xxx.xxx.xxx:xxxx <<<<<<<< 221.130.45.201:80
HTTP/1.1 100 Continue


--------------------------------------
xxx.xxx.xxx.xxx:xxxx >>>>>>>> 221.130.45.201:80
<config><user mobile-no="139xxxxxxxx" /><client type="PC" version="2.1.0.0" platform="W5.1" /><servers version="12" /><service-no version="1" /><parameters version="4" /><hints version="4" /><http-applications version="5" /></config>

将以上内容中的从servers version开始的version全置为"0",服务器就会返回配置信息。注意,配置信息全是UTF-8编码的。用nc就可构造一个http请求发过去,服务器立马就返回了。


推荐用方法一,因为这样可以看和修改所有配置信息,而方法二仅有系统配置信息。


与我们关注的服务器地址相关的信息在飞信用户目录下的configuration.dat中,一看就明白是啥:
....
<sipc-proxy>221.130.45.203:8080</sipc-proxy> 这就是我们关心的TCP直接连接时的服务器地址
<http-tunnel>HTTP://221.130.45.203/ht/sd.aspx</http-tunnel> HTTP直接连接时的入口地址
<get-pic-code>HTTP://221.130.45.201/nav/GetPicCode.aspx</get-pic-code> 注册时,取验证代码图片的URL
<get-system-status>HTTP://221.130.45.201/nav/GetSystemStatus.aspx</get-system-status> 取系统状态啦
....


这个配置信息放到飞信用户目录下是有原因的,就象SIP协议支持的,登录的服务器是可以分用户群的,不同的用户可以登录不同的Proxy Server,每个飞信用户(手机)可以分别登录到本省的Proxy Server,就如同现在的手机和电话网络一样。


其实这些配置内容没什么啊,为什么要加密呢?而且随便构造一个http请求,就可以获得这些内容的。 最变态的是通过飞信的交谈内容不加密不变换,却把无关紧要配置文件加密了。

另外,用户的密码就保存在Application Data/Fetion目录下的Configuration.dat中,当然这个密码进行了变换,遗憾的是,在程序中是还原出了用户密码的,因此,用户密码别人是可以轻易获得的。幸好丢了可以手机找回。但这仍然是个非常不安全的因素。



类别:飞信协议分析 | | 添加到搜藏 | 分享到i贴吧 | 浏览(13620) | 评论 (12)

上一篇:伟大的winpcap 下一篇:飞信分析之三:断线的真相

已有2人分享了这篇文章:chyyonline
Ta的转贴 寒夜来
Ta的转贴


最近读者:
li_ying8108 icejoywoo gaofeizhou_vip williamaddnice solar2ain 周_华_磊 sxy8469 fbizeng


网友评论:
1 网友:xfsu2008 2007年03月19日 17:06 | 回复
高手


2
nathan2007 2007年03月19日 23:34 | 回复
欢迎 ;)


3 网友:fetion 2007年07月26日 22:06 | 回复
呵呵,里海


4
上学不带书 2007年10月11日 09:29 | 回复
请问我要是想要飞信的用户名和手机号的话是要在8080端口的包里查找么?包有什么特征呢?我想从以BN开头的包里抓,但是上线的包里偶尔没有以 BN开头的包,是我的抓包工具没抓到,还是确实没有呢?手机号我只能从发送包里抓么?头很大,请指点。


5
hgaixl 2007年11月16日 17:17 | 回复
你们都用什么捕捉数据包的工具啊?小弟只学了一些皮毛.以前用的捕捉工具是收费的,只能免费使用30分钟,我只能是用一次,还原一次,在虚拟机当中做.你们有什么好用的免费的数据捕捉工具吗?小弟也粘点儿光.哈哈^v^^v^..


6 网友:匿名网友 2008年10月07日 12:01 | 回复
远程服务器返回错误: (400) 已禁止。 HttpProc.WebClient wc = new HttpProc.WebClient(); wc.OpenReadWithHttps("http://nav.fetion.com.cn/nav/getsystemconfig.aspx", ""); 请问哪位大哥知道我这样调用有没有问题啊?


7 网友:匿名网友 2008年12月30日 02:58 | 回复
高手


8 网友:donegal 2009年02月10日 11:39 | 回复
一、我们让Fetion不要加密这些文件的内容,方法是:修改FetionFx.EXE文件。用ildasm,将FeionFX.EXE反汇编出来,将其中的Imps.Client.Pc.PersistentManager.EncodeMode1和Imps.Client.Pc.PersistentManager.DecodeMode1这两个函数改掉,将这两个函数体改成以下内容: .maxstack 1 IL_0000: ldarg.0 IL_0001: ret 即,立即将参数返回。然后再用ilasm工具重新汇编生成FetionFX.EXE文件,覆盖掉以前那个,然后,再运行飞信,所有配置文件就不会再加密了。 这个办法够淫荡,我喜欢。哈哈。改进版本里面估计会加壳。


9 网友:匿名网友 2009年04月02日 17:10 | 回复
高手,主导开发飞信的看了郁闷死


10 网友:匿名网友 2009年06月02日 21:41 | 回复
dat里面的数据好像是一个tar文件,用Base64解码后就是一个字节串,开头几个字节是0x1F 0x8B 0x08,保存为*.tar文件,用winrar能打开噢


11 网友:匿名网友 2010年04月04日 10:36 | 回复
太牛了,佩服,佩服!!


12
wsc188 2010年04月29日 08:23 | 回复
好..收藏下..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值