Protocols/OSCAR/SNAC/BUCP REGISTER REQUEST: Difference between revisions

From NINA Wiki
Jump to navigation Jump to search
(Created page with "{{Protocols/OSCAR}} {{Protocols/OSCAR/SNAC/Stats |origin={{Protocols/OSCAR/SNAC/BUCP__REGISTER_REQUEST/Origin}} |name=BUCP__REGISTER_REQUEST |id=0x0017, 0x0004 |service={{Prot...")
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 19: Line 19:
=== SNAC Data ===
=== SNAC Data ===
Unconfirmed: This SNAC contains no data
Unconfirmed: This SNAC contains no data
This is the SNAC sent to the auth server to request a new ICQ number. It should be the very first thing sent, after the initial "New Connection."
{| border="1"
! Length
! Description
|-
| 2 bytes
| Family (0x0017)
|-
| 2 bytes
| Subtype (0x0004)
|-
| 2 bytes
| Flags
|-
| 4 bytes
| Snac Request ID
|-
| 2 bytes
| 0x0001
|-
| 2 bytes
| Length ''L'' of the following
|-
| ''L'' bytes
| DATA
|}
==== DATA ====
The ICQ registration info. All chunks are in, uh, network byte order, I guess (the number "5" is sent as "x05 00").
{| border="1"
! Length
! Description
|-
| 2 bytes
| 0x0000
|-
| 2 bytes
| 0x0000
|-
| 2 bytes
| 0x2800
|-
| 2 bytes
| 0x0300
|-
| 4 bytes
| 0x0000 0000
|-
| 4 bytes
| 0x0000 0000
|-
| 2 bytes
| 0xec38 0000 - Some type of random cookie?
|-
| 2 bytes
| 0xec38 0000 - Same number as above
|-
| 4 bytes
| 0x0000 0000
|-
| 4 bytes
| 0x0000 0000
|-
| 4 bytes
| 0x0000 0000
|-
| 4 bytes
| 0x0000 0000
|-
| 2 bytes
| Length ''L'' of the following
|-
| ''L'' bytes
| The password you wish to use for the new ICQ account. In plain text and null terminated.
|-
| 2 bytes
| 0xec38 0000 - Same number as above
|-
| 2 bytes
| 0x0000
|-
| 2 bytes
| 0x0602. 0x1502 has also been seen
|}
=== From Aleksandr Shutko: SNAC(17,04) registration request SNAC(17,04) BUCP__REGISTER_REQUEST  ===
<table width=640 cellSpacing=0 cellPadding=0 border=0>
<tr>
<td>
<br>
Use this snac when you need new ICQ account (uin/password).
Server should reply with [[Protocols/OSCAR/SNAC_17_05|SNAC(17,05)]] containing
new uin. This snac mean that registration finished succesfully.
Server also can reply with [[Protocols/OSCAR/SNAC_17_01|SNAC(17,01)]] if it can't
create new user account.
<br><br>
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr><td  bgcolor=#E9E9E9 >
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0>
<tr>
<td width=23%>&nbsp;00 17</td>
<td width=5>&nbsp;</td>
<td>word</td>
<td width=5>&nbsp;</td>
<td width=58%>SNAC family</td>
</tr>
<tr>
<td>&nbsp;00 04</td>
<td>&nbsp;</td>
<td>word</td>
<td>&nbsp;</td>
<td>SNAC subtype</td>
</tr>
<tr>
<td>&nbsp;00 00</td>
<td>&nbsp;</td>
<td>word</td>
<td>&nbsp;</td>
<td>SNAC flags</td>
</tr>
<tr>
<td>&nbsp;xx xx xx xx</td>
<td>&nbsp;</td>
<td>dword</td>
<td>&nbsp;</td>
<td>SNAC request-id</td>
</tr>
</table>
</td></tr>
<tr><td bgcolor=#E9E9E9>
<!-- TLV 0x01 -->
<table width=640 cellSpacing=0 cellPadding=0 align=center border=0>
<tr><td height=8 colspan=3></td></tr>
<tr><td width=20> </td>
<td>
<table width=610 bgcolor=darkgreen cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 align=center border=0>  <tr><td  bgcolor=#f9f9f9 >
  <table width=610 cellSpacing=0 cellPadding=0 align=center border=0>
  <tr>
  <td width=20%>&nbsp;00 01</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>TLV.Type(0x01)</td>
  </tr>
  <tr>
  <td>&nbsp;xx xx</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>TLV.Length</td>
  </tr>
  </table>
  </td></tr>
  <tr><td  bgcolor=#f9f9f9 >
  <table width=610 cellSpacing=0 cellPadding=0 align=center border=0>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;28 00</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>subcmd (request new uin)</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;03 00</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>sequence</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx xx xx</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>registration cookie</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx xx xx</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>registration cookie (the same)</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>password string len (LE)</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx .. xx 00</td>
  <td width=5>&nbsp;</td>
  <td>string</td>
  <td width=5>&nbsp;</td>
  <td width=60%>password string (asciiz)</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx xx xx</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>registration cookie (the same)</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;00 00 00 00</td>
  <td width=5>&nbsp;</td>
  <td>dword</td>
  <td width=5>&nbsp;</td>
  <td width=60%>just zeros</td>
  </tr>
  <tr>
  <td width=20%>&nbsp;xx xx</td>
  <td width=5>&nbsp;</td>
  <td>word</td>
  <td width=5>&nbsp;</td>
  <td width=60%>unknown value (random?)</td>
  </tr>
  </table>
  </td></tr>
  </table>
</td></tr></table>
</td><td width=5> </td>
</tr>
<tr><td height=5 colspan=3> </td></tr>
</table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
<br>Example SNAC dump with flap header:
<table width=640 bgcolor=darkblue cellSpacing=0 cellPadding=0 border=0><tr><td>
<table width=100% cellSpacing=2 cellPadding=0 border=0><tr>
<td  bgcolor=#E9E9E9 >
<font size=3><pre style="font-size: 13px">
  2A 02 38 C7 00 49 00 17  00 04 00 00 00 00 00 00  *.8..... ........
  00 01 00 3B 00 00 00 00  28 00 03 00 00 00 00 00  ...;.... (.......
  00 00 00 00 3C 38 00 00  3C 38 00 00 00 00 00 00  .....8.. .8......
  00 00 00 00 00 00 00 00  00 00 00 00 09 00 70 61  ........ ......pa
  73 73 77 6F 72 64 00 3C  38 00 00 00 00 D1 01    ssword.. 8......
</pre></font>
</td></tr></table>
</td></tr></table>
[[Category:With_Contrib]]


=== BUCP SNACs ===
=== BUCP SNACs ===

Latest revision as of 06:21, 13 February 2021

OSCAR Protocol
IntroductionTermsClients
Basic
DatatypesFLAPSNACTLV
UUIDsErrorsTool IDs
Host Interaction
Rate LimitsMigrationMessages
Other Services
ADMINADVERTALERT
BARTBOSBUCPCHAT
CHAT_NAV
Tutorials
Sign OnBARTRendezvous
ICBMLocateBuddies
Foodgroups
OSERVICE (0x0001)
LOCATE (0x0002)
BUDDY (0x0003)
ICBM (0x0004)
ADVERT (0x0005)
INVITE (0x0006)
ADMIN (0x0007)
POPUP (0x0008)
PD (0x0009)
USER_LOOKUP (0x000A)
STATS (0x000B)
TRANSLATE (0x000C)
CHAT_NAV (0x000D)
CHAT (0x000E)
ODIR (0x000F)
BART (0x0010)
FEEDBAG (0x0013)
ICQ (0x0015)
BUCP (0x0017)
ALERT (0x0018)
PLUGIN (0x0022)
UNNAMED_FG_24 (0x0024)
MDIR (0x0025)
ARS (0x044A)
ID Origin Name Foodgroup Service Status Version
0x0017, 0x0004 Client BUCP__REGISTER_REQUEST Unspecified BUCP Active 1.15

Client registration for legacy ICQ clients.

SNAC Header

Foodgroup uint16 (word) 00 17
Subgroup uint16 (word) 00 04
Flags uint16 (word) 00 00
Request ID uint32 (dword) 00 00 00 00

SNAC Data

Unconfirmed: This SNAC contains no data

This is the SNAC sent to the auth server to request a new ICQ number. It should be the very first thing sent, after the initial "New Connection."

Length Description
2 bytes Family (0x0017)
2 bytes Subtype (0x0004)
2 bytes Flags
4 bytes Snac Request ID
2 bytes 0x0001
2 bytes Length L of the following
L bytes DATA

DATA

The ICQ registration info. All chunks are in, uh, network byte order, I guess (the number "5" is sent as "x05 00").

Length Description
2 bytes 0x0000
2 bytes 0x0000
2 bytes 0x2800
2 bytes 0x0300
4 bytes 0x0000 0000
4 bytes 0x0000 0000
2 bytes 0xec38 0000 - Some type of random cookie?
2 bytes 0xec38 0000 - Same number as above
4 bytes 0x0000 0000
4 bytes 0x0000 0000
4 bytes 0x0000 0000
4 bytes 0x0000 0000
2 bytes Length L of the following
L bytes The password you wish to use for the new ICQ account. In plain text and null terminated.
2 bytes 0xec38 0000 - Same number as above
2 bytes 0x0000
2 bytes 0x0602. 0x1502 has also been seen

From Aleksandr Shutko: SNAC(17,04) registration request SNAC(17,04) BUCP__REGISTER_REQUEST


Use this snac when you need new ICQ account (uin/password). Server should reply with SNAC(17,05) containing new uin. This snac mean that registration finished succesfully. Server also can reply with SNAC(17,01) if it can't create new user account.

 00 17   word   SNAC family
 00 04   word   SNAC subtype
 00 00   word   SNAC flags
 xx xx xx xx   dword   SNAC request-id
 00 01   word   TLV.Type(0x01)
 xx xx   word   TLV.Length
 00 00 00 00   dword   just zeros
 28 00   word   subcmd (request new uin)
 03 00   word   sequence
 00 00 00 00   dword   just zeros
 00 00 00 00   dword   just zeros
 xx xx xx xx   dword   registration cookie
 xx xx xx xx   dword   registration cookie (the same)
 00 00 00 00   dword   just zeros
 00 00 00 00   dword   just zeros
 00 00 00 00   dword   just zeros
 00 00 00 00   dword   just zeros
 xx xx   word   password string len (LE)
 xx .. xx 00   string   password string (asciiz)
 xx xx xx xx   dword   registration cookie (the same)
 00 00 00 00   dword   just zeros
 xx xx   word   unknown value (random?)


Example SNAC dump with flap header:


  2A 02 38 C7 00 49 00 17  00 04 00 00 00 00 00 00  *.8..... ........
  00 01 00 3B 00 00 00 00  28 00 03 00 00 00 00 00  ...;.... (.......
  00 00 00 00 3C 38 00 00  3C 38 00 00 00 00 00 00  .....8.. .8......
  00 00 00 00 00 00 00 00  00 00 00 00 09 00 70 61  ........ ......pa
  73 73 77 6F 72 64 00 3C  38 00 00 00 00 D1 01     ssword.. 8......


BUCP SNACs

SNAC List
Subgroup Origin Name
0x0001 Any BUCP__ERR
This is the error SNAC for the BUCP foodgroup.
0x0002 Client BUCP__LOGIN_REQUEST
Client login request.
0x0003 Host BUCP__LOGIN_RESPONSE
Host login response, will contain reconnect information with login cookie or an error code and/or URL.
0x0004 Client BUCP__REGISTER_REQUEST
Client registration for legacy ICQ clients.
0x0005 Host BUCP__REGISTER_RESPONSE
Host response to BUCP__REGISTER_REQUEST. May contain confirmation of registration or an error code and/or URL.
0x0006 Client BUCP__CHALLENGE_REQUEST
Request challenge for login request.
0x0007 Host BUCP__CHALLENGE_RESPONSE
Response to BUCP__CHALLENGE_REQUEST with challenge.
0x0008 Client BUCP__ASASN_REQUEST
AOL Suggest A Screenname Request, suggests screennames based on other parameters.
0x0009 Host BUCP__ASASN_RESPONSE
Response to BUCP__ASASN_REQUEST with a list of suggestions
0x000A Host BUCP__SECURID_REQUEST
Host SecurID request for client to continue logging in.
0x000B Client BUCP__SECURID_RESPONSE
Client response to BUCP__SECURID_RESPONSE with SecurID code.
0x000C Client BUCP__REGISTRATION_IMAGE_REQUEST
Request registration image, or CAPTCHA
0x000D Host BUCP__REGISTRATION_IMAGE_REPLY
Response to BUCP__REGISTRATION_IMAGE_REQUEST containing image information