Microsoft CD Key Authentication Revealed! (You won't see this on their MSDN Level 2 CD!) You are Visitor Number since Feb. 8th, 1996 If you are interested in other information similar to the Microsoft CD Key, please check out the rest of Damaged Cybernetics! Abstract This document will cover details about what makes up a Microsoft CD Keys and how they are authenticated. With the rush in of Windows'95, Microsoft has implemented a CD Key to either help foil piracy or to track their software thoughout the world. It was brought to my attention by a Microsoft Production Manager that they use this for their regional tracking, and also for product codes. They also understand the weakness of the key. I find this a little bothersome. Here are some points... * If you do not supply a valid CD key for the retail version of a Microsoft Product CD, you cannot install it. On the Upgrade version of the CD, you can click Ignore, but you need an older version of Windows installed. * If this key is based on regional tracking, then how come there are people on the other side of the United States that have the same first 3 digits as several of my CDs? Is Microsoft so power hungry now that they are tracking by continent now? * If this key is used for product codes, then how come my Plus Pack and Visual Basic Professional have the same first 3 digits? How does this seperate the two products? If you can contribute any information about the Microsoft CD Key please inform us!. Also we do acknowledge there is a small problem concerning with the authentication of the OEM keys. In some of our more extensive tests we discovered that the first 5 digits of the OEM key are actualy being used now. In either case, the CD Key is really a hassle on my part. I either lose the cases or my kids eat the sticker. (Also those glossy cardboard sleeves are even worse.) Great, how am I supposed to reinstall my software when my system crashes? Also if this IS being used as a scheme to foil piracy. It doesn't work, because one can easily copy the CD-Key as easy as the CD. C Source code is provided to show how a key can be authenticated. CD Key Details * CD Keys are interchangable between Microsoft Products employing this scheme. This means you can take your Windows'95 CD Key and reuse it on your Microsoft Office Professional CD or any other Microsoft CD!. This scheme also works with Developer Level 2 and Level 3 CDs. * CD Keys contain alphanumeric characters, however the REAL key only contains numbers (0..9). * There are 2 types of keys being used at the moment. One is for the retail version of the product, the other is for OEM bundled software. The retail version of the key is split into two sets of characters. The first set is not needed in the authentication process. The second set contains nothing but digits. This is the set we need to authenticate. It is unknown what the first set characters are used for. Here is an example of a retail version of the key. The OEM version of the key is similar to the retail version, but with more alphanumeric characters This key is broken up into 4 sets of alphanumeric characters. The first, second and fourth sets are not used in the authentication process. The second set of characters contains the string 'OEM'. The third set of characters are all digits and is the set that used to authenticate the key. The first 3 digits of the third set must be ZERO, the last 4 digits can vary. It is unknown what the first and fourth set of characters are used for. Here is an example of an OEM version of the key. * In both types of keys, the order is not relative! (the part of the key that needs to be authenticated that is). Meaning that you can rearrange the order of the digits any way you like too and it would still produce a valid Microsoft CD Key! This is because the authentication is based on the SUM of the digits. Key Authentication The algorithm to the authentication routine is a VERY simple one. One can write a small amount of source code that will randomly generate valid CD Keys. Lets use the following keys and follow the steps to authenticate them. Our Microsoft Retail CD Key: 666-0077700 Our Microsoft OEM CD Key: 66666-OEM-0007770-66666 * Strip off the first set of characters in the retail version. In the OEM version strip off the first, second and fourth character sets. We are left with the following: Retail CD Key: 0077700 OEM CD Key: 0007770 (Note: first 3 digits MUST be ZERO!) * From here on out both keys can follow the same authentication algorithm. We do this by adding each digit one after another until we produce a sum. Retail CD Key: 0 + 0 + 7 + 7 + 7 + 0 + 0 = 21 OEM CD Key: 0 + 0 + 0 + 7 + 7 + 7 + 0 = 21 * Now take the result modulus by 7. If result of the modulus operation is 0 then the key is consider to be a authentic Microsoft CD Key. Note that the algorithm is MODULUS, not DIVISION! Why? A key of 0000000 is considered to be authentic! If we follow the steps in authenticating this key, we would get a value of zero. A division by 0 will generate an exception as where a modulus will not. 21 MOD 7 = 0 © 1995 Damaged Cybernetics >