Windows XP’s “FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8” was legendary. Windows 95 was even worse

Recently we knew the origin of the legendary Windows XP activation key. That famous set of digits (“FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8“) that many of us end up memorizing became a singular demonstration that attempts to protect software do not always go well. Microsoft knows a lot about this, because its first systems to protect its operating systems and applications were even worse.

The rule of “Let it be divisible by 7”. Microsoft tried to protect illegal copies of Windows 95 with a system that varied depending on the type of license. That system, however, was really weak. One of the most common licenses was the “CD Key”, which asked us for a code made up of 10 characters and two segments:

  1. XXX: could be anything from 000 to 998, but with one curious exception: the three numbers could not be the same (111, 222, …).
  2. XXXXXXX: The second segment is where a simple algorithm came into action. For the number to be valid, it was enough that it was divisible by seven. Not only that: you could enter 0. Microsoft ended up prohibiting entering all zeros, but it didn’t matter: the rule of being divisible by 7 was still fulfilled.

That made coming up with compliant combinations very easy. One of the most used CD Keys was 000-000007, but 111-1111111 was also widely used

Office 97 used one more digit. Instead of 10 digits, Office used 11 in two segments.

  1. XXXX: could be anything from 0001 to 9991. There were no prohibited numbers but the fourth digit had to be the third + 1 or 2. If the result was greater than 9, it became 0 or 1.
  2. XXXXXX: the same requirement as the previous one, although at least in Office 97 it did not seem to be necessary for it to comply with being divisible by 7.

Thus, two keys that could work were 0001-0000007 and 1112-1111111.

Things got complicated (a little) with the OEM keys. If our computer arrived with Windows 95 preinstalled, it could be that instead of a CD Key what we had to enter was an OEM Key. These keys consisted of four segments:

  1. XXXXX: represented the date the key was printed. The first three digits could be anything between 001 and 366, and the last two were the year, which could range from 95 to 03. For example, a key with 19296 as the first segment means that it would have been printed on July 10, 1996. If you wanted maximum compatibility with Windows XP, it was ideal to use 02 as the last two digits.
  2. OEM: The second segment simply had those immutable letters.
  3. XXXXXXX: the third segment had to be divisible by 7, but with another small condition: the first digit had to always be zero.
  4. XXXXX: The last segment was completely random, and could be any number of the appropriate length.

Thus, to comply with validity we had keys such as 00100-OEM-0000007-00000, but it was possible to use any other such as 06900-OEM-0694207-80085.

How was all this revealed? You could figure out how Windows 95’s key system worked if you’d seen enough of them. However, what really allowed us to understand this entire algorithm was the leak of the Windows NT 4.0 code, which is in fact available at Archive.org. This allowed some users to reveal both on video as in detailed articles How was it possible to discover the “check_retail_key) function of Windows NT 4.0, which was part of the system’s setupx.dll file.

In Xataka | Nostalgia does not disappear. So much so that there are people developing a new web browser for Windows XP

Leave your vote

Leave a Comment

GIPHY App Key not set. Please check settings

Log In

Forgot password?

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.