先给出一个成功登陆的案例
<connect> messenger.hotmail.com, port 1863 (连接分配服务器DS)
>>> VER 1 MSNP10 MSNP9 CVR0/r/n
<<< VER 1 MSNP10 MSNP9 CVR0/r/n
>>> CVR 2 0x0804 winnt 5.0 i386 MSNMSGR 6.2.0133 MSMSGS example@hotmail.com/r/n
<<< CVR 2 6.2.0137 6.2.0137 6.2.0133 http://download.microsoft.com/download/7/3/6/736d4a94-0c9e-4fde-b2f7-d27c9585344d/SetupDL.EXE http://messenger.msn.com/cn/r/n
>>> USR 3 TWN I example@hotmail.com/r/n
<<< XFR 3 NS 207.46.106.111:1863 0 207.46.104.20:1863/r/n
<close> messenger.hotmail.com (关闭分配服务器DS)
<connect> 207.46.106.111:1863 (连接通知服务器NS)
>>> VER 4 MSNP10 MSNP9 CVR0/r/n
<<< VER 4 MSNP10 MSNP9 CVR0/r/n
>>> CVR 5 0x0804 winnt 5.0 i386 MSNMSGR 6.2.0133 MSMSGS example@hotmail.com/r/n
<<< CVR 5 6.2.0137 6.2.0137 6.2.0133 http://download.microsoft.com/download/7/3/6/736d4a94-0c9e-4fde-b2f7-d27c9585344d/SetupDL.EXE http://messenger.msn.com/cn/r/n
>>> USR 6 TWN I example@hotmail.com/r/n
<<< USR 6 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1092884412,kpp=1,kv=5,ver=2.1.6000.1,tpf=016b4e2dc54f9fe757a1bb89a193b20f/r/n
>>> USR 7 TWN S t=5Uplhbz0rDRDEXxbWaUHTLMQGtdtS0higP2gWaLyYVlQk3Dqoie4dk8BlqYQ58iWQnn9NWXv6!5exSgeCmZebYKw$$&p=5UGdAYlQ9GnaN2T1DZsnwfxNALqNWxRvNQ8QKd6hTxNK11w1Y9FavahVnFgppUDeNPSRaPsUsr94lSnlZ*NncRzrGjmZnm5sf6ijY7AL1RosK9U6JtktRTS2VD83XTK4Mj!Z1bpN9a1ekVhJxNAc*R72iuRkpCMBZ3S!kSs9d!InA*b4coYoBy*Q$$/r/n
<<< USR 7 OK example@hotmail.com 1 0/r/n
<<< MSG Hotmail Hotmail 478/r/n
<<< MIME-Version: 1.0/r/n
<<< Content-Type: text/x-msmsgsprofile; charset=UTF-8/r/n
<<< LoginTime: 1092900336/r/n
<<< EmailEnabled: 1/r/n
<<< MemberIdHigh: 393216/r/n
<<< MemberIdLow: -1973826610/r/n
<<< lang_preference: 2052/r/n
<<< preferredEmail: /r/n
<<< country: CN/r/n
<<< PostalCode: /r/n
<<< Gender: /r/n
<<< Kid: 0/r/n
<<< Age: /r/n
<<< BDayPre: /r/n
<<< Birthday: /r/n
<<< Wallet: /r/n
<<< Flags: 1027/r/n
<<< sid: 507/r/n
<<< kv: 5/r/n
<<< MSPAuth: 5vtXPhjpbDgMo38!5RINb67*QA0apj9arggB6TY2QQB13mV6m9ZbL01rK3rN3cK2!zFjHCiEThvcL!Z6C5NFtdkg$$/r/n
<<< ClientIP: 218.75.208.52/r/n
<<< ClientPort: 54976/r/n
<<< ABCHMigrated: 1/r/n/r/n
歇口气,登陆成功~!
下面我们给出一个说明。
第一个阶段:连接MSN分配服务器DS,即连接到服务器"messenger.hotmail.com:1863"
连接后,我们就可以开始登陆过程了。
第一步是交换MSN客户端与服务器协议的版本。
客户端发送>>> VER 1 MSNP10 MSNP9 CVR0/r/n
表示告诉服务器我(即你的客户端)支持MSNP10与MSNP9协议工作。
服务器回应<<< VER 1 MSNP10 MSNP9 CVR0/r/n
表示同意你使用MSNP10或MSNP9协议工作。
现在客户端和服务器之间就已经确定它们之间将要进行通讯的版本。
第二步是与服务器交流系统环境
客户端发送>>> CVR 2 0x0804 winnt 5.0 i386 MSNMSGR 6.2.0133 MSMSGS example@hotmail.com/r/n
0x0804 winnt 5.0 i386 指出客户端当前的运行环境是win2000,使用的是Intel的微处理器.
MSNMSGR 6.2.0133 MSMSGS 指出msmsgs.exe的版本号
服务器回应<<< CVR 2 6.2.0137 6.2.0137 6.2.0133 http://download.microsoft.com/download/7/3/6/736d4a94-0c9e-4fde-b2f7-d27c9585344d/SetupDL.EXE http://messenger.msn.com/cn/r/n
服务器回应参数包括最高版本号,可支持版本范围,及提供下载最新版本和其它信息地址
注:CVR命令发送并不是必须,无论此命令是否发送,MSN协议都可以正确工作。
第三步是请求登陆服务器
客户端发送>>> USR 3 TWN I example@hotmail.com/r/n
TWN I 指出向服务器发送PassPort
服务器回应<<< XFR 3 NS 207.46.106.111:1863 0 207.46.104.20:1863/r/n
NS 指出要求客户端换地址重新连接
207.46.106.111 要求重新连接地址,即NS服务器地址
207.46.104.20 即messenger.hotmail.com地址
取得重新登陆的指示之后,关闭此连接。进入第二个阶段。
第二个阶段:连接MSN通知服务器NS,即连接上述207.46.106.111:1863
取得连接后,第一、二步同第一阶段第一、二步操作。
第三步是请求登陆服务器
客户端发送>>> USR 6 TWN I example@hotmail.com/r/n,同上。
服务器回应<<< USR 6 TWN S lc=1033,id=...,tpf=.../r/n
TWN S 指出要求用户进行SSL,身份认证
lc=1033,id=...,tpf=... 指出SSL身份认证的重要信息。
SSL身份认证此处略,后继详细叙述。SSL身份认证后,可获得客户端“入场圈”,如t=5Up...$$&p=5UG...$$
第四步是请求认证身份登陆
客户端发送>>> USR 7 TWN S t=5Up...$$&p=5UG...$$/r/n
服务器回应<<< USR 7 OK example@hotmail.com 1 0/r/n
OK example@hotmail.com指示登陆成功的Passport为example@hotmail.com
服务器回应<<< MSG Hotmail Hotmail 478/r/n
返回信息为一些用户基本参数,登陆客户端地址及IP等