• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • QQ協議分析之TCPF包數據分析

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    說明: 本文檔說明的是解密以后的TCPF數據包的字段內容。有關如何解密,請參閱有關的其它文檔。分析的結果,是基于QQ 2003 (0808) 內部代碼 0A 1D的版本。 0x0022,登錄命令 發送方:客戶端 樣本: 000: 4A 35 5D 6E AE DB FA 9C 008: 96 BE 19 7E A3 E2 B2

    說明:

    本文檔說明的是解密以后的TCPF數據包的字段內容。有關如何解密,請參閱有關的其它文檔。分析的結果,是基于QQ 2003 (0808) 內部代碼 0A 1D的版本。

    0x0022,登錄命令

    發送方:客戶端

    樣本:

    000: 4A 35 5D 6E AE DB FA 9C
    008: 96 BE 19 7E A3 E2 B2 48
    016: 00 00 00 00 00 00 00 00
    024: 00 00 00 00 00 00 00 00
    032: 00 00 00 3A 30 9B 69 60
    040: A8 32 73 B2 22 1F AA 65
    048: 6C 09 F8 01 0A 3A 0D 30
    056: 92 CD 77 AB 42 B9 BC 64
    064: 9F 17 57 D4 C3

    000 - 015: 用戶QQ密碼的 MD5 的 MD5 作為密鑰,對空字串進行加密的結果。0A 1D版的TEA算法采取了隨機PADDING的方式,所以這個數字每次看起來都不同。但是解密以后總是空字符串。

    016 - 016: 總是 0x00。

    017 - 020: 以前為IP地址,現在為全零。不知道具有互聯網IP的機器是否有真正的地址。

    021 - 022: 以前為端口號,現在為全零。

    023 - 051: 不明含義,總是相同。

    052 - 052: 登錄模式。0A為正常方式,28為隱身。

    053 - 068: 應該是和機器相關的識別號,在相同的機器上總是相同。

    響應方:服務器

    成功登錄的樣本:

    000: 00 61 42 58 45 55 6B 58
    008: 7A 42 57 36 78 6E 49 41
    016: 59 01 82 5D 90 40 E7 A7
    024: E3 0F A0 7F 00 00 01 1F
    032: 40 3F 51 22 DA 03 0A 5B
    040: 83 50 D2 91 55 AE FC 3A
    048: 5B D4 E9 31 97 C5 85 13
    056: 64 6B 30 0A CE F1 33 3D
    064: 8D C2 CF 1F 40 3D AC F9
    072: 8E 1F 40 00 00 1C BB 67
    080: 00 CB 49 E6 FF B6 FB 01
    088: 97 41 6E 96 30 48 76 48
    096: EF B8 1D 1E 5A EA EB E9
    104: AB 00 4A 23 D2 00 00 00
    112: 00 00 00 00 00 00 00 00
    120: 00 40 E7 A7 E3 3F 51 22
    128: 91 00 00 00 00 00 00 00
    136: 00

    000 - 000: 成功登錄應該為0。

    001 - 016: 以后通信的密鑰。

    017 - 020: 登錄的QQ號碼。

    021 - 026: 服務器檢測到的客戶端的IP地址和端口號。

    027 - 032: 127.0.0.1:8000,應該是服務器檢測到自己的IP和端口號?作用不明。

    033 - 036: 本次登錄時間?

    ......

    063 - 068: 一個端口為8000的IP地址,作用不明。

    069 - 074: 一個端口為8000的IP地址,這個地址就是DTPF協議組通訊的服務器。

    075 - 076: 總是0,應該為分隔。

    ......

    109 - 120: 總是0。

    121 - 124: 客戶端的IP。(上次登錄的IP?)

    125 - 128: 上次登錄退出時間?

    ...

    129 - 136: 總是0。

    其它:未知。


    密碼錯誤的樣本(用Random Key解密):

    000: 02 C3 DC C2 EB B4 ED CE
    008: F3 A3 A1

    000 - 000: 密碼錯誤: 02。
    001 - 010: 字符串“密碼錯誤!”,GB18030 編碼


    要求轉到其它服務器登錄(未觀察到,根據perl-OICQ的資料):

    000 - 000: 轉到新服務器:01。

    001 - 004: 請求的QQ號。

    005 - 008: 新的服務器IP。

    009 - 010: 新的服務器端口號。


    0x0001,注銷命令:

    發送方:客戶端(連續發送4次)

    樣本:

    000: 42 80 D8 9A 5A 03 F8 12
    008: 75 1F 50 4C C1 0E E8 A5

    000 - 015: QQ密碼的 MD5 的 MD5。


    0x001D,未知命令:

    發送方:客戶端,在登錄成功后發送。而且總是連發兩個。

    第一個樣本:

    000: 03

    000 - 000 :總是03,應該是子命令。

    第二個樣本:

    000: 04

    000 - 000 :總是04,應該是子命令。

    響應方:服務器(定長的響應)

    第一個響應樣本:

    000: 03 00 52 65 76 65 6D 6D
    008: 41 35 65 52 54 64 4E 36
    016: 64 4B 00 00 00 00 00 00
    024: 00 00 00 00 00 00 38 3D
    032: 1E 4A 4E 36 53 87 8E B5
    040: E0 24 5C 97 80 8C 64 23
    048: F4 FF BC 42 69 72 39 1D
    056: F6 31 22 65 37 BE 00 D1
    064: 8E A6 F8 4C 75 82 F7 B4
    072: 49 1F FF 72 3E 26 01 13
    080: 1B 18 F6 5A BD 8E 58 00
    088: 01 00 00

    000 - 000: 03,應該表明是對03號子命令的響應。

    001 - 001: 00,應該是分隔。

    002 - 017: 16個字符,全由字母和數字組成。

    018 - 029: 全0。

    030 - 030: 總是38,應該是后面數據的長度。

    ...

    087 - 090: 總是 00 01 00 00。

    第二個響應樣本:

    000: 04 00 43 44 7A 7A 38 63
    008: 74 6A 52 55 4B 55 35 43
    016: 52 6B 00 00 00 00 00 00
    024: 00 00 00 00 00 00 38 A2
    032: 5B B9 D3 0E 67 E8 93 BD
    040: 0E B4 F6 AE BF 54 47 D7
    048: 0F 69 84 5D F2 81 5D D8
    056: 12 BF EC 1E 1A 83 D2 58
    064: 1D 94 D4 03 EB 91 3B 13
    072: A6 B4 66 37 5C A1 96 48
    080: 15 8F BD E0 A8 6C 5F 00
    088: 01 00 00

    000 - 000: 04,應該表明是對04號子命令的響應。


    0x0006,獲取用戶信息:

    發送方:客戶端

    樣本:

    000: 32 35 33 32 30 38 34 38

    需要獲取信息的用戶QQ號碼。ascii字符串形式。

    應答方:服務器

    樣本:

    000: 32 35 33 32 30 38 34 38
    008: 1E 6A 65 66 66 5F 79 65
    016: 63 6E 1E D6 D0 BB AA C8
    024: CB C3 F1 B9 B2 BA CD B9
    032: FA 1E B9 E3 B6 AB CA A1
    040: 1E 35 31 30 30 30 30 1E
    048: 64 6F 6E 67 20 66 65 6E
    056: 67 20 72 64 2E 20 31 34
    064: 35 1E 2D 1E 33 31 1E C4
    072: D0 1E 2D 1E 6A 65 66 66
    080: 5F 79 65 63 6E 40 73 69
    088: 6E 6F 6D 61 63 2E 63 6F
    096: 6D 1E 1E 1E 1E 30 1E 1E
    104: CD A8 D0 C5 1E 2D 1E 30
    112: 1E 1E 1E 32 30 34 1E 31
    120: 33 30 30 35 31 36 31 32
    128: 34 34 1E 30 1E CF B2 BB
    136: B6 BA CD C8 CE BA CE C8
    144: CB C1 C4 CC EC A1 A3 1E
    152: B9 E3 D6 DD 1E 2D 1E 2D
    160: 1E 30 1E 32 1E 30 1E 55
    168: 53 54 43 1E 31 32 1E 31
    176: 32 1E 32 1E 30 1E 2D

    返回的數值由一個個字段組成,數字也是以字符串表示,沒有填寫的很多為-。每個字段用1E分隔。分別的含義為:

    QQ號碼,昵稱,國家,省,郵政編碼,街道地址,電話,年紀,
    性別:男女的GB編碼。
    真實姓名,電子郵件,尋呼編號,尋呼號,尋呼機供應商,尋呼臺號,尋呼機類型,
    職業,主頁,
    添加好友認證方式:'0' 不認證,'1' 需認證,'2' 不許添加
    未知20,未知21,
    頭像:0-255的字符串表示,每三個代表一組正常,離開,忙的頭像
    手機號碼,
    手機類型:'0' 為無移動QQ,'1'為開通移動QQ。
    自我描述:
    城市,
    未知27,未知28,未知29,
    是否公開手機:'0' 公開 '1' 好友 '2' 不公開
    是否公開聯系方式:'0' 公開 '1' 好友 '2' 不公開
    學校,
    星座:以下的對應關系,見pagers.plist
    生肖,
    血型,
    QQShow,
    未知37。


    0x000D,設置狀態:

    發送者:客戶端

    樣本:

    000: 0A 00 00 00 00

    000 - 000: 狀態:0A 正常,1E 離開,40 隱身

    001 - 004: 總是0。


    應答者:服務器

    樣本:

    000: 30

    成功返回 30 ('0')。


    0x0026,獲取好友列表:

    發送者:客戶端

    樣本:

    000: 00 00 00

    000 - 001: 獲取的好友列表的位置標志(第一個從 00 00 開始,以后的根據上一次響應包的標志值)。

    002 - 002: 總是 0。(QQ 2000 無此數據)

    應答者:服務器

    樣本:

    000: 00 32 01 72 D1 90 00 ED
    008: 11 00 04 B0 A2 BB A2 00
    016: 00 01 74 55 CD 00 D8 15
    024: 01 06 BB A8 D4 F3 C0 E0
    032: 02 40 01 7C 13 30 00 DE
    040: 18 01 08 CF EB B7 C9 B5
    048: C4 D0 C4 00 00 01 7C 50
    056: 8A 00 99 1D 00 03 47 59
    064: 48 00 02 01 7D 1A 2A 00
    072: B7 00 01 04 D4 B6 BA BD
    080: 00 00 01 7E 79 A5 00 A2
    088: 13 01 04 D1 A9 C2 D8 00
    096: 00 01 81 E1 25 00 21 17
    104: 01 07 B2 BB D2 AA BF DE
    112: 20 00 00 00 01 82 90 00
    120: 60 1F 00 04 6A 65 66 66
    128: 00 00 00 13 3E DF 00 60
    136: 17 01 09 20 20 73 61 62
    144: 72 69 6E 61 00 40 00 32
    152: F5 5E 00 39 19 01 06 79
    160: 76 6F 6E 6E 65 00 00 00
    168: 38 F3 B9 00 C3 00 00 08
    176: CA B1 B4 FA C0 CF C8 CB
    184: 00 00 00 41 98 95 00 90
    192: 15 01 04 44 65 65 72 00
    200: 00 00 44 B7 10 00 90 14
    208: 01 08 D4 C2 B9 E2 C5 AE
    216: BA A2 02 00 00 55 04 61
    224: 00 90 11 01 08 C6 AF C1
    232: C1 B1 A6 B1 B4 02 00 00
    240: 59 AF 21 00 60 1A 01 07
    248: CF B8 CE C3 D7 D0 7E 02
    256: 66 00 5A 86 9B 00 21 00
    264: 01 04 C0 B6 D6 BD 00 00
    272: 00 5C 03 6E 00 A5 20 00
    280: 06 B3 CC BA A3 C2 D7 00
    288: 00 00 67 7C EC 00 72 1C
    296: 00 06 6A 61 63 33 33 33
    304: 00 00 00 70 7F C8 00 78
    312: 00 01 04 C3 A8 C1 E1 00
    320: 00 00 82 00 BF 00 51 00
    328: 00 09 20 20 20 B7 BD BE
    336: F5 CF FE 00 00 00 A0 C0
    344: 6A 00 63 12 01 04 C3 CE
    352: BE B2 00 00 00 D1 06 59
    360: 00 60 00 00 08 D2 BB BD
    368: A3 C6 AE CF E3 00 40 00
    376: F0 BA 07 00 8A 00 01 04
    384: C7 E0 C7 E0 00 00 00 F2
    392: 69 9F 00 AB 16 01 0A 5E
    400: 5F 5E C7 EF C7 EF 5E 5F
    408: 5E 00 00 01 03 1B 44 00
    416: D5 13 00 08 B0 AE C4 E3
    424: B5 C4 C8 CB 00 00 01 0F
    432: A2 D5 00 78 02 01 05 57
    440: F2 AB C4 DE 02 40 01 17
    448: 48 76 00 51 00 00 06 BA
    456: DC B0 B2 C8 AB 00 00 01
    464: 3B AD D7 00 F0 18 01 0A
    472: B9 C6 BB F3 A1 CA CC EC
    480: CA B9 00 00 01 44 AE 12
    488: 00 87 20 00 0A 20 20 20
    496: 20 51 51 D6 AE B8 B8 00
    504: 00 01 B3 8C 71 00 99 1A
    512: 00 08 C3 E6 B4 F8 CE A2
    520: D0 A6 00 00 01 C0 29 68
    528: 00 F9 12 01 06 D0 A1 C0
    536: B1 BD B7 00 00 01 CA 96
    544: 03 00 F9 00 01 04 D0 A1
    552: BB A2 02 40 01 CB 81 C2
    560: 00 90 12 01 0B 4C A1 EE
    568: 76 65 CF E3 C4 CE B6 F9
    576: 00 00 01 E9 1B 7F 00 0C
    584: 18 00 08 B6 FE C2 BF B1
    592: E4 C1 CB 00 00 02 20 F1
    600: D4 00 A8 13 01 04 CE A8
    608: D2 BB 00 00 02 36 B5 07
    616: 00 A8 1A 01 04 BF C9 DD
    624: E6 02 00 02 4C 03 88 00
    632: A8 0F 01 0C A6 C4 A6 D3
    640: A7 F1 A7 D1 C6 A1 C0 E6
    648: 02 00 02 4D 98 8B 00 B4
    656: 16 00 06 BB B5 C6 A2 C6
    664: F8 00 00 02 65 0A 51 00
    672: A8 00 01 04 C7 A7 CA BD
    680: 00 00 02 7A DB D0 00 90
    688: 00 01 02 58 32 00 00 02
    696: 7C 37 4E 00 7B 15 01 04
    704: 63 6F 63 6F 00 00 02 88
    712: D5 EA 00 42 00 00 04 D1
    720: C5 B7 E7 00 00 02 93 67
    728: 5A 00 90 12 01 0C C4 C7
    736: C3 B4 B0 AE CB FB CE AA
    744: CA B2 00 00

    000 - 001: 下一次發送0x0026命令的數據起始位置。如果為FF FF,則沒有后續數據需要繼續接收。

    以后為一組組的數據,每組數據的定義為(按偏移位置描述):

    000 - 003: QQ號碼

    004 - 004: 總是0,分隔

    005 - 005: 頭像編號

    006 - 006: 年紀

    007 - 007: 性別。00 男;01 女。

    008 - 008: 昵稱長度。

    009 - 009 + 昵稱長度 - 1: 昵稱。

    009 + 昵稱長度: QQ Show 標志。
    bit 1: 是否有QQ Show。

    010 + 昵稱長度:用戶屬性標志。
    bit 1: 是否QQ會員。
    bit 5: 是否開通移動QQ。
    bit 6: 是否綁定手機。


    0x0027,獲取在線好友

    發送者:客戶端

    樣本:

    000: 02 00 00 00 00

    000 - 000: 0x02,獲取在線好友清單。0x03,作用不明。

    001 - 004: 總是 0x00。

    應答者:服務器

    0x02 的應答樣本:

    000: FF 01 0F A2 D5 01 00 00
    008: 00 00 00 00 00 0A 04 05
    016: 44 F2 A5 BB 57 3B 85 4B
    024: CF D0 F0 72 5F EE A4 31
    032: 02 40

    000 - 000: 標志。FF 應該表示沒有后續數據。但如果在一個包內無法傳送全部好友(大約最多20個好友左右)時的標志是什么,暫時未知。

    001 - 為33字節一組的在線好友數據。每組數據的描述(按偏移位置計算):

    000 - 003: QQ號。

    004 - 004: 未知作用。目前發現總是0x01。

    005 - 008: IP 地址。目前全零。

    009 - 010: 端口號。目前全零。

    011 - 011: 總是00,應為地址后的分隔。

    012 - 012: 狀態。0A 正常,1E 離開。

    013 - 014: 懷疑代表所使用客戶軟件所具有的功能。QQ 2003為04 05。

    015 - 030: 該QQ號碼加上其Session Key后的MD5Digest。是否兩程序直接通訊時候的密鑰?

    031 - 032: 用戶的屬性。同0x0026指令用戶數據的最后兩字節定義。


    0x03 的應答樣本:

    000: FF 04 4A A2 01 02 00 00
    008: 00 00 00 00 00 0A 00 00
    016: 00 00 00 00 00 00 00 00
    024: 00 00 00 00 00 00 00 00
    032: 00 00 04 4A A2 02 02 00
    040: 00 00 00 00 00 00 0A 00
    048: 00 00 00 00 00 00 00 00
    056: 00 00 00 00 00 00 00 00
    064: 00 00 00 04 4A A2 03 02
    072: 00 00 00 00 00 00 00 0A
    080: 00 00 00 00 00 00 00 00
    088: 00 00 00 00 00 00 00 00
    096: 00 00 00 00 04 4A A2 04
    104: 02 00 00 00 00 00 00 00
    112: 0A 00 00 00 00 00 00 00
    120: 00 00 00 00 00 00 00 00
    128: 00 00 00 00 00 04 4A A2
    136: 05 02 00 00 00 00 00 00
    144: 00 0A 00 00 00 00 00 00
    152: 00 00 00 00 00 00 00 00
    160: 00 00 00 00 00 00 04 4A
    168: A2 06 02 00 00 00 00 00
    176: 00 00 0A 00 00 00 00 00
    184: 00 00 00 00 00 00 00 00
    192: 00 00 00 00 00 00 00 04
    200: 4A A2 07 02 00 00 00 00
    208: 00 00 00 0A 00 00 00 00
    216: 00 00 00 00 00 00 00 00
    224: 00 00 00 00 00 00 00 00
    232: 04 4A A2 08 02 00 00 00
    240: 00 00 00 00 0A 00 00 00
    248: 00 00 00 00 00 00 00 00
    256: 00 00 00 00 00 00 00 00
    264: 00 04 4A A2 09 02 00 00
    272: 00 00 00 00 00 0A 00 00
    280: 00 00 00 00 00 00 00 00
    288: 00 00 00 00 00 00 00 00
    296: 00 00 04 4A A2 0B 02 00
    304: 00 00 00 00 00 00 0A 00
    312: 00 00 00 00 00 00 00 00
    320: 00 00 00 00 00 00 00 00
    328: 00 00 00 04 4A A2 0C 02
    336: 00 00 00 00 00 00 00 0A
    344: 00 00 00 00 00 00 00 00
    352: 00 00 00 00 00 00 00 00
    360: 00 00 00 00 04 4A A2 0D
    368: 02 00 00 00 00 00 00 00
    376: 0A 00 00 00 00 00 00 00
    384: 00 00 00 00 00 00 00 00
    392: 00 00 00 00 00

    000 - 000: 標志。FF 應該表示沒有后續數據。

    其他:未知。


    0x0016 發送消息

    發送者:客戶端

    樣本:

    000: 00 01 82 90 01 82 5D 90
    008: 0A 1D 00 01 82 90 01 82
    016: 5D 90 9F 22 9C 77 9E B5
    024: 0C 68 60 0F 13 37 06 F4
    032: EA 2C 00 0B 4D B5 3F 65
    040: 38 44 00 60 00 00 00 01
    048: 00 00 00 00 01 61 61 61
    056: 20 00 0A 00 00 00 00 86
    064: 02 CB CE CC E5 0D

    000 - 003: 發送方QQ號。
    004 - 007: 接收方QQ號。
    008 - 009: 發送方客戶端版本號。
    010 - 013: 發送方QQ號。
    014 - 017: 接收方QQ號。
    018 - 033: 發送方QQ號+session Key的MD5 Digest。
    034 - 035: 總是00 0b。懷疑表明到消息特性前的長度。
    036 - 037: 消息的序列號。
    038 - 041: 發送時間。為自1970年1月1日起經過的秒數。
    042 - 042: 總是00
    043 - 043: 頭像。
    044 - 046: 總是0x00。
    047 - 047: 消息特性標識。舊版0x00,新版0x01。是否表明存在字體屬性字段。
    048 - 051: 總是0x00。
    052 - 052: 消息類型。0x01,普通消息。0x02,自動回復消息。
    053 - 不定長: 消息內容。C字符串形式,以0x00結尾。好象每個消息結尾前都有一個空格字符。
    消息結尾+000 - 000: 字號。
    +001 - 003: 顏色的RGB值。
    +004 - 004: 未知??偸?x00。
    +005 - 005: 字符編碼類別。0x86,GB2312。0x00,英文字符。
    +006 - 006: 與選用的字體相關的屬性,具體含義未知。
    +007 - 不定長。字體名。
    最后:與選定字體相關的屬性,具體含義未知。

    應答者:服務器

    樣本:

    000: 00

    000 - 000: 0x00,成功。
      

    0x0017,接收消息

    發送者:服務器

    其中 018-019為消息類型標識,目前已觀察到的消息類型有:

    00 09 普通消息
    00 20 群消息
    00 21 加入群通知
    00 22 被從群刪除通知
    00 23 請求批準加入群通知
    00 24 加入群請求批準通知
    00 25 加入群請求拒絕通知
    00 26 創建群通知
    00 30 系統通知消息
            文件傳送通知

    普通消息(00 09)樣本:

    000: 01 82 5D 90 00 01 82 90
    008: 00 09 49 BB 3D 8D C2 EB
    016: 1F 40 00 09 0A 1D 01 82
    024: 5D 90 00 01 82 90 AA D6
    032: 54 47 90 04 6D 76 8D D0
    040: 4D CB 64 B8 87 7A 00 0B
    048: 00 6B 3F 65 39 32 00 60
    056: 00 00 00 01 00 00 00 00
    064: 01 62 62 62 20 00 0A 00
    072: 00 00 00 86 02 CB CE CC
    080: E5 0D

    000 - 003: 發送者的QQ號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 發送者的IP地址。(轉發的消息是服務器的地址)
    016 - 017: 發送者的端口號。
    018 - 019: 消息類型標識。(00 09)
    020 - 021: 發送者QQ版本號。
    022 - 025: 發送者QQ號。
    026 - 029: 接收者QQ號。
    030 - 045: 發送方QQ號+session Key的MD5 Digest。
    046 - 047: 總是00 0b。懷疑表明到消息特性前的長度。
    048 - 049: 消息的序列號。
    050 - 053: 發送時間。為自1970年1月1日起經過的秒數。
    054 - 054: 總是00。
    055 - 055: 頭像。
    056 - 058: 總是0x00。
    059 - 059: 消息特性標識。舊版0x00,新版0x01。是否表明存在字體屬性字段。
    060 - 063: 總是0x00。
    064 - 064: 消息類型。0x01,普通消息。0x02,自動回復消息。
    065 - 不定長: 消息內容。C字符串形式,以0x00結尾。好象每個消息結尾前都有一個空格字符。
    消息結尾+000 - 000: 字號。
    +001 - 003: 顏色的RGB值。
    +004 - 004: 未知??偸?x00。
    +005 - 005: 字符編碼類別。0x86,GB2312。0x00,英文字符。
    +006 - 006: 與選用的字體相關的屬性,具體含義未知。
    +007 - 不定長。字體名。
    最后:與選定字體相關的屬性,具體含義未知。

    群消息(00 20)樣本:

    000: 0C 04 A9 F4 01 82 5D 90
    008: 00 0D 1A 8C DA 12 5F C6
    016: 1F 40 00 20 0C 04 A9 F4
    024: 02 01 39 A4 76 00 00 00
    032: 01 3F 7C EF 88 00 00 00
    040: 00 00 12 68 69 0D 0A 20
    048: 00 09 00 00 00 00 86 02
    056: CB CE CC E5 0D

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 20)
    020 - 023: 外部群號。
    024 - 024: 02,可能表示臨時群。
    025 - 028: 群消息發送者QQ號。
    029 - 030: 總是0x00。
    031 - 032: 消息的序列號。
    033 - 036: 發送時間。
    037 - 040: 總是0x00。
    041 - 042: 后面消息數據的長度。
    065 - 不定長: 消息內容。C字符串形式,以0x00結尾。好象每個消息結尾前都有一個空格字符。
    消息結尾+000 - 000: 字號。
    +001 - 003: 顏色的RGB值。
    +004 - 004: 未知??偸?x00。
    +005 - 005: 字符編碼類別。0x86,GB2312。0x00,英文字符。
    +006 - 006: 與選用的字體相關的屬性,具體含義未知。
    +007 - 不定長。字體名。
    最后:與選定字體相關的屬性,具體含義未知。

    加入群通知(00 21)樣本

    000: 0C 21 53 A4 01 82 5D 90
    008: 00 04 5F 77 DA 12 5F C6
    016: 1F 40 00 21 00 17 0D 24
    024: 01 01 82 5D 90

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 21)
    020 - 023: 外部群號。
    024 - 024: 群類型:0x01,固定群;0x02,臨時群。
    025 - 028: 新添加的成員。(自己的QQ)。

    被從群刪除通知(00 22)樣本

    000: 0C 21 53 A4 01 82 5D 90
    008: 00 02 A6 55 DA 12 5F C6
    016: 1F 40 00 22 00 17 0D 24
    024: 01 01 82 5D 90

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 22)
    020 - 023: 外部群號。
    024 - 024: 群類型:0x01,固定群;0x02,臨時群。
    025 - 028: 被刪除的成員的QQ號。

    請求批準加入群通知(00 23)樣本

    000: 0C 21 53 A4 0E C9 37 04
    008: 00 09 2E 9F DA 12 5F 8B
    016: 1F 40 00 23 00 17 0D 24
    024: 01 01 82 5D 90 04 74 65
    032: 73 74

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 23)
    020 - 023: 外部群號。
    024 - 024: 群類型:0x01,固定群;0x02,臨時群。
    025 - 028: 申請加入者QQ號。
    029 - 不定長: Pascal 字符串的附言。

    加入群請求批準通知(00 24)樣本

    000: 0C 21 53 A4 01 82 5D 90
    008: 00 0B B2 6B DA 12 5F C6
    016: 1F 40 00 24 00 17 0D 24
    024: 01 0E C9 37 04 02 CE DE

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 24)
    020 - 023: 外部群號。
    024 - 024: 群類型:0x01,固定群;0x02,臨時群。
    025 - 028: 批準者(群管理員)QQ號。
    029 - 不定長: Pascal 字符串的原因。(這里總是 02 CE DE,就是“無”)

    加入群請求拒絕通知(00 25)樣本

    000: 0C 21 53 A4 01 82 5D 90
    008: 00 04 72 6D DA 12 5F C6
    016: 1F 40 00 25 00 17 0D 24
    024: 01 0E C9 37 04 04 68 68
    032: 68 68

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 25)
    020 - 023: 外部群號。
    024 - 024: 群類型:0x01,固定群;0x02,臨時群。
    025 - 028: 拒絕者(群管理員)QQ號。
    029 - 不定長: Pascal 字符串的拒絕原因。

    新創建群通知(00 26)樣本

    000: 0C 04 A9 F4 01 82 5D 90
    008: 00 0C B8 79 DA 12 5F C6
    016: 1F 40 00 26 0C 04 A9 F4
    024: 02 00 01 82 90

    000 - 003: 內部群號。
    004 - 007: 接收者的QQ號。
    008 - 011: 應為服務器轉發消息的流水號。
    012 - 015: 服務器IP地址。
    016 - 017: 服務器的端口號。
    018 - 019: 消息類型標識。(00 26)
    020 - 023: 外部群號。
    024 - 024: 0x02,可能表示臨時群。
    025 - 028: 管理員QQ號。

    系統通知消息(00 30)樣本(可能只用于通知多處登錄的情況)

    000: 00 00 27 10 01 82 5D 90
    008: 00 00 B3 A3 00 00 00 00
    016: 00 00 00 30 01 2F B1 A7
    024: C7 B8 CD A8 D6 AA C4 FA
    032: A3 AC 51 51 2D 32 35 33
    040: 32 30 38 34 38 D4 DA B1
    048: F0 B4 A6 B5 C7 C2 BC A3
    056: AC C4 FA B1 BB C6 C8 CF
    064: C2 CF DF A1 A3

    000 - 003: 發送者,10000。
    004 - 007: 接收者QQ號。
    008 - 011: 流水號。
    012 - 017: 發送者IP和端口號。這里全零。
    018 - 019: 消息類型標識。(00 30)
    020 - 020: 未知
    021 - 021: 消息長度
    022 - 不定長: 消息內容。

    應答者:客戶端

    樣本:

    000: 01 82 5D 90 00 01 82 90
    008: 00 09 49 BB 3D 8D C2 EB

    為接收到的消息的前16個字符。


    0x0030,群操作命令

    第一個字節為子命令,目前了解的子命令包括:

    0x01: 創建新群

    0x02: 添加/刪除群成員

    0x03: 更改群信息

    0x04: 獲取群的有關信息

    0x05: 激活群

    0x06: 查找群

    0x07: 加入群

    0x08 加入群驗證信息

    0x09: 退出群

    0x0A: 向群發送消息

    0x0B: 獲取在線群成員

    0x0C: 獲取群成員信息

    0x01 創建新群

    發送者:客戶端

    樣本:

    000: 01 02 02 00 00 00 00 04
    008: 6E 61 6D 65 00 00 0B 61
    016: 6E 6F 75 6E 63 65 6D 65
    024: 6E 74 0B 64 65 73 63 72
    032: 69 70 74 69 6F 6E 01 39
    040: A4 76 03 50 1B 3F 04 17
    048: AF 5C 00 05 A6 C3 00 06
    056: 5D 10 02 90 21 67 01 82
    064: 5D 90

    000 - 000: 0x01,創建新群子命令。
    001 - 001: 0x02,代表創建的是臨時群。0x01為固定群
    002 - 002: 身份認證模式。0x01,不需要認證;0x02,需認證;0x03,不允許添加。創建多人通話時為0x00。
    003 - 005: 總是 0x00。
    006 - 006: 分類。0x00,同學;0x01,朋友;0x02,同事;0x03,其它。
    007 - 不定長: Pascal字符串形式的群名。
    + 000 - 001: 總是0x00。應為分隔。
    + 002 - 不定長:Pascal字符串形式的群內通知。
    + 000 - 不定長:Pascal字符串形式的群描述。
    + 000 - 最后: 四個字節一組的群成員QQ號碼。(不包括群創建者(管理員))

    應答者:服務器

    樣本:

    000: 01 00 0C 04 A9 F4 0C 04
    008: A9 F4

    000 - 000: 0x01,創建新群子命令標識。
    001 - 001: 0x00,應該代表成功。
    002 - 005: 內部群號。
    006 - 009: 外部群號。

    0x02: 添加/刪除群成員

    發送者:客戶端

    樣本:

    000: 02 0C 08 9C 10 01 00 01
    008: 82 90 00 32 F5 5E 00 38
    016: F3 B9 00 41 98 95

    000 - 000: 0x02,添加刪除群成員子命令標識
    001 - 004: 內部群號。
    005 - 005: 操作。0x01,添加;0x02,刪除。
    006 - 不定長:四個一組的涉及的QQ號碼。

    應答者:服務器

    樣本:

    000: 02 00 0C 08 7E 3C

    000 - 000: 0x02,添加刪除群成員子命令標識。
    001 - 001: 0x00,應該代表成功。
    002 - 005: 內部群號。

    0x03: 更改群信息

    發送者:客戶端

    樣本:

    000: 03 0C 08 7E 3C 01 02 00
    008: 00 00 00 03 61 61 61 00
    016: 00 03 61 61 61 03 61 61
    024: 61

    000 - 000: 0x03,更改群信息子命令。
    001 - 004: 內部群號
    005 - 005: 總是 0x01。應該表明操作類別是修改。
    006 - 006: 身份認證模式。0x01,不需要認證;0x02,需認證;0x03,不允許添加。創建多人通話時為0x00。
    007 - 009: 總是 0x00。
    010 - 010: 分類。0x00,同學;0x01,朋友;0x02,同事;0x03,其它。
    011 - 不定長: Pascal字符串形式的群名。
    + 000 - 001: 總是0x00。應為分隔。
    + 002 - 不定長:Pascal字符串形式的群內通知。
    + 000 - 不定長:Pascal字符串形式的群描述。

    應答者:服務器

    樣本:

    03 00 0C 08 7E 3C

    000 - 000: 0x03,更改群信息子命令。
    001 - 001: 0x00,應該代表成功。
    002 - 005: 內部群號。

    0x04 獲取群的有關信息

    發送者:客戶端

    樣本:

    000: 04 0C 04 A9 F4

    000 - 000: 0x04,獲取群信息子命令標識。
    001 - 004: 內部群號。

    應答者:服務器

    樣本:

    000: 04 00 0C 04 A9 F4 0C 04
    008: A9 F4 02 00 01 82 90 02
    016: 00 00 00 00 00 00 00 00
    024: 04 6E 61 6D 65 00 00 0B
    032: 61 6E 6F 75 6E 63 65 6D
    040: 65 6E 74 0B 64 65 73 63
    048: 72 69 70 74 69 6F 6E 00
    056: 01 82 90 00 00 05 A6 C3
    064: 00 00 06 5D 10 00 01 39
    072: A4 76 00 01 82 5D 90 00
    080: 02 90 21 67 00 03 50 1B
    088: 3F 00 04 17 AF 5C 00

    000 - 000: 0x04,獲取群信息子命令標識。
    001 - 001: 0x00,代表成功。
    002 - 005: 內部群號。
    006 - 009: 外部群號。
    010 - 010: 0x02,可能代表臨時群。
    011 - 014: 群管理員QQ號。
    015 - 015: 身份認證模式。0x01,不需要認證;0x02,需認證;0x03,不允許添加。創建多人通話時為0x00。
    016 - 018: 總是 0x00。
    019 - 019: 分類。0x00,同學;0x01,朋友;0x02,同事;0x03,其它。
    020 - 023: 總是0x00。
    024 - 不定長: Pascal字符串格式群名。
    +000 - 001: 總是0x00,應為分隔。
    +002 - 不定長: Pascal字符串格式的群內公告。
    +000 - 不定長: Pascal字符串格式的群描述。
    +000 - 不定長: 以0x00分隔的群成員QQ號清單。(包括群管理員)。

    0x05 激活群

    發送者:客戶端

    樣本:

    000: 05 0C 04 A9 F4

    000 - 000: 0x05,激活群子命令標識
    001 - 004: 內部群號

    應答者:服務器

    樣本:

    000: 05 00 0C 04 A9 F4

    000 - 000: 0x05,激活群子命令標識。
    001 - 001: 0x00,表示命令成功。
    002 - 005: 內部群號。

    0x06 查找群

    發送者:客戶端

    樣本:

    000: 06 02 00 00 00 00

    000 - 000: 0x06,查找群子命令標識。
    001 - 001: 查找模式:0x01,按群編號查找。0x02,查找示范群。
    002 - 005: 外部群號。查找示范群全是0x00。

    應答者:服務器

    樣本:

    000: 06 00 02 0C 0B CD 52 00
    008: 01 86 D2 01 00 00 27 10
    016: 00 00 00 00 06 B2 C6 BE
    024: AD 39 34 00 00 01 28 CE
    032: D2 C3 C7 D5 E2 D2 BB C8
    040: BA D4 E7 D2 D1 B2 BB D4
    048: D9 CA C7 B5 B1 C4 EA B2
    056: BB B6 AE CA C2 B5 C4 C3
    064: A7 D7 B2 C9 D9 C4 EA 0C
    072: 0B CD 53 00 01 86 D3 01
    080: 00 00 27 10 00 00 00 02
    088: 0C B5 D8 C7 F2 B5 DB B9
    096: FA D5 BD B6 D3 00 00 01
    104: 1E 51 51 C8 BA C8 C3 CE
    112: D2 C3 C7 BD BB C1 F7 B1
    120: E4 B5 C3 C8 E7 B4 CB BC
    128: F2 B5 A5 A3 BA A3 A9 0C
    136: 0B CD 54 00 01 86 D4 01
    144: 00 00 27 10 00 00 00 01
    152: 06 D7 D4 D3 CE C2 BF 00
    160: 00 01 20 B0 AE BA C3 D7
    168: D4 D6 FA D3 CE B5 C4 C2
    176: BF D3 D1 C3 C7 A3 AC D3
    184: EB C4 E3 D2 BB C6 F0 CD
    192: AC D0 D0 0C 0B CD 55 00
    200: 01 86 D5 01 00 00 27 10
    208: 00 00 00 02 10 C1 AA BF
    216: B5 B9 AB CB BE C7 FE B5
    224: C0 D4 DA CF DF 00 00 01
    232: 1A C1 AA B4 B4 B9 AB CB
    240: BE B4 FA C0 ED C9 CC D0
    248: C5 CF A2 BD BB BB BB CD
    256: A8 B5 C0 0C 0B CD 56 00
    264: 01 86 D6 01 00 00 27 10
    272: 00 00 00 02 12 D1 D8 BD
    280: AD B1 A8 C9 E7 DF AC B8
    288: E5 C8 CB D7 A8 C7 F8 00
    296: 00 01 1E CC D8 D4 BC DF
    304: AC B8 E5 C8 CB B5 C4 D0
    312: C5 CF A2 D6 D0 D0 C4 A3
    320: AC CB FB C8 CB CE F0 C8
    328: C5 0C 0B CD 57 00 01 86
    336: D7 01 00 00 27 10 00 00
    344: 00 02 10 BA E3 CF E8 B9
    352: AB CB BE CD AC CA C2 BD
    360: BB C1 F7 00 00 01 28 CD
    368: AC D4 DA D2 BB B8 F6 B5
    376: D8 B7 BD C4 C3 B9 A4 D7
    384: CA B5 C4 A3 AC C8 BA C8
    392: C3 CE D2 C3 C7 BD BB C1
    400: F7 B8 FC B7 BD B1 E3 0C
    408: 0B CD 58 00 01 86 D8 01
    416: 00 00 27 10 00 00 00 01
    424: 0E 31 33 B6 B0 39 38 30
    432: 31 33 31 C5 AE C9 FA 00
    440: 00 01 14 C5 AE C9 FA D7
    448: D4 D3 D0 C5 AE C9 FA B5
    456: C4 CC EC B5 D8 A3 A1 0C
    464: 0B CD 59 00 01 86 D9 01
    472: 00 00 27 10 00 00 00 01
    480: 0A CB DE C9 E1 CD F8 CD
    488: F8 C3 CB 00 00 01 14 CD
    496: F8 C1 A6 CE DE CF DE A3
    504: AC D6 BB D2 AA BB A5 C1
    512: AA A3 A1 0C 0B CD 5A 00
    520: 01 86 DA 01 00 00 27 10
    528: 00 00 00 02 09 34 31 34
    536: BD CC D1 D0 CA D2 00 00
    544: 01 14 D7 D4 B3 C9 D2 BB
    552: CC E5 A3 AC C2 DB D1 A7
    560: CA F5 CC EC B5 D8 0C 0B
    568: CD 5B 00 01 86 DB 01 00
    576: 00 27 10 00 00 00 02 0E
    584: D3 A2 D3 EF D0 AD BB E1
    592: BC BC CA F5 B2 BF 00 00
    600: 01 2C D5 E2 C0 EF D3 D0
    608: CE DE CA FD C4 D1 CC E2
    616: A3 AC BB B9 D3 D0 CE DE
    624: CA FD C4 D1 CC E2 B5 C4
    632: CC E2 BD E2 A3 A1 BF EC
    640: C0 B4 C0 B2 A3 A1

    000 - 000: 0x06,查找群子命令標識。
    001 - 001: 0x00,表示命令成功。
    002 - 002: 0x02,也許表示查找的結果是示范群。
    003 - 不定長。一組組的群數據。每組的格式為:
    +000 - 003: 內部群號。(可能會變化)
      004 - 007: 外部群號。
      008 - 008: 0x01。應該表示是固定群。
      009 - 012: 創建者QQ號。
      013 - 015: 全為0x00。
      016 - 016: 分類標識:0x00,同學;0x01,朋友;0x02,同事;0x03,其它。
      017 - 不定長: Pascal字符串的群名稱。
    +000 - 001: 全是0x00,分隔。
    +002 - 002: 身份驗證:0x01,不需要認證;0x02,需認證;0x03,不允許添加。
    +003 - 不定長: Pascal字符串的群描述。

    0x07 加入群

    發送者:客戶端

    樣本:

    000: 07 0C 0B CD 52

    000 - 000: 0x07,加入群子命令。
    001 - 004: 要加入的群的內部群號。

    應答者:服務器

    樣本:

    000: 07 00 0C 0B CD 52 01

    000 - 000: 0x07,加入群子命令。
    001 - 000: 0x00,表示命令成功。
    002 - 005: 要加入的群的內部群號。
    006 - 006: 01 表示成功,02 表示需要驗證信息。

    0x08 加入群驗證信息

    發送者:客戶端

    樣本:

    000: 08 0C 21 53 A4 01 00 00
    008: 00 00 04 74 65 73 74

    000 - 000: 0x08,驗證信息子命令
    001 - 004: 要加入群的內部群號。
    005 - 005: 操作類別:0x01,請求;0x02,同意;0x03,拒絕。
    006 - 009: 要求加入的QQ號。(操作類別為0x01時,此字段為0)
    010 - 不定長,pascal字符串形式相關信息。(操作類別為0x02的時候,此信息為0xCE 0xDE,GB18030的“無”字)。

    應答者:服務器

    樣本:

    000: 08 00 0C 21 53 A4

    000 - 000: 0x08,加入群驗證信息子命令。
    001 - 000: 0x00,表示命令成功。
    002 - 005: 要加入的群的內部群號。

    0x09 退出群

    發送者:客戶端

    樣本:

    000: 09 0C 0A 38 89

    000 - 000: 0x09,退出群子命令。
    001 - 004: 要退出的群的內部群號。

    應答者:服務器

    樣本:

    000: 09 00 0C 0A 38 89

    000 - 000: 0x09,退出群子命令。
    001 - 000: 0x00,表示命令成功。
    002 - 005: 要退出的群的內部群號。

    0x0A 向群發送消息

    發送者:客戶端

    樣本:

    000: 0A 0C 04 A9 F4 00 10 68
    008: 69 20 00 09 00 00 00 00
    016: 86 02 CB CE CC E5 0D

    000 - 000: 0x0A,向群發送消息子命令標識。
    001 - 004: 內部群號。
    005 - 006: 消息數據長度。
    007 - 不定長:消息內容。C字符串形式,以0x00結尾。
    +000 - 000: 字號。
    +001 - 003: 顏色的RGB值。
    +004 - 004: 未知??偸?x00。
    +005 - 005: 字符編碼類別。0x86,GB2312。0x00,英文字符。
    +006 - 006: 與選用的字體相關的屬性,具體含義未知。
    +007 - 不定長。字體名。
    最后:與選定字體相關的屬性,具體含義未知。

    應答者:服務器

    000: 0A 00 0C 04 A9 F4

    000 - 000: 0x0A,向群發送消息子命令標識。
    001 - 001: 0x00,表示命令成功。
    002 - 005: 內部群號。

    0x0B 獲取在線群成員

    發送者:客戶端

    樣本:

    000: 0B 0C 04 A9 F4

    000 - 000: 0x0B,獲取在線群成員子命令標識
    001 - 004: 內部群編號。

    應答者:服務器

    樣本:

    000: 0B 00 0C 04 A9 F4 3C 00
    008: 01 82 90 01 39 A4 76 01
    016: 82 5D 90 03 50 1B 3F 04
    024: 17 AF 5C

    000 - 000: 0x0A,向群發送消息子命令標識。
    001 - 001: 0x00,表示命令成功。
    002 - 005: 內部群編號。
    006 - 006: 0x3C,未知含義。
    007 - 不定長: 四字節一組的在線群成員QQ號。

    0x0C 獲取群成員信息

    發送者:客戶端

    樣本:

    000: 0C 0C 04 A9 F4 00 01 82
    008: 90 00 05 A6 C3 00 06 5D
    016: 10 01 39 A4 76 01 82 5D
    024: 90 02 90 21 67 03 50 1B
    032: 3F 04 17 AF 5C

    000 - 000: 0x0C,獲取群成員信息子命令標識。
    001 - 004: 內部群編號。
    005 - 不定長: 四字節一組的需要獲取信息的群成員QQ號。

    應答者:服務器

    樣本:

    000: 0C 00 0C 04 A9 F4 01 82
    008: 5D 90 00 CC 1F 00 09 6A
    016: 65 66 66 5F 79 65 63 6E
    024: 00 00 00 01 82 90 00 60
    032: 1F 00 04 6A 65 66 66 00
    040: 00 00 05 A6 C3 00 21 13
    048: 01 04 B7 B2 ED FE 02 40
    056: 00 06 5D 10 00 6F 00 01
    064: 09 20 20 20 8C 57 95 FE
    072: A1 E5 02 00 01 39 A4 76
    080: 00 57 00 01 02 DE A5 00
    088: 00 02 90 21 67 00 7B 20
    096: 00 04 44 75 64 65 00 00
    104: 03 50 1B 3F 00 AE 00 01
    112: 0A CA C4 D1 D4 B2 BB BF
    120: C9 D0 C5 00 40 04 17 AF
    128: 5C 00 21 03 01 08 D3 EA
    136: D6 AE BC BE B9 9D 00 40

    000 - 000: 0x0C,獲取群成員信息子命令標識。
    001 - 001: 0x00,表示命令成功。
    002 - 005: 內部群編號。
    006 開始:群成員信息。同0x26命令的數據定義。

    出錯后的應答:

    樣本:

    000: 01 02 C4 FA C3 BB D3 D0
    008: C8 A8 CF DE B4 B4 BD A8
    016: C8 BA 2C C7 EB CF C8 D7
    024: A2 B2 E1 CE AA BB E1 D4
    032: B1

    000 - 000: 子命令標識
    001 - 001: 0x02,表示錯誤。
    002 - 最后: 錯誤信息。

    0x0081,用戶狀態改變通知

    發送方:服務器

    樣本:

    000: 00 01 82 90 01 40 E7 AF
    008: 39 0F A0 00 0A 04 05 49
    016: F8 16 6A CB 4E FE 26 BA
    024: CE BC C6 27 47 50 3E 00
    032: 00 01 82 5D 90

    000 - 003: 發生狀態改變的QQ號碼。
    004 - 004: 總是 0x01。
    005 - 010: IP及端口號。(在離線時為0)。
    011 - 012: 新狀態:0A 為正常,14 為下線,1E 為離開。
    013 - 014: QQ版本的功能特征。
    015 - 030: 該QQ號碼加上其Session Key后的MD5Digest。
    031 - 032: 0。
    033 - 036: 自己的QQ號碼。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>