MSN Messenger 协议分析二

2007年11月22日 星期四 作者: 熊传波
<script type=text/javascript> </script>
第二部分 WIM MSN 登陆过程
通过 Ethereal 软件抓包获取 WIM 中 MSN 登陆所发送和接收的数据包,下面详细分析这些数据包。
约定:
客户端向服务器发送的数据包用蓝色标明,
服务器向客户端发送的数据包用红色标明。
MSN登陆模型为:
一.
客户端, DS 服务器通过 TCP 三次握手建立连接,服务器 IP : 65.54.239.210 ,端口: 1863 。然后客户端发送:
 
VER 1 MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 CVR0 /r/n
 
命令功能:
向服务器表明客户端支持哪些协议版本。
参数解释:
1 ) 1 是 TrID ( Transaction ID ) 号, 用于匹配客户端的命令与服务端的响应。这是一个介于 0 到 4294967295 之间的整数,跟在每个命令与消息后面,服务端收到并做出处理后,要回复客户端,并协带这个 ID ,这样客户端就可以识别出服务器是对哪条命令的响应了。每次客户端向服务器发送一次命令或消息后, TrID 自动加 1 。
2 ) MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 是客户端支持的协议版本。
3 ) CVR0 是必须带的。
4 ) /r/n 表示
 
服务器返回:
 
VER 1 MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 CVR0 /r/n
 
命令功能:
告诉客户端,对于客户端所提供的协议,服务器支持哪几个。
参数解释:
1 ) 1 是 TrID 号,因为是服务器端对上面命令的回复,值与上面的 TrID 相等。
2 ) MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 表明服务器完全支持客户端所提供的协议版本。
二.
客户端发送:
 
CVR 2 0×0804 win 5.1 x86 MSNMSGR 6.2.0205 MSMSGS xiongchuanbo1@hotmail.com
 
命令功能:
表明客户端的信息和操作系统类型。
参数解释:
1 ) 2 是 TrID 号。
2 ) 0×0804 表示客户端所使用的语言, 0×0804 表示简体中文, 0×0409 表示美国英语, 0×0404 表示台湾, 0×0411 表示日语, 0×0412 表示韩语。
3 ) win 5.1 表示操作系统类型, win 代表 win9x 系列, winnt 代表 NT 系列。 4.10 表 windows 98,5.0 表 windows 2000,5.1 表 windows xp 。
4 ) x86 表示计算机体系结构, x86 表示 Intel X86 机型。
5 ) MSNMSGR 表示 MSN Messenger 客户端。
6 ) 6.2.0205 表示客户端版本号。
7 ) MSMSGS 未知,但官方版本里总是有这个。
8 ) xiongchuanbo1@hotmail.com 是要登陆的用户名。
服务器返回:
 
CVR 2 7.0.0820 7.0.0820 7.0.0820
http://msgruser.dlservice.microsoft.com/download/B/3/1/B316A751-0B87-44F7-9EF7-4B22EBFAA1EE/Install_MSN_Messenger_DL.EXE http://messenger.msn.com/cn
 
命令功能:
推荐客户端使用的 MSN 版本。
参数解释:
1 ) 7.0.0820 7.0.0820 7.0.0820 这里有三个 7.0.0820 ,第一个是服务器推荐客户端使用的 MSN 版本号,第二个总是与第一个一样,第三个是最小安全版本号。
2 )
http://msgruser.dlservice.microsoft.com/download/B/3/1/B316A751-0B87-44F7-9EF7-4B22EBFAA1EE/Install_MSN_Messenger_DL.EXE 是最新的 MSN 下载地址。
3 ) http://messenger.msn.com/cn  是关于客户端信息的 URL 。
三.
客户端发送:
 
USR 3 TWN I xiongchuanbo1@hotmail.com
 
命令功能:
此命令被用来请求到 NS 服务器去验证客户端。
参数解释:
1 ) TWN 表示验证系统的名字,它总是为 TWN
2 ) I 表示初始化验证状态,身份验证开始。
3 ) xiongchuanbo1@hotmail.com 是要进行验证的帐号。
 
服务器端返回:
 
XFR 3 NS 207.46.109.60:1863 0 65.54.239.210:1863
 
命令功能:
NS 服务器重定向命令。
参数解释:
1 ) NS 表示将转向 NS 服务器。
2 ) 207.46.109.60:1863 为转向的 NS 服务器的 IP 和端口。
3 ) 65.54.239.210:1863 为当前连接的 DS 服务器的 IP 和端口。
四.
接下来,断开与 DS 服务器的连接,三次握手连接到 NS 服务器。
客户端和 NS 服务器之间重复发送如下数据包:
 
VER 1 MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 CVR0 /r/n
VER 1 MSNP12 MSNP11 MSNP10 MSNP9 MSNP8 CVR0 /r/n
CVR 2 0×0804 win 5.1 x86 MSNMSGR 6.2.0205 MSMSGS xiongchuanbo1@hotmail.com /r/n
CVR 2 7.0.0820 7.0.0820 7.0.0820
http://msgruser.dlservice.microsoft.com/download/B/3/1/B316A751-0B87-44F7-9EF7-4B22EBFAA1EE/Install_MSN_Messenger_DL.EXE http://messenger.msn.com/cn /r/n
USR 3 TWN I xiongchuanbo1@hotmail.com /r/n
 
接着,服务器端返回:
 
USR 3 TWN S
ct=1195633914,rver=4.5.2135.0,wp=FS_40SEC_0_COMPACT,lc=1033,id=507,ru=http:%2F%2Fmessenger.msn.com,tw=0,kpp=1,kv=4,ver=2.1.6000.1,rn=1lgjBfIL,tpf=b0735e3a873dfb5e75054465196398e0 /r/n
 
命令功能:
接 DS 服务器,继续进行验证过程。
参数解释:
1 ) S 表示继续进行验证的状态。
2 )
ct=1195633914,rver=4.5.2135.0,wp=FS_40SEC_0_COMPACT,lc=1033,id=507,ru=http:%2F%2Fmessenger.msn.com,tw=0,kpp=1,kv=4,ver=2.1.6000.1,rn=1lgjBfIL,tpf=b0735e3a873dfb5e75054465196398e0 是用于进行 TWN 验证的字符串。
 
TWN ( Tweener )验证的详细介绍见:
 
五.
客户端发送:
 
USR 4 TWN S
t=9V!5JYSVhA7qEDOAL!INM3mr*Gawoy8NNtu0uD6NXdHxzhFWuWc!49xprqWuQopD3CCxctLVJS6kuA9wnnRPyvHcxqGgVweZCCcC4Pey6YoiNDbYi3FaurhoeqAcDlSfMU&p=9VU**h7ZuBr18GUvVqTQwaUoyeQtO8ug4!DaHY3HoFDdSj7WiKZ!t5BQFHUwGcxvJfheMgSMP2i6GZm*v560qr1XUHPAZBs8*u96TJLBnMme0u8a7Sv3DpiRNK7ZrxJIDFe*qKLLru60vDYP*ND1QeYz3YO3wM*vxgT9AeR*OgcZmq6NZub0!yroNmfSBJVVPs /r/n
 
命令功能:
是客户端对上一个命令向服务器的回应,继续进行验证过程。
参数解释:
1 )
t=9V!5JYSVhA7qEDOAL!INM3mr*Gawoy8NNtu0uD6NXdHxzhFWuWc!49xprqWuQopD3CCxctLVJS6kuA9wnnRPyvHcxqGgVweZCCcC4Pey6YoiNDbYi3FaurhoeqAcDlSfMU&p=9VU**h7ZuBr18GUvVqTQwaUoyeQtO8ug4!DaHY3HoFDdSj7WiKZ!t5BQFHUwGcxvJfheMgSMP2i6GZm*v560qr1XUHPAZBs8*u96TJLBnMme0u8a7Sv3DpiRNK7ZrxJIDFe*qKLLru60vDYP*ND1QeYz3YO3wM*vxgT9AeR*OgcZmq6NZub0!yroNmfSBJVVPs 是 TWN 验证后的检索标签。
 
服务器返回:
 
USR 4 OK xiongchuanbo1@hotmail.com 1 0
SBS 0 null
MSG Hotmail Hotmail 535
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1195633920
EmailEnabled: 1
MemberIdHigh: 409600
MemberIdLow: -1726189009
lang_preference: 2052
preferredEmail:
country: CN
PostalCode:
Gender:
Kid: 0
Age:
BDayPre:
Birthday:
Wallet:
Flags: 1073742915
sid: 507
MSPAuth: 9V!5JYSVhA7qEDOAL!INM3mr*Gawoy8NNtu0uD6NXdHxzhFWuWc!49xprqWuQopD3CCxctLVJS6kuA9wnnRPyvHcxqGgVweZCCcC4Pey6YoiNDbYi3FaurhoeqAcDlSfMU
ClientIP: 221.215.124.142
ClientPort: 40127
ABCHMigrated: 1
MPOPEnabled: 0
/r/n
 
这部分包含了多个命令,这里分别解释。
1 . USR 4 OK xiongchuanbo1@hotmail.com 1 0
命令功能:
这是服务器对验证的最终回应。
参数解释:
1 ) OK 表示确认一个成功的登陆。
2 ) 1 表示此用户被证实。
2 . SBS 0 null
命令功能:
此命令的具体意思还不清楚,但它好像与 MSN Mobile 有关,如果没有 MSN Mobile ,服务器就会发送 SBS 0 null 命令,如果有就会发送下面这种格式的命令:
SBS 0 SC=Some-ID-here;SI=Another-ID;SS=2;PS=2/r/n
参数解释:
3 .
MSG Hotmail Hotmail 535
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1195633920   // 登陆时间, UNIX 时间戳
EmailEnabled: 1       // 当前帐号是否有新邮件通知
MemberIdHigh: 409600  // 联系人 ID 最大值
MemberIdLow: -1726189009  // 联系人 ID 最小值
lang_preference: 2052    // 首选语言代号
preferredEmail:        // 用户的主要邮件地址,一般为空
country: CN
PostalCode:
Gender:           // 用户性别
Kid: 0              // 用户的帐号是否是未成年人帐号
Age:
BDayPre:     // 距离用户生日的天数
Birthday:
Wallet:    // 是否有微软的 Wallet 服务
Flags: 1073742915
sid: 507  //Hotmail 登陆的一个数字。一般为 507 。
MSPAuth: 9V!5JYSVhA7qEDOAL!INM3mr*Gawoy8NNtu0uD6NXdHxzhFWuWc!49xprqWuQopD3CCxctLVJS6kuA9wnnRPyvHcxqGgVweZCCcC4Pey6YoiNDbYi3FaurhoeqAcDlSfMU
ClientIP: 221.215.124.142  // 告诉客户端实际连接到服务器的 IP
ClientPort: 40127
ABCHMigrated: 1
MPOPEnabled: 0
 
命令功能:
发送客户端的配置文件信息。
参数解释:
见注释。
六.
客户端发送:
 
SYN 5 0 0
命令功能:
同步联系人列表。
参数解释:
1 ) 5 是 Trid
2 ) 0 0 表示检索全部联系人。
服务器返回:
 
SYN 5 2007-11-16T03:25:18.063-08:00 2007-11-16T04:37:22.317-08:00 5 0
 
命令功能:
回应客户端发送的 SYN 命令,返回联系人个数,组个数。
参数解释:
1) 2007-11-16T03:25:18.063-08:00 2007-11-16T04:37:22.317-08:00 这两个参数值如果相同,即为相同的时间戳,组和联系人的个数就不发生变化。如果不等,就必须同步他们。
2 ) 5 0 为联系人和组的个数。我这里联系人个数为 5 ,还没有建组。
七.
服务器返回:
GTC A
BLP BL
PRP MFN cb // PRP 允许你编辑你自己的属性,如电话号码,昵称。
PRP MBE N
PRP WWE 0
LST N=liuchao0813@hotmail.com F=Charles C=ed96b5d2-36e1-4cc9-b0e4-16ce65177225 11 1
// 下载联系人
BPR HSB 1 // 同步联系人列表
LST N=wim.msn@hotmail.com F=wim.msn C=f5e797dc-6d19-40a0-9544-6a17e4b7de93 11 1
LST N=aarone@yahoo.cn F=aarone@yahoo.cn C=0b2e4f6b-d06a-4da7-a3e8-6a5a1c909afd 11 1
LST N=justin5_go@hotmail.com F=justin5_go@hotmail.com C=e989121e-deb9-4af0-bac7-d5dbe04e9f03 11 1
BPR HSB 1
LST N=ckf513728912@163.com F=ckf513728912@163.com C=a4bcbd8a-7c49-4347-873d-e9cafec04647 11 1
八.
客户端发送:
 
CHG 6 NLN 1342472236
 
命令功能:
请求请求取得再现人员名单 。
参数解释:
1)   NLN 表示取得再现人员名单,并通知他们客户上线了,状态码可以为: NLN, BSY, BRB, AWY, IDL, PHN,LUN, HDN 。
2)   1342472236 为对象描述符,必须为 URL 编码。
服务器返回:
 
CHG 6 NLN 1342472236
 
九.
客户端发送一个保持连接的命令:
 
PNG /r/n
 
命令功能:
客户端 ping, 确保仍然与服务器保持连接 。
服务器回应:
 
QNG 42 /r/n
 
命令功能:
回应客户端发送下一个 PNG 的相隔秒数为 42 。
十.
服务器接着 CHG 命令继续回应如下内容:
 
ILN 6 NLN justin5_go@hotmail.com justin5_go@hotmail.com 1985859644
%3Cmsnobj%20Creator%3D%22justin5_go%40hotmail.com%22%20Type%3D%223%22%20SHA1D%3D%22HJ91G1×9tb5bvC0z1Ow58Ho80nk%3D%22%20Size%3D%222669%22%20Location%3D%220%22%20Friendly%3D%22aAB0AHQAcABfAGkAbQBnAGwAbwBhAGQAQwBBAFAATQBSADAAMwBLAAAA%22%2F%3E /r/n
UBX justin5_go@hotmail.com 160
<Data>
       <PSM>http://mentor100.com</PSM>
       <CurrentMedia>Music0</CurrentMedia>
       <MachineGuid>{DC6D5E3B-7BAC-4978-9650-ED25130E940F}</MachineGuid>
</Data>
 
ILN 6 NLN liuchao0813@hotmail.com Charles 1985859644
%3Cmsnobj%20Creator%3D%22liuchao0813%40hotmail.com%22%20Type%3D%223%22%20SHA1D%3D%22eXGWmogZak9R61lyiAgAEW%2Fr2U4%3D%22%20Size%3D%2225072%22%20Location%3D%220%22%20Friendly%3D%22d225j7qOBWkAAA%3D%3D%22%2F%3E /r/n
UBX liuchao0813@hotmail.com 176
<Data>
       <PSM> 看四方 kan4fang.cn- 开通免费个人家庭监控服务 </PSM>
       <CurrentMedia></CurrentMedia>
       <MachineGuid>{48F8B0DB-0789-4542-9A44-DE67BC3A6D02}</MachineGuid>
</Data>
 
ILN 6 NLN ckf513728912@163.com
ckf513728912@163.com%20(E-mail%20Address%20Not%20Verified) 1985855532
%3Cmsnobj%20Creator%3D%22ckf513728912%40163.com%22%20Type%3D%223%22%20SHA1D%3D%22dW0VZfrFH4igpqB%2Baknu%2BYLVPQc%3D%22%20Size%3D%2225288%22%20Location%3D%220%22%20Friendly%3D%22%2FVZFlmGMy2gAAA%3D%3D%22%2F%3E /r/n
UBX ckf513728912@163.com 140
<Data>
       <PSM></PSM>
       <CurrentMedia>Music0</CurrentMedia>
       <MachineGuid>{0AD8D245-B872-4DBA-A9AC-57588CF578B9}</MachineGuid>
</Data>
 
命令功能:
上面三组相同格式的数据包是显示目前联系人列表中已在线的联系人的状态及信息。
下面以第二组命令数据包来详细说明:
1 . ILN 命令
1 ) NLN 是好友的初始状态码,为在线。这里状态码也可以为 BSY, BRB, AWY, IDL, PHN, LUN, HDN 。
2 ) liuchao0813@hotmail.com 好友登陆名称。
3 ) Charles 好友昵称
4 ) 1985855532 好友的客户端 ID 号,详细参考:
5 )
%3Cmsnobj%20Creator%3D%22liuchao0813%40hotmail.com%22%20Type%3D%223%22%20SHA1D%3D%22eXGWmogZak9R61lyiAgAEW%2Fr2U4%3D%22%20Size%3D%2225072%22%20Location%3D%220%22%20Friendly%3D%22d225j7qOBWkAAA%3D%3D%22%2F%3E
这是一个 MSNObject 对象。关于 MSNObject 详细参考:
这一段翻译过来为:
<msnobj Creator=”liuchao0813@hotmail.com”
Type=”3″
SHA1D=” eXGWmogZak9R61lyiAgAEW/U8=”
Size=”25072″
Location=”0″
Friendly=” d225j7qOBWkAAA==” />
2 . UBX 命令
UBX 命令由服务器发送给所有的好友通知所发生的改变。详细参考:
 
至此,完成登陆过程。
 
参考资料:
1 . MSNPiKi
2 .徐泳,《 MSN 登陆过程》(网上有下载)
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值