隨筆-22  評論-6  文章-17  trackbacks-0
          ?

          1.2? MSN Messenger協議開發:認證階段

          ?

          作者:汪俊杰

          電子郵件:unicentre(at)gmail.com

          QQ:10402488

          ?

          MSN的認證階段包括登錄到MSN即時通訊服務器并且取得好友列表。

          ?

          MSN即時通訊軟件的協議是基于ASCII碼的協議。第一個階段包括連接到MSN即時通軟件的服務器。在這個階段我們應該連接到服務器“messenger.hotmail.com”的1863端口(MSN即時通訊軟件通過1863端口進行工作)。一旦連接上以后,我們就可以一步步開始登錄過程了。

          ?

          步驟1: 驗證MSN的版本。客戶端(即我們的MSN軟件)列出及向服務器發送它可以支持的版本,然后等待服務器的回應。

          >>> VER 0 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

          MSN協議中,伴隨著每個命令都有一個 試驗ID 被發送。此實驗ID從0開始,并且當每次服務器成功的對客戶端的命令做回應時,都會增加。

          服務器的回應如下

          <<< VER 0 MSNP7 MSNP6 MSNP5 MSNP4

          現在客戶端(MSN)和服務器之間確定了它們之間將要進行通訊的版本。

          步驟2: 客戶端(MSN)向服務器發送一個請求,要求服務器提供它所支持的

          認證時需要的安全包的名字。

          >>> INF 1

          MSN在發送密碼時會將密碼加密,保證如有人監控你的端口時,密碼不會輕易的泄露。

          服務器的回應如下

          <<< INF 1 MD5

          MD5在這里是服務器當前支持的安全包的名字。

          步驟3: 客戶端(MSN)將向服務器發送用戶ID

          >>> USR 2 MD5 I ideal_wang@hotmail.com

          然后服務器將檢驗它是否包含有驗證所需的此用戶的所有相關信息。如沒有的話,服務器將會發送如下回應:

          <<< XFR 2 NS 64.4.13.55:1863 0

          意思為客戶端(MSN)應該連接到NOTIFICATION服務器,地址和端口分別為64.4.13.55:1863。

          我們關閉當前的連接并且在連接到新的服務器64.4.13.55時重復以下步驟

          >>> VER 3 MSNP7 MSNP6 MSNP5 MSNP4 CVRO

          <<< VER 3 MSNP7 MSNP6 MSNP5 MSNP4

          >>> INF 4

          <<< INF 4 MD5

          >>> USR 5 MD5 I ideal_wang@hotmail.com

          步驟4: 如果現在我們連接上的服務器有了此登錄的用戶的信息,服務器回應如下:

          <<< USR 5 MD5 S 989048851.185113730

          服務器發送的此字符串是“MD5 雜亂信息 。此雜亂信息由服務器創建并且在認證過程中使用。客戶端然后向服務器發送使用MD5運算法加密后的密碼。實際上客戶端向服務器發送的是一個獨一無二的MD5字符串,此字符串等價于此 MD5雜亂信息 (即989048851.185113730)+密碼,本例中MD5字符串是3b7926d277068ec49576a0c40598ff21。

          >>> USR 6 MD5 S 3b7926d277068ec49576a0c40598ff21

          如果密碼正確,服務器將做如下回應:

          <<< USR 6 OK ideal_wang@hotmail.com Jun Jie

          此處“Jun Jie 是用戶的呢稱.

          MSN協議的最新版本中,服務器將發送一些附加的數據,像用戶的信息和一個認證碼(類似于一個cookie,可以用到許多其它的功能中):

          <<< MSG Hotmail Hotmail 362

          <<< MIME-Version:1.0

          <<< Content-Type:text/x-msmsgspro file;charset=UT

          <<< Login Time:1011252477

          <<< EmailEnabled:1

          <<< MemberIDHigh:84736

          <<< MemberIDLow:-143472939

          <<< Lang_preference:103

          <<< PreferredEmail:ideal_wang@hotmail.com

          <<< Country:IN

          <<< PostalCode:

          <<< Gender:M

          <<< Kid

          <<< Age:22

          <<< Sid:517

          <<< Kv:2

          <<< MSPAuth:2AAAAAAAADU0p4uxxxJtDJozJS1UTS0i7YpwnCoPUHRv56YKxxxCTWmg$$

          步驟5: 經過上述步驟我們登錄上了服務器,但是我們的狀態仍然是離線。為了能夠發送和接受信息,我們需要把我們的狀態改成在線。客戶端通過如下命令完成這步:

          >>> CHG 7 NLN

          服務器則向客戶端發送回在線的好友及其相應的狀態:

          <<< ILN 7 NLN btxxxe@hotmail.com nick

          <<< ILN 7 AWY wmxxe@hotmail.com mike

          <<< ILN 7 BSY tehpxxp@hotmail.com jerry

          <<< MSG Hotmail Hotmail 223

          <<< MIME-Version:1.0

          <<< Content-Type:text/x-msmsgsinitialemailnotification;charset=UTF-8

          <<< Inbox-Unread:293

          <<< Folders-Unread

          <<< Inbox-URL:/cgi-bin/HoTMaiL

          <<< Folders-URL:/cgi-bin/folders

          <<< Post-URL:http://www.hotmail.com

          步驟6: 向服務器發送的下一個命令是和當前使用的客戶端的版本相關的,客戶端向服務器發送它的版本號和所在機器的信息像操作系統和其配置等:

          >>> CVR 8 0x0409 win 4.10 i386 MSMSGS 4.5.0127 MSMSGS

          0x0409 win4.10 i386 指出客戶端當前的運行環境是win98,使用的是Intel的微處理器;MSMSGS 4.5.0127 MSMSGS 指出msmsgs.exe的版本號。

          服務器回應提供下載最新版本及一些其它的信息的地址:

          <<< CVR 8 4.5.0127 4.5.0127 1.0.0863

          <<< http://download.microsoft.com/do ... /en-us/mmssetup.exe

          <<< http://messenger.microsoft.com

          這個CVR命令的發送并不是必須的,無論此命令是否發送,MSN協議都可以正確的工作.

          ?

          為了獲得我們的好友列表,我們可以發送如下命令

          >>> LST 9 RL

          服務器將相應發送回“反向列表”,此反向列表為當你在線時,可以看到你并能向你發送即時消息的用戶列表。你也可以使用LST 9 FL命令向服務器請求 正向列表 ,此正向列表包括你加入到好友列表中的所有好友。服務器所做的回應如下

          <<< LST 9 RL 69 1 19 ideal_wang@hotmail.com venkat

          <<< LST 9 RL 69 2 19 puxxxxx@hotmail.com puja

          <<< LST 9 RL 69 3 19 vancxxxx@hotmail.com ramachandran

          <<< LST 9 RL 69 4 19 moxxxxx@hotmail.com chandramouli

          <<< LST 9 RL 69 6 19 v_n_xxxx@hotmail.com Narakatesh

          <<< ........

          <<< LST 9 RL 69 19 19 puneetagarxxx@hotmail.com puneet

          ?

          posted on 2006-05-25 14:59 surffish 閱讀(871) 評論(1)  編輯  收藏

          評論:
          # re: MSN Messenger協議開發:認證階段 2006-12-19 15:06 | liaoqs
          好東西,收下了。  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 房产| 共和县| 武城县| 休宁县| 西乡县| 奉贤区| 昆山市| 宜宾县| 青神县| 庆安县| 克山县| 佛冈县| 夏邑县| 宿松县| 克什克腾旗| 闻喜县| 乐亭县| 乐昌市| 枣阳市| 客服| 丹棱县| 虹口区| 香格里拉县| 惠水县| 镇平县| 文安县| 通山县| 苍溪县| 江城| 巢湖市| 陆河县| 淳化县| 紫阳县| 晋城| 鸡泽县| 成安县| 宜兰市| 贡山| 西畴县| 九寨沟县| 高唐县|