• Welcome to Valhalla Legends Archive.
 

Starcraft Keys

Started by Guest, February 16, 2003, 01:29 PM

Previous topic - Next topic
|

Lenny

Out of curiosity, what product has a product value of 2 anyway?
The Bovine Revolution
Something unimportant

Live Battle.net:

WARNING: The preceding message may have contained content unsuitable for young children.

MysT_DooM

0001600833174 has a product value of 2

questionΨ  is it true that there are 2 keys for every public / private value?


vb6, something about that combination of numbers and letters is sexy

UserLoser

Quote from: Lenny on January 03, 2006, 04:05 PM
Here is the figure generated from the data UL sent me (thanks UL).

As you can see, the graph shows that the private values range from 0-1000 when invalid keys are included.  From I have now, it's fair to conclude that if the private value does not fall in the 300-400 range or the 600-700 range, it's not valid to Bnet.


Also, to correct my earlier post, I have found that there is a unique public value assigned to every cdkey (or at least there is for the csv file dxoigmn posted) (thanks dxoigmn).  But this unique public value only spans certain ranges, the lines in dxoigmn's figure are actually blocks which represent those number ranges.  Because the resolution of the x axis is so high, they only appear to be lines.  My figure shows one of those 20 blocks.


Hmm? My list has a CdKey for every private value, so that draws a line through the idea about 300-400 and 600-700 range, unless I am misunderstanding what you mean.  Also it ranges 0-999.  All those CdKeys should be valid, too.

Tazo

something about that last post tells me ringo has a lot of cdkeys  :P

Eric

There is no sister key.

Eric

#140
Quote from: Ringo on January 04, 2006, 11:45 AM
Quote from: Lord[nK] on January 04, 2006, 11:37 AM
There is no sister key.
Really?

3000617  708  02  0703720295112
3000617  782  01  3703720235814
3000618  136  02  0703480275315
3000618  503  01  3703080225010
3000619  051  02  0703590205518
3000619  234  01  3703790255316



Those keys have no direct relation with each other than the fact that they share the same public values thus it is not a brother/sister relationship.

Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?

Eric

#141
Quote from: Ringo on January 04, 2006, 12:23 PM
Quote from: Lord[nK]
Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?
Yes, about 1% of all valid keys so far. (about 200k+)

I've never seen a valid StarCraft key with a product value of 0x02 in all my years of work with Battle.net-related projects (has anyone else?) which is why I find this odd.  I wonder if these keys are even in production?

GoaL

Ok, a few things. First, you all will think I am a complete newb, but I'd like to think I'm not, but can someone explain to me what exactly the public / private / product values are, and what they are for? Also, if you were to take all the possible keys (like a list ran threw the installer) Then put them into a skatter plot, but arranging them by the 3 things that determine them, the numbers are so great and random, wouldn't that just give you like a non-ending dot-to-dot?

UserLoser

Quote from: Lord[nK] on January 04, 2006, 12:26 PM
Quote from: Ringo on January 04, 2006, 12:23 PM
Quote from: Lord[nK]
Here's a question: Have all the keys that you've found to have a product ID of 0x02 been obtained through bruteforce?
Yes, about 1% of all valid keys so far. (about 200k+)

I've never seen a valid StarCraft key with a product value of 0x02 in all my years of work with Battle.net-related projects (has anyone else?) which is why I find this odd.  I wonder if these keys are even in production?

I have seen many.  I have many.

Arta

Quote from: Ringo on January 04, 2006, 11:45 AM
Quote from: Lord[nK] on January 04, 2006, 11:37 AM
There is no sister key.
Really?

3000617  708  02  0703720295112
3000617  782  01  3703720235814
3000618  136  02  0703480275315
3000618  503  01  3703080225010
3000619  051  02  0703590205518
3000619  234  01  3703790255316



Actually, this is a significant find. It's good evidence that the public->private algorithm is product-dependent, even when using the same key schema.

Lenny

Well now that we know that a unique product/public value exists for EVERY SINGLE cdkey that is valid on Bnet we can also guess why this is so.

9 million copies of Starcraft were sold, and for each product value only 10 million keys are available.  Once Blizzard realized they were nearing their limit they decided to start using product 2 to increase their cdkey supply to 20 million, more than enough to answer demand.  This would explain why product 2 values are much harder to find.


Also given this info, the worst success rate you could possibly ever have for ANY cdkey generator would be 1 cdkey for every 1000 keys.
The Bovine Revolution
Something unimportant

Live Battle.net:

WARNING: The preceding message may have contained content unsuitable for young children.

GoaL

I've discovered something, I was told product values are only 01 and 02, But I have a key (2159492072321). Once valid, but I got it muted or banned, i forget. But it does not contain 01 or 02. Explain?

l2k-Shadow

#147
Key: 2159492072321

Product Value: 01
Public Value: 193039
Private Value: 136

You must decode the CD-Key to generate its product, public, and private values.

Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

MysT_DooM

What would be the code for opening a file of cdkeys then taking the data from that file and putting it through the decode function and then printing that data out into another file..
this is what i got so far


Private Sub Command1_Click()
cd.ShowOpen
msg = cd.FileName
If msg = "" Then MsgBox "Pick A File to Decode": Exit Sub
Me.Cls
Me.Command1.Enabled = False
Me.Caption = "Loading..."
Gen = True
Open cd.FileName For Append As #1

Top:

Dim Decode As String
Decode = Left(ScKeyDecode(cd.FileName), 12)
cd.ShowSave
msg = cd.FileName
Open cd.FileName For Append As #2
Print #2, Decode
Close #2

End Sub





vb6, something about that combination of numbers and letters is sexy

l2k-Shadow

I'm in a good mood today so I'll code it for you since I can't make much sense out of your code:



'Written by l2k-Shadow
Option Base 0
Option Explicit
Option Compare Text

Public Sub Keys()
Dim InFile As String, tStr As String
    CD.ShowOpen
    InFile = CD.FileName
    If InFile <> vbNullString Then
        Dim FF As Integer, FF2 As Integer, Product As Long, PublicValue As Long, PrivateValue As Long
        FF = FreeFile
        Open App.Path & "\OutFile.txt" For Output As #FF
        FF2 = FreeFile
        Open InFile For Input As #FF2
            Do Until EOF(FF2)
                Line Input #FF2, tStr
                If tStr <> vbNullString Then
                    Call DecodeSCKey(tStr, Product, PublicValue, PrivateValue)
                    Print #FF, Product & Space(3) & PublicValue & Space(3) & PrivateValue
                End If
            Loop
        Close #FF2
        Close #FF
    End If
    MsgBox "Finished!"
End Sub

Public Sub DecodeSCKey(ByVal CDKey As String, ByRef Product As Long, ByRef PublicValue As Long, ByRef PrivateValue As Long)
Dim tKey(12) As String, tStr As String, tLng As Long, hashKey As Long, pos As Integer, i As Integer
    'Fill array
    For i = 0 To 12
        tKey(i) = Mid$(CDKey, i + 1, 1)
    Next i
    'Verify Key
    tLng = 3
    For i = 0 To 11
        tLng = tLng + (tKey(i) Xor (tLng * 2))
    Next i
    If tKey(12) = (tLng Mod 10) Then
        'Shuffling
        pos = &HB
        For i = &HC2 To 7 Step -&H11
            tStr = tKey(pos)
            tLng = i Mod &HC
            tKey(pos) = tKey(tLng)
            tKey(tLng) = tStr
            pos = pos - 1
        Next i
        'Final Values
        hashKey = &H13AC9741
        For i = 11 To 0 Step -1
            tStr = tKey(i)
            If Asc(tStr) <= 55 Then
                tKey(i) = (((hashKey And &HFF) And 7) Xor tStr)
                hashKey = hashKey \ 8
            ElseIf Asc(tStr) < 65 Then
                tKey(i) = ((i And 1) Xor tStr)
            End If
        Next i
        tStr = Join(tKey, vbNullString)
        Product = CLng("&H" & Left$(tStr, 2))
        PublicValue = CLng(Mid$(tStr, 3, 7))
        PrivateValue = CLng(Mid$(tStr, 10))
    End If
End Sub


Hope it helps.
Quote from: replaced on November 04, 2006, 11:54 AM
I dunno wat it means, someone tell me whats ix86 and pmac?
Can someone send me a working bot source (with bnls support) to my email?  Then help me copy and paste it to my bot? ;D
Já jsem byl určenej abych tady žil,
Dával si ovar, křen a k tomu pivo pil.
Tam by ses povídaj jak prase v žitě měl,
Já nechci před nikym sednout si na prdel.

Já nejsem z USA, já nejsem z USA, já vážně nejsem z USA... a snad se proto na mě nezloběj.

|