[Pidgin] #11060: QQ Protocol Update Required: "Captcha verified" Check Fails

Pidgin trac at pidgin.im
Tue Dec 29 15:57:01 EST 2009


#11060: QQ Protocol Update Required: "Captcha verified" Check Fails
-------------------------+--------------------------------------------------
 Reporter:  ryanerwin    |     Owner:  csyfek
     Type:  defect       |    Status:  new   
Component:  QQ           |   Version:  2.6.4 
 Keywords:  QQ, Captcha  |  
-------------------------+--------------------------------------------------
 There are a few Bug Reports that have been written about this issue, but
 the english in each was so bad that I don't think anyone on the Pidgin
 team was able to decipher the meaning.

 The QQ connection algorithm has been updated to require a CAPTCHA upon
 connection by 3rd party client. Even the official QQ iPhone App requires a
 4 character CAPTCHA verification test on each connection, and the official
 Mac OS X client frequently asks for CAPTCHA verification. This is
 presumably to prevent SPAM on the QQ network.

 Attempting to connect to QQ, I get the following in the Debug Log:

 {{{
 04:26:29: DNS resolve complete for sz6.tencent.com:8000
 04:26:29: (Libpurple: dnsquery) IP resolved for sz6.tencent.com
 04:26:29: (Libpurple: QQ) Connected.
 04:26:29: Connecting: gc=0x1aa8cd20 (Getting server) 2 / 4
 04:26:29: (Libpurple: QQ) <== [56937] CMD_GET_SERVER(0x0091), datalen 48
 04:26:29: ************ 1073245115 --step-- 2
 04:26:29: Called write with no write_tag
           <SourceInfo 0x26fa860: Socket 0x1b4284c0: fd 9; timer_tag 0;
 read_tag 94; write_tag 0>
 04:26:29: (Libpurple: QQ) ==> [56937] CMD_GET_SERVER 0x0091, source tag
 0x115B len 40
 04:26:29: (Libpurple: QQ) Get server 58.251.61.161
 04:26:31: (Libpurple: QQ) Disconnecting...
 04:26:31: (Libpurple: QQ) Remove network watcher
 04:26:31: (Libpurple: QQ) Close socket 9
 04:26:31: (Libpurple: QQ_TRANS) Free all 1 packets
 04:26:31: (Libpurple: QQ) Port not define in 58.251.61.161:0, use default.
 04:26:31: Connecting: gc=0x1aa8cd20 (Connecting to server) 1 / 4
 04:26:31: (Libpurple: QQ) Connect to 58.251.61.161:8000
 04:26:31: (Libpurple: QQ) UDP Connect to 58.251.61.161:8000
 04:26:31: (Libpurple: dns) DNS query for '58.251.61.161' queued
 04:26:31: ************ 1073245115 --step-- 1
 04:26:31: (Libpurple: dnsquery) IP resolved for 58.251.61.161
 04:26:31: (Libpurple: QQ) Connected.
 04:26:31: Connecting: gc=0x1aa8cd20 (Getting server) 2 / 4
 04:26:31: (Libpurple: QQ) <== [25015] CMD_GET_SERVER(0x0091), datalen 48
 04:26:31: ************ 1073245115 --step-- 2
 04:26:31: Called write with no write_tag
           <SourceInfo 0x1aaa2300: Socket 0x1aa7bea0: fd 9; timer_tag 0;
 read_tag 99; write_tag 0>
 04:26:31: (Libpurple: QQ) ==> [25015] CMD_GET_SERVER 0x0091, source tag
 0x115B len 24
 04:26:31: (Libpurple: QQ) <== [25016] CMD_TOKEN(0x0062), datalen 1
 04:26:31: (Libpurple: QQ) ==> [25016] CMD_TOKEN 0x0062, source tag 0x115B
 len 34
 04:26:31: (Libpurple: QQ) <== [25017] CMD_TOKEN_EX(0x00BA), datalen 64
 04:26:31: (Libpurple: QQ) ==> [25017] CMD_TOKEN_EX 0x00BA, source tag
 0x115B len 56
 04:26:31: (Libpurple: QQ) Captcha verified, result 0
 04:26:31: (Libpurple: QQ) <== [25018] CMD_CHECK_PWD(0x00DD), datalen 128
 04:26:31: (Libpurple: QQ) ==> [25018] CMD_CHECK_PWD 0x00DD, source tag
 0x115B len 176
 04:26:31: (Libpurple: QQ) Decrypt login packet by pwd_twice_md5, 155 bytes
 04:26:31: (Libpurple: QQ) <== [25019] CMD_LOGIN(0x0022), datalen 570
 04:26:32: (Libpurple: QQ) ==> [25019] CMD_LOGIN 0x0022, source tag 0x115B
 len 136
 04:26:32: (Libpurple: QQ) Decrypt login packet by login_key
 04:26:32: (Libpurple: QQ)
 04:26:32: (Libpurple: QQ) <== [25020] CMD_GET_SERVER(0x0091), datalen 48
 04:26:32: (Libpurple: QQ) ==> [25020] CMD_GET_SERVER 0x0091, source tag
 0x115B len 24
 04:26:32: (Libpurple: QQ) <== [25021] CMD_TOKEN(0x0062), datalen 1
 04:26:32: (Libpurple: QQ) ==> [25021] CMD_TOKEN 0x0062, source tag 0x115B
 len 34
 04:26:32: (Libpurple: QQ) <== [25022] CMD_TOKEN_EX(0x00BA), datalen 64
 04:26:32: (Libpurple: QQ) ==> [25022] CMD_TOKEN_EX 0x00BA, source tag
 0x115B len 56
 04:26:32: (Libpurple: QQ) Captcha verified, result 0
 04:26:32: (Libpurple: QQ) <== [25023] CMD_CHECK_PWD(0x00DD), datalen 128
 04:26:36: (Libpurple: QQ) Connect ok
 04:26:37: (Libpurple: QQ_TRANS) Resend [25023]
           CMD_CHECK_PWD data 0x14a90060, len 128, send_retries 9
 04:26:37: (Libpurple: QQ) <== [25023] CMD_CHECK_PWD(0x00DD), datalen 128
 04:26:37: (Libpurple: QQ) ==> [25023] CMD_CHECK_PWD 0x00DD, source tag
 0x115B len 176
 04:26:37: (Libpurple: QQ) Decrypt login packet by pwd_twice_md5, 155 bytes
 04:26:37: (Libpurple: QQ) <== [25024] CMD_LOGIN(0x0022), datalen 570
 04:26:37: (Libpurple: QQ) ==> [25024] CMD_LOGIN 0x0022, source tag 0x115B
 len 136
 04:26:37: (Libpurple: QQ) Decrypt login packet by login_key
 04:26:37: (Libpurple: QQ)
 04:26:37: (Libpurple: QQ) <== [25025] CMD_GET_SERVER(0x0091), datalen 48
 04:26:37: (Libpurple: QQ) ==> [25025] CMD_GET_SERVER 0x0091, source tag
 0x115B len 24
 04:26:37: (Libpurple: QQ) <== [25026] CMD_TOKEN(0x0062), datalen 1
 04:26:38: (Libpurple: QQ) ==> [25026] CMD_TOKEN 0x0062, source tag 0x115B
 len 34
 04:26:38: (Libpurple: QQ) <== [25027] CMD_TOKEN_EX(0x00BA), datalen 64
 04:26:38: (Libpurple: QQ) ==> [25027] CMD_TOKEN_EX 0x00BA, source tag
 0x115B len 56
 04:26:38: (Libpurple: QQ) Captcha verified, result 0
 04:26:38: (Libpurple: QQ) <== [25028] CMD_CHECK_PWD(0x00DD), datalen 128
 04:26:42: Setting 1aa59c80 disabled and offline (offline)...
 }}}

 Note that the "Captcha verified, result 0" line is repeated... Presumably
 indicating that "0" is failure to verify that CAPTCHA, which will need to
 be passed through to the end user. I believe that there is nobody
 currently able to use pidgin/libpurple/adium to log into QQ at this time.

 The following tickets appear to reference the same issue, but were very
 difficult to understand.

   http://developer.pidgin.im/ticket/10223 (QQ)

   http://developer.pidgin.im/ticket/10223 (can't use/log in QQ in pidgin
 2.6.2)

   http://developer.pidgin.im/ticket/11051 (QQ not signing in, version too
 old is message from the server)

-- 
Ticket URL: <http://developer.pidgin.im/ticket/11060>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list