公司要禁止QQ?【我们从协议开始分析】
生活随笔
收集整理的這篇文章主要介紹了
公司要禁止QQ?【我们从协议开始分析】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?自從騰訊公司1999模仿ICQ,推出OICQ后,一時間QQ的小企鵝占領(lǐng)了幾乎所有中國所有電腦的桌面,因此QQ通訊的協(xié)議也引起了網(wǎng)絡(luò)監(jiān)控界的關(guān)心,因為要禁止或者阻止QQ,必須需要分析QQ的協(xié)議,僅僅通過添加QQ的服務(wù)器是行不通的,因為QQ的服務(wù)器可以無限制的增加,一般人不可以隨時跟蹤到QQ服務(wù)器的變化,而禁止QQ。
1、 QQ登陸? 要禁止QQ必須知道QQ連接服務(wù)器的方式,它主要有3種方式:1.通過本機UDP:4001開始的端口連接服務(wù)器UDP 8000端口;2.通過本機任意端口連接服務(wù)器80端口;3.通過通過本機任意端口連接服務(wù)器443端口。? 2、QQ定時器:? QQ大約每相隔20秒左右回向服務(wù)器發(fā)送一個心跳信息。? 包頭(QQ通過UDP傳輸時,包頭具有以下格式):? 前7個字節(jié)是包頭,包頭可以識別包的內(nèi)容。包頭的格式為: 第0字節(jié):包標識:0x02。 第1-2字節(jié):發(fā)送者標識。如果是0x01 0x00,表明是由服務(wù)器發(fā)送。 客戶端的標識與所使用的使用的QQ版本有關(guān),目前最新版本QQ2005(0x0c57)的標識為0x0c 0x57。 具體的協(xié)議的格式與這個字段所標識的客戶端版本有關(guān)。目前我們以這個最新的0A1D版本來討論。 第3-4字節(jié):命令編號。具體的命令編號含義在下面有描述。 如果這個字段是0x00 0x01,那么這是一個注銷請求包。如果這個字段是0x00 0x22, 而發(fā)送者標識是0x01 0x00,那么這是一個登錄應(yīng)答包。如果這個字段是0x00 0x22,而發(fā)送者標識是其它(例如0x0A 0x1D), 那么這是一個登錄請求包。其它的命令代碼表明是其它包,我們通過發(fā)送者標識來區(qū)分它是CSP還是SSP。 第5-6字節(jié):命令序列號??蛻舳撕头?wù)器都有各自的當前發(fā)送序列號。每初始發(fā)出一個指令的時候, 使用當前的序列號,然后把當前序列號加一,如果超過0xFFFF,就繞回。如果是響應(yīng)對方發(fā)出的命令,則使用這個命令的序列號。 例如,客戶端當前的序列號為0x1110,它向服務(wù)發(fā)送一個0x0016命令, 它使用0x1110這個序列號,服務(wù)器收到以后,返回一個序列號為0x1110的0x0016命令響應(yīng)。 下一次,客戶端又發(fā)送一個0x0026命令,這一次它使用加一了的序列號0x1111,服務(wù)器也響應(yīng)0x1111序列號的一個0x0026命令響應(yīng)。 如果這是服務(wù)器要向客戶端發(fā)送0x0017命令,它使用它自己的當前序列號,比如說0x2220,客戶端收到以后, 也響應(yīng)一個序列號為0x2220的0x0017命令應(yīng)答。 我們可以通過序列號來判斷發(fā)出的指令是否已經(jīng)得到了應(yīng)答,如果沒有,可以重發(fā)。服務(wù)器對收到的命令的序列號 順序沒有要求。服務(wù)器也不會一定按照發(fā)出的順序給予應(yīng)答。 QQ命令定義: 0x0001 注銷登錄 0x0002 心跳信息(禁止QQ,這個命令相當重要) 0x0004 更改用戶信息(包括密碼等) 0x0005 搜索用戶 0x0006 獲取用戶信息 0x0009 添加好友--不需認證 0x000a 刪除好友 0x000b 添加好友--需要認證 0x000d 改變狀態(tài) 0x0012 確認收到系統(tǒng)消息 0x0016 發(fā)送消息(禁止QQ,這個命令相當重要) 0x0017 收到消息(禁止QQ,這個命令相當重要) 0x001a 未知 0x001c 在對方好友列表上刪除自己 0x001d 未知 0x0022 登錄 0x0026 獲取好友清單 0x0027 獲取在線好友 0x0030 群操作指令 0x0080 收到系統(tǒng)消息 0x0081 收到好友狀態(tài)改變消息轉(zhuǎn)載于:https://blog.51cto.com/zener/401436
總結(jié)
以上是生活随笔為你收集整理的公司要禁止QQ?【我们从协议开始分析】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快节奏生活的利弊
- 下一篇: 描写开心的心情的句子228个