我发送到服务器的命令格式为:
MSG 22 U 93 (我发送的控制命令)
MIME-Version: 1.0 (版本)
Content-Type: text/x-msmsgscontrol (连接的类型)
TypingUser: wsgtrsys@hotmail.com (我的地址)
我收到的数据包格式为:
MSG ldzhudandan@hotmail.com 书玉 96 (对方的地址)
MIME-Version: 1.0 (版本)
Content-Type: text/x-msmsgscontrol (连接的类型)
TypingUser: ldzhudandan@hotmail.com (对方的地址)
连接的类型主要有:
conten-type:text/x-msmsgscontrol 消息传送控制
conten-type:symmetric-nat 这个是用在视频连接
conent-type:text/x-msmsgsinvite 音频连接
conten-type:text/x-msnmsgrp2p 视频连接、游戏、及其它
Content-Type: text/plain 文本连接
视频连接使用udp传送数据。
先使用udp stun穿越协议请求:
c --> 0001 0008
s --> 0101 0024
以上协商成功后,再向对方发送一个tcp包,告诉要建立的连接:
4d53 4720 31 38 31 20 44 20 31 33 34 38 0d 0a (即:msg 181 d 1348)
udp:
我: 0660 ....... 3c 63 3a 70 3e.60 9a 12
对方:0660 ....... 3c 72 3a 70 3e
我反馈: 23 58 00 00 00 00 01 01 01 72 65 63 69 70 69 65 6e (.x.......recipientid=...&sessionid=...)
再经tcp协协商后,
对方udp:
0e 58 00 00 00 00 00 02 01 01 63 6f 6e 6e 65 63 74 65 64 0d 0a 0d 0a 00 (.x.......connected....)
08 50 00 00 00 00 00 01 01 01 01 32 32
我反馈:
08 50 00 00 00 00 00 01 01 02 01
80 50 00 00 00 00 00 00 00 0a 00
现已经建立连接:
udp包好象有一个特征:
对方:f3 49 ... 04 d3 04 06 aa 95 9a 6a 7a
我 08 50 00 00 00 00 00 00 00 0a 01 00 00 36 c2 fd 04
msn game:
my-->server :4d 53 47 20 31 30 37 20 44 20 36 35 37 0d 0a (msg 107 d 657)
server-->my :4d 53 47 20 6a 61 63 6b 6c 79 32 30 30 38 40 68 6f 74 6d 61 69 (msg 对方的地址响应)
连接成功后,会在以下地址下载游戏程序:
get http://messenger.zone.msn.com/en-us/
综合以上。msn的特征在于:
MSG 22 U 93 msg是固定不变的
MIME-Version: 1.0 版本不变。暂时
Content-Type: text/x-msmsgscontrol 连接的类型只有以上五种类型
TypingUser: wsgtrsys@hotmail.com 地址可变
所以表达式为:
^msg.+/x0d/x0amime-version:1.0/x0d/x0acontent-type:(application/x-msnmsgrp2p|symmetric-nat|text/x-msmsgsinvite|text/x-msmsgscontrol)/x0d/x0a
udp video的表达式为:
^/x01?/x01[/x24/x08]