Valhalla Legends Forums Archive | Battle.net Bot Development | Invalid CDKey.

AuthorMessageTime
gentoolinux
Hello, I'm kind of new to this programing situation... I had a friend help me with a bot, i'm getting an invalid cdkey error and the cdkey is valid... I'm not sure why and my friend is in texas for 3 weeks so i cannot contact him, can anyone please help me?
April 24, 2005, 12:02 AM
Archangel
Maybe the cd-key decoding is wrong.

Show packet logs
April 24, 2005, 12:06 AM
gentoolinux
[quote author=Archangel link=topic=11374.msg109639#msg109639 date=1114301189]
Maybe the cd-key decoding is wrong.

Show packet logs
[/quote]

[code]
1  Hide  Hide  67  Send 
0000  01 FF 50 3A 00 00 00 00 00 36 38 58 49 4E 42 32    ..P:.....68XINB2
0010  57 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00    WO..............
0020  00 00 00 00 00 00 00 00 00 55 53 41 00 55 6E 69    .........USA.Uni
0030  74 65 64 20 53 74 61 74 65 73 00 FF 25 08 00 00    ted States..%...
0040  00 00 00                                          ...

2  Hide  Hide  8  Recv 
0000  FF 25 08 00 B1 41 C2 9A                            .%...A..

3  Hide  Hide  98  Recv 
0000  FF 50 62 00 00 00 00 00 18 7C 9C 45 40 86 0F 00    .Pb......|.E@...
0010  00 AC 41 43 25 0B C5 01 49 58 38 36 76 65 72 32    ..AC%...IX86ver2
0020  2E 6D 70 71 00 41 3D 37 35 31 37 30 30 34 31 38    .mpq.A=751700418
0030  20 42 3D 39 38 31 32 39 30 37 38 35 20 43 3D 33    B=981290785 C=3
0040  34 37 37 32 37 38 34 20 34 20 41 3D 41 2D 53 20    4772784 4 A=A-S
0050  42 3D 42 2B 43 20 43 3D 43 2D 41 20 41 3D 41 5E    B=B+C C=C-A A=A^
0060  42 00                                              B.

4  Hide  Hide  112  Send 
0000  FF 51 70 00 00 00 00 00 00 02 00 02 05 B3 63 25    .Qp...........c%
0010  01 00 00 00 00 00 00 00 10 00 00 00 04 00 00 00    ................
0020  F0 B7 02 00 00 00 00 00 56 E6 E8 2B 8D 14 26 6D    ........V..+..&m
0030  9C 22 10 BB BF 97 20 17 E8 62 0A F6 57 61 72 63    .".... ..b..Warc
0040  72 61 66 74 20 49 49 20 42 4E 45 2E 65 78 65 20    raft II BNE.exe
0050  30 34 2F 32 32 2F 30 35 20 30 30 3A 30 34 3A 31    04/22/05 00:04:1
0060  37 20 37 31 32 37 30 34 00 57 65 62 42 6F 74 00    7 712704.WebBot.

5  Hide  Hide  9  Recv 
0000  FF 51 09 00 00 02 00 00 00                        .Q.......

6  Hide  Hide  12  Send 
0000  FF 14 08 00 74 65 6E 62 FF 2D 04 00                ....tenb.-..

[/code]
April 24, 2005, 12:14 AM
Yegg
Rather than post packetlogs of your bot. Show us the cdkey decode function that you are using.
April 24, 2005, 12:37 AM
gentoolinux
[quote author=Yegg link=topic=11374.msg109643#msg109643 date=1114303021]
Rather than post packetlogs of your bot. Show us the cdkey decode function that you are using.
[/quote]

[code]

Private Sub DecodeCDKey(ByVal sCDKey As String, ByRef dProductId As Double, ByRef dValue1 As Double, ByRef dValue2 As Double)
On Error Resume Next
    sCDKey = Replace(sCDKey, "-", "")
    sCDKey = Replace(sCDKey, " ", "")
    sCDKey = KillNull(sCDKey)
    If Len(sCDKey) = 13 Then
        sCDKey = DecodeStarcraftKey(sCDKey)
    ElseIf Len(sCDKey) = 16 Then
        sCDKey = DecodeD2Key(sCDKey)
    Else
        Exit Sub
    End If
    dProductId = Val("&H" & Left$(sCDKey, 2))
    If Len(sCDKey) = 13 Then
        dValue1 = Val(Mid$(sCDKey, 3, 7))
        dValue2 = Val(Mid$(sCDKey, 10, 3))
    ElseIf Len(sCDKey) = 16 Then
        dValue1 = Val("&H" & Mid$(sCDKey, 3, 6))
        dValue2 = Val("&H" & Mid$(sCDKey, 9))
    End If
End Sub

Private Function DecodeD2Key(ByVal key As String) As String
    Dim R As Double, n As Double, n2 As Double, v As Double, _
    v2 As Double, keyvalue As Double, c1 As Byte, c2 As Byte, _
    c As Byte, bValid As Boolean, i As Integer, aryKey(0 To 15) As String, _
    codevalues As String
    codevalues = "246789BCDEFGHJKMNPRTVWXZ"
    R = 1
    keyvalue = 0
    For i = 1 To 16
        aryKey(i - 1) = Mid$(key, i, 1)
    Next i
    For i = 0 To 15 Step 2
        c1 = InStr(1, codevalues, aryKey(i)) - 1
        If c1 = -1 Then c1 = &HFF
        n = c1 * 3
        c2 = InStr(1, codevalues, aryKey(i + 1)) - 1
        If c2 = -1 Then c2 = &HFF
        n = c2 + n * 8
        If n >= &H100 Then
            n = n - &H100
            keyvalue = keyvalue Or R
        End If
        n2 = n
        n2 = RShift(n2, 4)
        aryKey(i) = GetHexValue(n2)
        aryKey(i + 1) = GetHexValue(n)
        R = LShift(R, 1)
Cont:
    Next i
    v = 3
    For i = 0 To 15
        c = GetNumValue(aryKey(i))
        n = Val(c)
        n2 = v * 2
        n = n Xor n2
        v = v + n
    Next i
    v = v And &HFF
    For i = 15 To 0 Step -1
        c = Asc(aryKey(i))
        If i > 8 Then
            n = i - 9
        Else
            n = &HF - (8 - i)
        End If
        n = n And &HF
        c2 = Asc(aryKey(n))
        aryKey(i) = Chr$(c2)
        aryKey(n) = Chr$(c)
    Next i
    v2 = &H13AC9741
    For i = 15 To 0 Step -1
        c = Asc(UCase(aryKey(i)))
        aryKey(i) = Chr$(c)
        If Val(c) <= Asc("7") Then
            v = v2
            c2 = v And &HF
            c2 = c2 And 7
            c2 = c2 Xor c
            v = RShift(v, 3)
            aryKey(i) = Chr$(c2)
            v2 = v
        ElseIf Val(c) < Asc("A") Then
            c2 = CByte(i)
            c2 = c2 And 1
            c2 = c2 Xor c
            aryKey(i) = Chr$(c2)
        End If
    Next i
    DecodeD2Key = Join(aryKey, "")
    Erase aryKey()
End Function
[/code]
April 24, 2005, 12:59 AM
Yegg
Ok, that code is correct. I've got another question, are you using the correct logon sequences for Warcraft2 or Diablo2? You can post code if you like so that we can maybe find an error for you or something else that you might be doing wrong.
April 24, 2005, 1:56 AM
gentoolinux
[quote author=Yegg link=topic=11374.msg109650#msg109650 date=1114307798]
Ok, that code is correct. I've got another question, are you using the correct logon sequences for Warcraft2 or Diablo2? You can post code if you like so that we can maybe find an error for you or something else that you might be doing wrong.
[/quote]

I'm new to this, can you please explain what you need?
April 24, 2005, 2:13 AM
shout
[quote author=gentoolinux link=topic=11374.msg109647#msg109647 date=1114304371]
[code]
codevalues = "246789BCDEFGHJKMNPRTVWXZ"
[/code]
[/quote]

Doesnt there have to be spaces in there?

If the key values is '7', or 0x44 (&H44)[I think],  the value would be beyond the length of the string. I'm not sure how visual basic handles this, but I'm guessing it does not tell you.
April 24, 2005, 3:02 AM
Myndfyr
[quote author=Shout link=topic=11374.msg109659#msg109659 date=1114311726]
[quote author=gentoolinux link=topic=11374.msg109647#msg109647 date=1114304371]
[code]
codevalues = "246789BCDEFGHJKMNPRTVWXZ"
[/code]
[/quote]

Doesnt there have to be spaces in there?

[/quote]

No spaces or non-alphanumeric characters appear in CD keys when they are presented for decoding.
April 24, 2005, 7:44 AM
shout
[quote author=MyndFyre link=topic=11374.msg109679#msg109679 date=1114328647]
[quote author=Shout link=topic=11374.msg109659#msg109659 date=1114311726]
[quote author=gentoolinux link=topic=11374.msg109647#msg109647 date=1114304371]
[code]
codevalues = "246789BCDEFGHJKMNPRTVWXZ"
[/code]
[/quote]

Doesnt there have to be spaces in there?

[/quote]

No spaces or non-alphanumeric characters appear in CD keys when they are presented for decoding.
[/quote]

I hope that is not the cdkey. Why would you have the cdkey hardcoded into a bot? That makes no sense at all.

I was talking about the strange lack of this array:
[code]
private static int[] map = new int[]
{
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , 0x00, -1  , 0x01, -1  ,
0x02, 0x03, 0x04, 0x05, -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
0x0C, -1  , 0x0D, 0x0E, -1  , 0x0F, 0x10, -1  , 0x11,
-1  , 0x12, -1  , 0x13, -1  , 0x14, 0x15, 0x16, -1  ,
0x17, -1  , -1  , -1  , -1  , -1  , -1  , -1  , 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, -1  , 0x0D, 0x0E,
-1  , 0x0F, 0x10, -1  , 0x11, -1  , 0x12, -1  , 0x13,
-1  , 0x14, 0x15, 0x16, -1  , 0x17, -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  , -1  ,
-1  , -1  , -1  , -1
};
[/code]

In BnetAuth.cpp it is called codevalues.

The alpha-numeric cdkey needs to be changed to hex before it can be decoded. Thats what that array is for. Each of the values corroposnds with one of the characters present in alpha-numeric cdkeys,  so '2' would be 0x00, and so fourth. If you ever get -1, thats one way you can tell the key is invalid.
April 24, 2005, 2:06 PM
gentoolinux
That's not my CDKey.... So does anyone know what the problem is?
April 24, 2005, 2:23 PM
Yegg
I believe that the codevalues variable contains all of the characters that a warcraft2 or diablo2 cdkey can contain.
April 24, 2005, 3:37 PM
gentoolinux
[quote author=Yegg link=topic=11374.msg109704#msg109704 date=1114357047]
I believe that the codevalues variable contains all of the characters that a warcraft2 or diablo2 cdkey can contain.
[/quote]

anybody have any ideas? .....
April 24, 2005, 7:42 PM
UserLoser.
[quote author=gentoolinux link=topic=11374.msg109740#msg109740 date=1114371778]
[quote author=Yegg link=topic=11374.msg109704#msg109704 date=1114357047]
I believe that the codevalues variable contains all of the characters that a warcraft2 or diablo2 cdkey can contain.
[/quote]

anybody have any ideas? .....
[/quote]

Show us how you're hashing the cdkey data.
April 24, 2005, 9:30 PM
Yegg
UserLoser, that might not be possible. Assuming he's new to bot developement (not the website), he may be using something like bnetauth.dll for that task.
April 25, 2005, 12:11 AM
Quarantine
Well, then show that?
April 25, 2005, 12:19 AM
gentoolinux
[quote author=Warrior link=topic=11374.msg109794#msg109794 date=1114388378]
Well, then show that?
[/quote]

I'm not sure exactly what you want me to show, i use BNETAUTH.DLL
April 25, 2005, 1:05 PM
Spilled[DW]
Show us your code of where you send packet 0x51, maybe your error is where you insert the two values?
April 25, 2005, 3:03 PM
Quarantine
Where you request the keyhash from BnetAuth.
April 25, 2005, 7:33 PM
gentoolinux
where i call bnetauth

[code]
Private Declare Function z Lib "bnetauth.dll" Alias "Z" (ByVal FileExe As String, ByVal FileStormDll As String, ByVal FileBnetDll As String, ByVal HashText As String, ByRef version As Long, ByRef Checksum As Long, ByVal ExeInfo As String, ByVal mpqname As String) As Long
[/code]

the other crap

[code]
    Call InitNLS
    frmMain.Winsock.SendData Chr(1)
    InsertDWORD 0
    InsertNonNTString "68XI" & vProduct
    InsertDWORD GetVerByte()
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertNTString "USA"
    InsertNTString "United States"
    SendPacket &H50
    InsertDWORD 0
    SendPacket &H25
    AddC QBColor(8), "VerByte (Dec): " & GetVerByte()
[/code]
April 25, 2005, 9:53 PM
LoRd
I know why you're getting an invalid CD-Key response.  It's because you don't have a damn clue what you're doing.
April 25, 2005, 9:56 PM
gentoolinux
[quote author=LoRd[nK] link=topic=11374.msg109898#msg109898 date=1114466165]
I know why you're getting an invalid CD-Key response.  It's because you don't have a damn clue what you're doing.
[/quote]

Wow what an obvious observation....
April 25, 2005, 11:59 PM
Spilled[DW]
[quote author=gentoolinux link=topic=11374.msg109897#msg109897 date=1114465980]
where i call bnetauth

[code]
Private Declare Function z Lib "bnetauth.dll" Alias "Z" (ByVal FileExe As String, ByVal FileStormDll As String, ByVal FileBnetDll As String, ByVal HashText As String, ByRef version As Long, ByRef Checksum As Long, ByVal ExeInfo As String, ByVal mpqname As String) As Long
[/code]

the other crap

[code]
    Call InitNLS
    frmMain.Winsock.SendData Chr(1)
    InsertDWORD 0
    InsertNonNTString "68XI" & vProduct
    InsertDWORD GetVerByte()
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertDWORD 0
    InsertNTString "USA"
    InsertNTString "United States"
    SendPacket &H50
    InsertDWORD 0
    SendPacket &H25
    AddC QBColor(8), "VerByte (Dec): " & GetVerByte()
[/code]

[/quote]

Ok, i asked for 0x51 not 0x50. Show me where you send 0x51 and maybe perhaps a packetlog of 0x51? -.-
April 26, 2005, 4:54 PM
gentoolinux
I'm not sure where I send 0x51, where would I find that?

[code]

    Case &H50
            Servers = Val("&h" & StrToHex(StrReverse(Mid(Data, 9, 4))))
            p0x51 (Data)

[/code]

thats the only 0x51 i see in the whole bot
that codes:

[code]
Private Sub p0x51(Data As String)
Dim Hash As String, mpqname As String, ExeInfo As String, version As Long, Checksum As Long, Result As Long, modDatabaselProdID As Double, modDatabaselValue1 As Double, modDatabaselValue2 As Double, lngProdID As Long, lngValue1 As Long, lngValue2 As Long, Accounthash As String, modDatabaselkey As Long
mpqname = Mid(Data, InStr(Data, "I"), 12)
Hash = Mid(Mid(Data, 34), InStr(Mid(Data, 34), Chr(0)) + 1, InStr(Mid(Mid(Data, 34), InStr(Data, Chr(0)) + 1), Chr(0)))
Hash = Replace(Hash, Chr(0), "")
ExeInfo = Space(256)

'  Select Case vProduct
    '  Case "RATS", "PXES"
        '  Result = z(App.Path & "\star\Starcraft.exe", App.Path & "\star\storm.dll", App.Path & "\star\battle.snp", Hash, version, Checksum, ExeInfo, mpqname)
 
  '    Case "NB2W"
            Result = z(App.Path & "\war2\Warcraft II BNE.exe", App.Path & "\war2\storm.dll", App.Path & "\war2\battle.snp", Hash, version, Checksum, ExeInfo, mpqname)
  '      Case "VD2D"
  '          Result = z(App.Path & "\d2dv\game.exe", App.Path & "\d2dv\bnclient.dll", App.Path & "\d2dv\d2client.dll", Hash, version, Checksum, ExeInfo, mpqname)
  '      Case "PX2D"
  '          Result = z(App.Path & "\d2xp\game.exe", App.Path & "\d2xp\bnclient.dll", App.Path & "\d2xp\d2client.dll", Hash, version, Checksum, ExeInfo, mpqname)
  '      Case "3RAW", "PX3W"
  '          Result = z(App.Path & "\war3\war3.exe", App.Path & "\war3\storm.dll", App.Path & "\war3\game.dll", Hash, version, Checksum, ExeInfo, mpqname)
        'Case "PX3W"
        '    Result = z(App.Path & "\w3xp\war3.exe", App.Path & "\w3xp\storm.dll", App.Path & "\w3xp\game.dll", Hash, version, Checksum, ExeInfo, mpqname)
'  End Select
   
NullTruncString ExeInfo

If vProduct <> "3RAW" And vProduct <> "PX3W" Then
    DecodeCDKey vCDkey, modDatabaselProdID, modDatabaselValue1, modDatabaselValue2
    lngProdID = CLng(modDatabaselProdID)
    lngValue1 = CLng(modDatabaselValue1)
    lngValue2 = CLng(modDatabaselValue2)
    Accounthash = String(5 * 4, vbNullChar)
    c Accounthash, Servers, lngProdID, lngValue1, lngValue2, modDatabaselkey
    If Result = 0 Then
      AddC vbRed, "Hashing Failed"
      frmMain.Winsock.Close
    Exit Sub
    End If
        InsertDWORD modDatabaselkey
        InsertDWORD version
        InsertDWORD Checksum
       
      If varProduct = "PX2D" Then
            InsertDWORD 2
      Else
            InsertDWORD 1
      End If
     
        InsertDWORD 0
        InsertDWORD Len(vCDkey)
        InsertDWORD CLng(modDatabaselProdID)
        InsertDWORD CLng(modDatabaselValue1)
        InsertDWORD 0
        InsertNonNTString Accounthash
        If varProduct = "PX2D" Then
            Dim modDatabaselProdID2 As Double, modDatabaselValue12 As Double, modDatabaselValue22 As Double
            Dim lngProdID2 As Long, lngValue12 As Long, lngValue22 As Long
            Dim AccountHash2 As String, TempString2 As String
           
           
                    DecodeCDKey varCDkey2, modDatabaselProdID2, modDatabaselValue12, modDatabaselValue22
                   
                    lngProdID2 = CLng(modDatabaselProdID2)
                    lngValue12 = CLng(modDatabaselValue12)
                    lngValue22 = CLng(modDatabaselValue22)
                    AccountHash2 = String(5 * 4, vbNullChar)
                    c AccountHash2, Servers, lngProdID2, lngValue12, lngValue22, modDatabaselkey
                   
                    InsertDWORD Len(varCDkey2)
                    InsertDWORD CLng(modDatabaselProdID2)
                    InsertDWORD CLng(modDatabaselValue12)
                    InsertDWORD &H0
                    InsertNonNTString AccountHash2
                End If
Else
    Dim strKeyHash As String, lngProdID3 As Long, lngValue3 As Long
    Call DecodeHashCDKey(vCDkey, modDatabaselkey, Servers, lngProdID3, lngValue3, strKeyHash)
   
    InsertDWORD modDatabaselkey
    InsertDWORD version
    InsertDWORD Checksum
   
    If vProduct = "PX3W" Then
        InsertDWORD &H2
    Else
        InsertDWORD &H1
    End If
   
    InsertDWORD &H0
    InsertDWORD Len(vCDkey)
    InsertDWORD lngProdID3
    InsertDWORD lngValue3
    InsertDWORD &H0
    InsertNonNTString strKeyHash
   
    If vProduct = "PX3W" Then
        Dim strKeyHash2 As String, lngProdID4 As Long, lngValue4 As Long
        Call DecodeHashCDKey(varCDkey2, modDatabaselkey, Servers, lngProdID4, lngValue4, strKeyHash2)
        InsertDWORD Len(varCDkey2)
        InsertDWORD lngProdID4
        InsertDWORD lngValue4
        InsertDWORD &H0
        InsertNonNTString strKeyHash2
    End If

End If
        InsertNTString ExeInfo
        InsertNTString "WebBot"
        SendPacket 81
   
If ExeInfo = "" Then
MsgBox "Error Logging in! If this problem persists then please reopen the bot!"
frmMain.Winsock.Close
Else
AddC QBColor(8), "MPQ Name: " & mpqname
AddC QBColor(8), "Hash Data: " & Hash
AddC QBColor(8), "EXE Information: " & ExeInfo
End If


End Sub
[/code]
April 26, 2005, 7:26 PM
Ringo
Shouldnt Somthing be dim'ed as long
and that somthing =  c(Accounthash, Servers, lngProdID, lngValue1, lngValue2, modDatabaselkey) ?


@edit@
and modDatabaselkey should be valued (with tick count for example)

@Re edit@
try this:
Public Declare Function GetTickCount Lib "kernel32.dll" () As Long

[code]

If vProduct <> "3RAW" And vProduct <> "PX3W" Then
    Dim ASDF as long
    modDatabaselkey = gettickcount()
    Call DecodeCDKey(vCDkey, modDatabaselProdID, modDatabaselValue1, modDatabaselValue2)
    lngProdID = CLng(modDatabaselProdID)
    lngValue1 = CLng(modDatabaselValue1)
    lngValue2 = CLng(modDatabaselValue2)
    Accounthash = String(5 * 4, vbNullChar)
    ASDF = c(Accounthash, Servers, lngProdID, lngValue1, lngValue2, modDatabaselkey)
    If Result = 0 Then
       AddC vbRed, "Hashing Failed"
       frmMain.Winsock.Close
    Exit Sub
    End If
        InsertDWORD modDatabaselkey
        InsertDWORD version
        InsertDWORD Checksum
       
       If varProduct = "PX2D" Then
            InsertDWORD 2
       Else
            InsertDWORD 1
       End If
       
        InsertDWORD 0
        InsertDWORD Len(vCDkey)
        InsertDWORD CLng(modDatabaselProdID)
        InsertDWORD CLng(modDatabaselValue1)
        InsertDWORD 0
        InsertNonNTString Accounthash
         If varProduct = "PX2D" Then
            Dim ASDF2 as long
            Dim modDatabaselProdID2 As Double, modDatabaselValue12 As Double, modDatabaselValue22 As Double
            Dim lngProdID2 As Long, lngValue12 As Long, lngValue22 As Long
            Dim AccountHash2 As String, TempString2 As String
           
           
                    Call  DecodeCDKey(varCDkey2, modDatabaselProdID2, modDatabaselValue12, modDatabaselValue22)
                   
                    lngProdID2 = CLng(modDatabaselProdID2)
                    lngValue12 = CLng(modDatabaselValue12)
                    lngValue22 = CLng(modDatabaselValue22)
                    AccountHash2 = String(5 * 4, vbNullChar)
                    ASDF2 = c(AccountHash2, Servers, lngProdID2, lngValue12, lngValue22, modDatabaselkey)
                   
                    InsertDWORD Len(varCDkey2)
                    InsertDWORD CLng(modDatabaselProdID2)
                    InsertDWORD CLng(modDatabaselValue12)
                    InsertDWORD &H0
                    InsertNonNTString AccountHash2
                End If
Else
[/code]
April 26, 2005, 7:32 PM
UserLoser.
Try removing the "Call InitNLS", don't ever have that.  It's bad
April 26, 2005, 9:21 PM
gentoolinux
[quote author=UserLoser link=topic=11374.msg110046#msg110046 date=1114550502]
Try removing the "Call InitNLS", don't ever have that.  It's bad
[/quote]

I replaced what i had with the code u pasted and it still isnt working... It still gives me an invalid CDKey.

Userloser the removing InitNLS didnt work either
April 26, 2005, 9:28 PM
R.a.B.B.i.T
Try using something that isn't Feanor's TCPConnection class.  That thing sucks hard.
April 26, 2005, 10:47 PM
gentoolinux
[quote author=rabbit link=topic=11374.msg110063#msg110063 date=1114555642]
Try using something that isn't Feanor's TCPConnection class.  That thing sucks hard.
[/quote]

Well It's what I started with and it's what I would like to finish with on this project.
April 27, 2005, 1:02 AM
LoRd
Perhaps if you started your project from scratch, you would actually understand what you're doing and maybe you'd know enough by then to solve your problem without even needing our help.  The members on this forum are glad to help those who are actually willing to try, but when you show little or no effort, then you're on your own.
April 27, 2005, 2:08 AM
Yegg
If that's really Feanor's TCP Connection Class (I havn't seem it in a while) I suggest that you do stop using it. A much more (I hate to say this) better bot to copy from (or to learn from, start out making a bot from) is FloodBot by LordZero. It has a pretty basic connection that uses the clients hash files. It can connect to star, sexp, w2bn, and d2dv. I think that the code is a bit messy (Visual Basic 6 is like that...) but I think you can figure out how to make it work. I would suggest using that rather than Feanor's code.
April 27, 2005, 2:11 AM
UserLoser.
[quote author=gentoolinux link=topic=11374.msg110047#msg110047 date=1114550905]
[quote author=UserLoser link=topic=11374.msg110046#msg110046 date=1114550502]
Try removing the "Call InitNLS", don't ever have that.  It's bad
[/quote]

I replaced what i had with the code u pasted and it still isnt working... It still gives me an invalid CDKey.

Userloser the removing InitNLS didnt work either
[/quote]

Well, it's not related to your cdkey issue, sort of, but it's just something you don't need.  Feel free to delete all the "Declare Functions" for "NLS.dll", too
April 27, 2005, 2:17 AM
Yegg
I'm beginning to think that the source he is using came from a bot where the creator had no clue what they were doing. Declaring NLS functions with Feanor's TCP Connecting Class...
April 27, 2005, 2:27 AM
Quarantine
Properly written code in Visual Basic if properly maintained won't become messy. Why don't we see if he actually wants to persue this and if so give him the required steps to create his own bot from scratch? I mean with the wide selection of utilities availible to bot developers (BnetDocs, BNLS, etc..) after he knows some fundemental functions in Visual Basic then the rest is just trial and error.
April 27, 2005, 2:30 AM
Yegg
I agree.
April 27, 2005, 2:36 AM
gentoolinux
Me using Feanors TCP Connection is the same as people using bnls....

*off-topic*
and has anyone heard of gosuhost.com? anyone know if its good or not?

(sorry about that)
April 28, 2005, 2:02 AM
Myndfyr
[quote author=gentoolinux link=topic=11374.msg110230#msg110230 date=1114653775]
Me using Feanors TCP Connection is the same as people using bnls....

*off-topic*
and has anyone heard of gosuhost.com? anyone know if its good or not?

(sorry about that)
[/quote]

I disagree.  Using BNLS, you still have to learn how to implement a binary protocol -- two, in fact.  The only thing that you're not learning is how to implement X-SHA-1, SRP, and/or CD key decoding.

Re: gosuhost.com: I automatically deduct credibility from anyone who would name a brand by something "elite," so this host would already rank as high in my opinion as someone who made "uberhost," "leethost," "1337host," or an equivalent.  The guy on the front ("Michael, manager") is not depicted in the "About Us" picture, which tells me that they're just using some random pictures of people (not necessarily bad -- the software company I worked for did it too -- just not lending credibility).  Hosting page: grammar issues.  IMO if you're a respectable company, you'll hire someone to check over your advertising media.  Order page: different color scheme, not the same branding as the rest of the site.  Leads me to believe that they are using a third party; yet again, not necessarily bad, but it's not going to make me want to throw money at them; there is also no way to navigate back aside from the "Back" button of my browser.  The "Legal Statement" and "Privacy Policy" links aren't actually links.  There is absolutely no information about what platform the servers use.

The biggest problems I see, though, are that 1.) the page talks about game servers, but I see no game servers offered.  I see web servers offered, but not talked about; and 2.) There is this "GosuHost GDX Technology" that isn't explained anywhere.  I Google'd it, because if it's that powerful it must be talked about SOMEWHERE, but my search turned up with nothing.  Beyond that, I know little about the company, but the owner used to be a forum member here who was banned for being an asshole.

I've been using WebStrike solutions (www.webstrikesolutions.com) forever; their prices for web hosting are reasonable IMO, and they're very good about getting support within a couple hours.
April 28, 2005, 3:23 AM
gentoolinux
[quote author=MyndFyre link=topic=11374.msg110246#msg110246 date=1114658631]
[quote author=gentoolinux link=topic=11374.msg110230#msg110230 date=1114653775]
Me using Feanors TCP Connection is the same as people using bnls....

*off-topic*
and has anyone heard of gosuhost.com? anyone know if its good or not?

(sorry about that)
[/quote]

I disagree.  Using BNLS, you still have to learn how to implement a binary protocol -- two, in fact.  The only thing that you're not learning is how to implement X-SHA-1, SRP, and/or CD key decoding.

Re: gosuhost.com: I automatically deduct credibility from anyone who would name a brand by something "elite," so this host would already rank as high in my opinion as someone who made "uberhost," "leethost," "1337host," or an equivalent.  The guy on the front ("Michael, manager") is not depicted in the "About Us" picture, which tells me that they're just using some random pictures of people (not necessarily bad -- the software company I worked for did it too -- just not lending credibility).  Hosting page: grammar issues.  IMO if you're a respectable company, you'll hire someone to check over your advertising media.  Order page: different color scheme, not the same branding as the rest of the site.  Leads me to believe that they are using a third party; yet again, not necessarily bad, but it's not going to make me want to throw money at them; there is also no way to navigate back aside from the "Back" button of my browser.  The "Legal Statement" and "Privacy Policy" links aren't actually links.  There is absolutely no information about what platform the servers use.

The biggest problems I see, though, are that 1.) the page talks about game servers, but I see no game servers offered.  I see web servers offered, but not talked about; and 2.) There is this "GosuHost GDX Technology" that isn't explained anywhere.  I Google'd it, because if it's that powerful it must be talked about SOMEWHERE, but my search turned up with nothing.  Beyond that, I know little about the company, but the owner used to be a forum member here who was banned for being an asshole.

I've been using WebStrike solutions (www.webstrikesolutions.com) forever; their prices for web hosting are reasonable IMO, and they're very good about getting support within a couple hours.
[/quote]

But no offense but I dont trust sending my information to an unknown server before battle.net.

I already bought that from gosuhost and the setup was less than 15 minutes, the domain worked about 20 minutes after i purchased it
April 28, 2005, 10:11 AM
Ban
Unknown server?

Do you have ANY clue what the hell you are doing? You don't even know what the code in the bot 'you wrote' with the 'help of a friend' does. BNLS is a KNOWN server that is maintained by the Valhallalegends. I wouldn't call that uknown, especially considering the insane amount of traffic it gets (don't know the numbers, perhaps someone can post them?).

[quote]
I dont trust sending my information
[/quote]

You do know that there are a great many things you don't need to do with BNLS, correct? Although I myself have never implemented it, I do beleive that it is possible to request only the version byte. Correct me on that if I am mistaken.

If you want to learn to program a bot, I suggest you start from scratch. That way you know exactly what your code is doing, and can find out what, if anything, goes wrong.
April 28, 2005, 2:51 PM
Yegg
Also, BNLS is in no way untrustworthy. I highly doubt that the two people who host BNLS, Yoni and Skywing, would ever have even a slightest interest in your accounts or other info.
April 28, 2005, 7:29 PM
raylu
I think I know the problem: His packet log shows he's connecting with W2BN, but there is no W2BN code in his code (sorry if there is, I kinda skimmed the topic).
April 30, 2005, 2:10 AM
Ringo
Call DecodeCDKey(vCDkey, modDatabaselProdID, modDatabaselValue1, modDatabaselValue2)

If vCDkey is pointed at a W2BN cdkey then it does.

Edit:
And gentoolinux just out of interest, how many W2BN cdkeys have you tryed?
Also is 'Servers' getting your server value before that code handles 0x51?
April 30, 2005, 2:59 AM
LoRd
[quote author=raylu link=topic=11374.msg110490#msg110490 date=1114827051]
I think I know the problem: His packet log shows he's connecting with W2BN, but there is no W2BN code in his code (sorry if there is, I kinda skimmed the topic).
[/quote]

Both Diablo II and WarCraft II use the same CD-Key decoding functions.
April 30, 2005, 8:05 AM

Search