Hace poco conocimos el origen de la legendaria clave de activación de Windows XP. Aquel célebre conjunto de dígitos («FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8«) que muchos acabamos memorizando se convirtió en una singular demostración de que los intentos por proteger el software no siempre salen bien. Microsoft sabe mucho de eso, porque sus primeros sistemas para proteger sus sistemas operativos y aplicaciones eran aún peores.

La regla de «Que sea divisible por 7». Microsoft trató de proteger las copias ilegales de Windows 95 con un sistema que variaba según el tipo de licencia. Aquel sistema, no obstante, era realmente débil. Una de las licencias más comunes era la «CD Key», que nos pedía un código formado por 10 caracteres y dos segmentos: 

  1. XXX: podía ser cualquier cosas desde 000 a 998, pero con una excepción curiosa: los tres números no podían ser iguales (111, 222, …). 
  2. XXXXXXX: el segundo segmento es en el que entraba en acción un sencillo algoritmo. Para que el número fuese válido, bastaba con que fuera divisible por siete. No solo eso: podías poner el 0. Microsoft acabó prohibiendo poner todo ceros, pero daba igual: la regla de ser divisible por 7 seguía cumpliéndose.

Eso hizo que sacar combinaciones que cumplieran fuera muy fácil. Una de las CD Keys más utilizadas fue 000-000007, pero también se usaba mucho 111-1111111

Office 97 usaba un dígito más. En lugar de 10 dígitos, en Office se usaba 11 en dos segmentos. 

  1. XXXX: podía ser cualquier cosa desde 0001 hasta 9991. No había números prohibidos pero el cuarto dígito debía ser el tercero + 1 o 2. Si el resultado era mayor que 9, pasaba a ser 0 o 1. 
  2. XXXXXX: el mismo requisito que el anterior, aunque al menos en Office 97 no parecía necesitarse que cumpliese lo de ser divisible por 7. 

Así, dos claves que podían funcionar eran 0001-0000007 y 1112-1111111.

La cosa se complicaba (un poco) con las claves OEM. Si nuestro ordenador llegaba con un Windows 95 preinstalado, podía ser que en lugar de un CD Key lo que tuviésemos que introducir fuese una clave OEM (OEM Key). Estas claves constaban de cuatro segmentos:

  1. XXXXX: representaban la fecha en la que se imprimió la clave. Los primeros tres dígitos podían ser cualquier cosa entre 001 y 366, y los dos últimos eran el año, que podía ir de 95 a 03. Por ejemplo, una clave con 19296 como primer segmento significa que se habría imprimido el 10 de julio de 1996. Si se quería máxima compatibilidad con Windows XP, lo ideal era usar 02 como dos últimos dígitos.
  2. OEM: el segundo segmento simplemente tenía esas letras inmutables.
  3. XXXXXXX: el tercer segmento debía ser divisible por 7, pero con otra pequeña condición: el primer dígito siempre debía ser cero.
  4. XXXXX: el último segmento era totalmente aleatorio, y podía ser cualquier número con la longitud adecuada.

Así, para cumplir la validez teníamos claves como 00100-OEM-0000007-00000, pero era posible utilizar cualquier otra como 06900-OEM-0694207-80085.

¿Cómo se desveló todo esto? Uno podía llegar a deducir el funcionamiento del sistema de claves de Windows 95 si había visto las suficientes. Sin embargo lo que realmente permitió comprender todo ese algoritmo fue la filtración del código de Windows NT 4.0, que está de hecho disponible en Archive.org. Eso permitió que algunos usuarios desvelaran tanto en vídeo como en detallados artículos cómo se logró descubrir la función «check_retail_key) de Windows NT 4.0 que formaba parte del fichero setupx.dll del sistema.

En Xataka | La nostalgia no desaparece. Tanto es así que hay gente desarrollando un nuevo navegador web para Windows XP

Ver fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *