Valhalla Legends Archive

Programming => Battle.net Bot Development => Topic started by: shadypalm88 on October 24, 2003, 07:53 PM

Title: VB: BNLS_CDKEY_EX
Post by: shadypalm88 on October 24, 2003, 07:53 PM
BNLS closes my connection with no response after sending BNLS_CDKEY_EX, so I must be formatting the packet wrong, sending invalid data, or something of the sort.  I'm hoping that someone can tell me where the fault is.

Here's an example BNLS_CDKEY_EX packet generated by my bot that causes the BNLS server to disconnect:1B 00 0C 00 00 00 00 01 01 E6 01 7D 4F (CD-Key Data: 13 bytes) 00
Here is the code being used to generate the packet (B is a PacketBuffer object):Case SID_AUTH_INFO:
   'BotEvent ERR_DEBUG, "Recieved SID_AUTH_INFO:" & StrToHex(strData)
   f = 0
   PKS(f).Type = PKT_BYTE 'StartPacket
   f = f + 1
   PKS(f).Type = PKT_BYTE 'B.Net Packet Header
   f = f + 1

   PKS(f).Type = PKT_WORD 'Packet Length
   IncI f
   PKS(f).Type = PKT_DWORD 'Logon Type
   f = f + 1
   PKS(f).Type = PKT_DWORD 'Server Token
   f = f + 1
   PKS(f).Type = PKT_DWORD 'UDPValue
   f = f + 1
   PKS(f).Type = PKT_FILETIME 'MPQ Filetime
   f = f + 1
   PKS(f).Type = PKT_STRING 'IX86ver filename
   PKS(f).ReadUntil = Chr(0) 'Null-terminator
   f = f + 1
   PKS(f).Type = PKT_STRING 'ValueString
   PKS(f).ReadUntil = Chr(0) 'Null-terminator
   f = f + 1
   DividePacket PKD, PKS, f, strData
   ServerToken = PKD(4).lngData
   'MsgBox Val(Mid$(strData, 9, 12)), vbInformation
   With B
       .InsertDWORD &H0
       If (BotData.Client = "D2XP" Or BotData.Client = "W3XP") Then
           .InsertBYTE &H2
       Else
           .InsertBYTE &H1
       End If
       .InsertBYTE &H1
       'CopyMemory DPData(i).lngData, ByVal Mid$(Data, CurPos, 4), 4
       'CopyMemory lngWork, Mid$(strData, 9, 12), 4
       .InsertDWORD_Raw CStr(PKD(4).Data)
       .InsertNTString BotData.CDKey
       If (BotData.Client = "D2XP" Or BotData.Client = "W3XP") Then _
           .InsertNTString BotData.ExCDKey
       .sendPacket BNLS_CDKEY_EX, BNLSSocket, True
   End With
Title: Re:VB: BNLS_CDKEY_EX
Post by: Soul Taker on October 24, 2003, 10:27 PM
Well the format is
Quote(DWORD) Cookie. This value has no special meaning to the server and will simply be echoed to the client in the response.
(BYTE) Amount of CD-keys to encrypt. Must be between 1 and 32.
(DWORD) Flags.*
(DWORD or DWORDs) Server session key(s), depending on the flags.
(Optional DWORD or DWORDs) Client session key(s), depending on the flags.
(String or strings) CD-keys. No dashes or spaces. The client can use multiple types of CD-keys in the same packet.
I see you inserting a DWORD for the cookie, a byte for the amount of keys to encrypt, but then a byte for the flags, when it should be a DWORD.
Title: Re:VB: BNLS_CDKEY_EX
Post by: shadypalm88 on October 25, 2003, 12:21 PM
Well, I guess that would do it, eh?   ::)