Valhalla Legends Forums Archive | Battle.net Bot Development | Re: [VB6] Decoding and hashing the D2XP Cd-key

AuthorMessageTime
Racial
Do i decode it and hash it the same way as every other key? I'm using BNCSUtil and i'm doing this and receiving a Invalid Key error, then i get iped :(.
[code]
Private Sub Send0x51()
   
    InsertDWORD lngTick
    InsertDWORD Version
    InsertDWORD Checksum
   
    If Product = "D2XP" Then
        InsertDWORD &H2 'Send 2 cd-keys
    Else
        InsertDWORD &H1 'Send 1 cd-key
    End If
   
    HashCdkey1 Cdkey, hash, lngProductID, lngValueNum1
    dblProductID = CLng(lngProductID)
    dblValueNum1 = CLng(lngValueNum1)
   
    '1st cd-key
    InsertDWORD &H0
    InsertDWORD Len(Cdkey)
    InsertDWORD CLng(dblProductID)
    InsertDWORD CLng(dblValueNum1)
    InsertDWORD &H0
    InsertNonNTString hash
   
    'Still need to hash 2nd cd-key then send
    If Product = "D2XP" Then
            HashCdkey1 CDKeyXP, hash2, lngProductID2, lngValueNum2
            dblProductID2 = CLng(lngProductID2)
            dblValueNum2 = CLng(lngValueNum2)
           
        InsertDWORD Len(CDKeyXP)
        InsertDWORD CLng(dblProductID2)
        InsertDWORD CLng(dblValueNum2)
        InsertDWORD &H0
        InsertNonNTString hash2
    End If
   
    InsertNTString EXEInfo
    'I send the rest after
end sub



Private Function HashCdkey1(ByVal Cdkey As String, ByRef H As String, ByRef productVal As Long, ByRef publicVal As Long) As Boolean
    On Error GoTo hErr
    Dim kd As Long, HashLength As Long, hash As String
    kd = kd_create(Cdkey, Len(Cdkey))
    If (kd = -1) Then
        AddChat vbRed, "Cannot initialize cdkey decoder!"
        Form1.BNCS.Disconnect
        Exit Function
    End If
    HashLength = kd_calculateHash(kd, lngTick, ServerToken)
    If (HashLength = 0) Then
        AddChat vbRed, "Cannot calculate cdkey hash length!"
        Form1.BNCS.Disconnect
        Exit Function
    End If
    If kd_isValid(kd) = 0 Then
        AddChat vbRed, "Cdkey did not pass installer check!"
        Form1.BNCS.Disconnect
        Exit Function
    End If
    hash = Space$(HashLength)
    kd_getHash kd, hash
    H = hash
    productVal = kd_product(kd)
    publicVal = kd_val1(kd)
    kd_free kd
    Exit Function
hErr:
    AddChat vbRed, "Error: Bot, HashCdkey"
End Function

[/code]
June 27, 2008, 8:30 PM
Barabajagal
That's some trippy code you got there... why the long to double to long?

First things to check: Is the CDKey coming in correctly (no dashes or spaces or anything?). What's the Product Value return for the key?
June 27, 2008, 11:30 PM
Racial
[quote author=Andy link=topic=17541.msg178686#msg178686 date=1214609403]
That's some trippy code you got there... why the long to double to long?

First things to check: Is the CDKey coming in correctly (no dashes or spaces or anything?). What's the Product Value return for the key?
[/quote]
Thanks for commenting lol, i'm not very well at coding yet but thats how i did my hashing and sending, it works so i didn't feel like changing it.
As for the CDKey comign in correctly it does infact go into the decoding process with no spaces or dashes and same with hashing but i will be sure to paste the product value for both d2dv and d2xp keys
June 28, 2008, 3:54 PM
Racial
Ok i did it, when i debug it i get 6 for the Diablo II key and 10 for the Diablo II Lord of Destruction cd-key
June 28, 2008, 3:59 PM
Racial
ok, i get 6 for both but it won't login
August 7, 2008, 4:45 PM
Barabajagal
Uh, no... D2 is supposed to be 6, D2XP is supposed to be 10. You were right before.
August 7, 2008, 9:12 PM

Search