This is soooo kool!

From: Death to Smoochy (FoneBone_at_Snerd.Blort)
Date: 09/30/03


Date: Tue, 30 Sep 2003 15:47:45 GMT


There is a Win XP keygen on Kazaa that generates 45 keys when you run it,
and since it is DOS based, you can redirect the output into a file. I
printed out that file and counted by hand the number of characters that are
letters and the number that are digits.

Out of 1125 characters, there are 297 digits, which is an average of 6.61
digits per key. But randomness predicts that 10/36 should be digits and
26/36 should be letters, which would be a total of 315 digits in all 45
keys, or 6.94 digits per key.

So the average differs very slightly from perfect randomness, in the amount
of 6.94 - 6.61 characters per key, or 0.33. Each key contains 1/3 of one
character of actual, useful information.

Each character has 36 possible states (10 digits and 26 letters), and 1/3
of 36 is 13. So the amount of information in each key is 1 state's worth
out of a possible total of 13 states.

Information theory expresses measurable quantities of information in terms
of 'bits,' and it takes 4 bits to encode numbers up to 16, so each key
contains 13/16 of 4 bits, or 3.25 bits.

But the calculation that expresses the amount of data as 1 state out of 13
is more meaningful. Microsoft once used a 7 digit key, whose checksum was
evaluated modulo 7, before they upgraded their key algorithms to the 25
character keys.

That was the same as each key containing information equivalent to 1 state
out of 7, which means that microsoft's new algorithm is a mod 13 checksum,
evaluated on all the letters and numbers in the key. And the keygen
writers (Crack Mania) used a random number generator to generate the first
24 characters in each key, after which they simply appended whatever
character makes the checksum's modulus equal to 13.

I haven't tested this (I'm afraid of what'll happen if I succeed!), but I'd
love to know if anybody sees any faults in my reasoning. Any comments
would be appreciated.

Does anybody know if there are any key calculation algorithms *not* based
on the modulus of the key's checksum??



Relevant Pages

  • Re: Effective/Proper use of "regular expressions"
    ... parenthesized elements in your regular expression, ... from the set (unless the first character in the bracket expression is ... The range 0-9 is the set of all digits, ... a literal period followed by one or more digits". ...
    (comp.lang.tcl)
  • Re: inputting the ephemerides (SOLUTION!)
    ... the user manual input of control data, or the use of a control record, ... Somewhere along the way, I've lost the last float, which Terence calls F3. ... C STOPS ON TRAILING BLANK OR CHARACTER ... C NOW ONLY DIGITS ...
    (comp.lang.fortran)
  • Re: inputting the ephemerides (SOLUTION!)
    ... Defining the rules for field parsing has to match all the ... these are placed in the character string CWK). ... string stops the parsing and GOs to statement 7. ... Here the string CWK of sign, digits and a decimal point if present are ...
    (comp.lang.fortran)
  • Re: Reading from very large file
    ... Second, markspace specifically asked for hard numbers and pointed out that adjectives like "extremely big" are not terribly meaningful, yet you ignored that advice and the request and simply provided another vague adjective, "immense", without any indication of what your target performance is. ... You mentioned that "reading each character with a RandomAccessFile is too slow". ... At that point your search for digits is nearly all memory-bound. ...
    (comp.lang.java.programmer)
  • Re: inputting the ephemerides (SOLUTION!)
    ... Defining the rules for field parsing has to match all the ... these are placed in the character string CWK). ... string stops the parsing and GOs to statement 7. ... Here the string CWK of sign, digits and a decimal point if present are ...
    (comp.lang.fortran)