`

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

阅读更多

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

 

作者: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中,当然这个密码进行了变换,遗憾的是,在程序中是还原出了用户密码的,因此,用户密码别人是可以轻易获得的。幸好丢了可以手机找回。但这仍然是个非常不安全的因素。

分享到:
评论

相关推荐

    开源 Fetion api java

    标题“开源 Fetion api java”指的是一个开源的Java API,用于与Fetion(飞信)服务进行交互。Fetion是一种由中国移动推出的即时通讯软件,允许用户通过互联网或手机发送短信、语音消息以及进行语音通话。这个API...

    Fetion.rar_fetion_fetion 3_fetion java_fetion3

    在这个压缩包文件中,我们看到的是一个针对飞信3.0版本的修改版,名为"Fetion 3_fetion java_fetion3",特别强调了"HighlinZhu"的修改,以及加入了“震动”功能和进行了“窗口优化”。 1. **飞信3.0基础功能**: -...

    fetion服务端(windows\linux)、PHP短信发送模块

    总的来说,这个项目涵盖了从服务器端开发到客户端交互的多个层面,涉及到跨平台服务、PHP编程、数据管理和网络通信等多个IT领域的知识。理解和掌握这些知识点,对于开发和维护类似的通信服务系统具有重要的指导意义...

    fetion.rar_fetion_visual c

    【标题】"fetion.rar_fetion_visual c" 涉及的IT知识点主要集中在飞信(Fetion)的客户端开发以及使用Visual C#编程语言实现通过Web URL发送短信的功能。 飞信是中国移动推出的一款即时通讯软件,允许用户通过网络...

    fetion_win32:命令行下使用的飞信

    命令行下使用的飞信. 可嵌入在程序中自动发送飞信短信. 使用方法: 1)进入Dos命令行 2)输入如下命令 sms -f ’您的手机号‘ -p ‘您的飞信密码’ -t ’目标手机号‘ -m ’你需要发送的消息‘ 其中您的手机号需要...

    PHP飞信(PHPFetion)发送类v1.2

    5月31日更新概况: 使用Socket请求来取代curl、不再使用Cookie文件; 4月7日更新概况:退出飞信、删除Cookie文件; (一)使用说明 1. 需要包含进你的程序的文件只有一个:PHPFetion.php。如: require '...

    PHP Fetion 类 可以用

    1. `.htlist`:通常这是一个Apache服务器的配置文件,用于限制对特定目录的访问,可能包含了哪些文件可以被HTTP请求访问,哪些被阻止。在这个上下文中,它可能是为了保护PHP类库的源代码不被直接访问。 2. `index....

    fetion.zip_fetion php

    在这个场景中,"fetion.php"可能是一个独立的PHP文件,用于实现通过Web接口与飞信服务器进行交互的功能,比如发送短信、接收消息或者进行账户管理等操作。 PHP飞信客户端通常会包含以下几个关键功能模块: 1. **...

    手机客户端主流即时通讯软件——竞品分析报告.pdf

    本报告针对2010年手机终端主流的即时通讯软件——QQ、MSN和Fetion进行了深入的竞品分析,重点在于它们的战略定位、用户群体、特色功能以及盈利模式。 1. **腾讯QQ**: - **战略定位**:腾讯QQ利用其在互联网领域的...

    nagios安装文件以及linux下的fetion安装包和安装过程文档

    【标题】中的“nagios安装文件”涉及的是Nagios,一个开源的企业级系统、网络和服务监控工具。Nagios允许用户监控网络上的服务状态、服务器资源(如CPU负载、磁盘空间、内存使用)以及各种设备,如路由器、交换机等...

    java飞信接口,FetionApi(无license限制,附可运行代码例子)

    import java.io.IOException; import cn.edu.ctgu.ghl.fetion.Contact; import cn.edu.ctgu.ghl.fetion.Fetion; import cn.edu.ctgu.ghl.fetion.FetionEvent; import ...没分了,来借点分.....

    linux版fetion_for x64

    Linux版的"Fetion_for_x64"是一款专为64位Linux操作系统设计的飞信客户端,它允许用户在Linux环境下发送短信至手机。飞信,全称中国移动飞信,是中国移动推出的一种融合语音(IVR)、短信、GPRS等多种通信方式的即时...

    zabbix使用fetion短信告警.docx

    总结来说,实现Zabbix使用Fetion短信告警涉及的主要步骤包括环境配置、脚本编写、Zabbix配置文件修改、媒体类型和动作的设置。通过以上步骤,我们可以确保在系统出现问题时,运维人员能够及时接收到短信告警,从而...

    FETION.rar_Java fetion_download free fetion_fetion j_fetion jar_

    在提供的"FETION.rar"压缩包中,包含了实现这一功能的核心文件"Fetion.jar"以及辅助的"使用说明.txt"。 "Fetion.jar"是一个基于Java平台的应用程序,它利用Java的可移植性,使得该飞信客户端可以在多种操作系统上...

    fetion(飞信) for linux

    总之,`fetion(飞信) for Linux`是为中国移动用户量身打造的跨平台通讯工具,而`libfetion.so`作为其核心组件,承载了飞信的主要功能实现。尽管Linux用户基数相对较小,但飞信的Linux版本填补了这一市场的空白,为...

    Fetion API UTF-8 发布包

    3. **Fetion API**:这可能是一个包含所有必要的类库和函数的文件,使得开发者能够通过编程方式与飞信服务器通信。这些函数可能包括登录验证、发送消息、接收消息、添加好友等功能。开发者需要按照使用说明中的指导...

    Fetion.zip_fetion CSharp

    标题"Fetion.zip_fetion CSharp"指出这是一个与飞信相关的C#编程项目,而“飞信”是中国电信推出的一款即时通讯软件,允许用户通过网络免费向中国移动、联通、电信的手机用户发送短信。"CSharp"表示这里的实现是使用...

    fetion.classes.20080731.rar_PHP 接口_PHPQQClient.rar_fetion php cl

    根据压缩包内的文件名称,我们可以分析如下: 1. **class.fetion.php**:这是飞信PHP接口的核心类文件,很可能包含了与飞信服务器通信的所有方法,如登录、发送消息、接收消息等。开发者可以通过实例化这个类并调用...

    占用内存小的简约版Fetion-可以网上给移动用户免费发短信

    综上所述,这个“占用内存小的简约版Fetion”是一个专注于核心功能——免费发送短信的轻型飞信客户端。它以其小巧的体积、低内存占用和便携性为亮点,满足了那些希望快速、简单进行移动通信而对额外功能需求不大的...

Global site tag (gtag.js) - Google Analytics