Criptoanálisis de un sistema DRM de video propietario de 1999. Recupera 61 videos de lucha libre encriptados del CD-ROM WCW Internet Powerdisk mediante análisis binario estático y ataque de texto plano conocido.
Criptoanálisis de un sistema DRM de video propietario de 1999, recuperando 51 minutos de medios perdidos mediante análisis binario estático y ataque de texto plano conocido.

Fotograma de un partido recuperado de "CyberRing". Los luchadores de WCW fueron filmados sobre pantalla azul y compuestos en una arena CGI con efectos de fuego. Así se veía el entretenimiento interactivo en 1999.
El WCW Internet Powerdisk fue un CD-ROM promocional distribuido con la revista WCW en 1999. Incluía 61 videoclips (destacados de combates, perfiles de luchadores, intros de programas) cifrados con un sistema propietario llamado PAVENCRYPT, desarrollado por una empresa llamada UIT.
La reproducción requería el ULI Player incluido, que obtenía claves de descifrado por archivo desde un servidor remoto en tiempo de ejecución. Cuando la infraestructura del servidor de UIT dejó de funcionar alrededor del año 2000, el contenido se volvió permanentemente inaccesible. El reproductor solo mostraba:
"Clave de descifrado no encontrada en la base de datos del servidor"
No existen claves en el disco. Nunca se publicó documentación del formato. UIT parece haberse disuelto por completo. Durante 25 años, el contenido ha sido imposible de reproducir.
Nuestros hallazgos de ingeniería inversa están corroborados por el acuerdo de licencia original de 1999 presentado ante la SEC, que describe el "Programa Generador de Claves del Lado del Servidor" creando "claves de seguridad basadas en el tiempo".
Los videos recuperados están disponibles en Internet Archive:
61 clips con un total de 51 minutos y 20 segundos, convertidos a H.264/AAC MP4. Contenido original producido por WCW (Turner Broadcasting). La propiedad intelectual ahora pertenece a WWE.
# 1. Extract the ISO
7z x WCW_R1.ISO -oiso_contents
# 2. Decrypt all PAV files to MPEG-1
python decrypt_pav.py
# 3. Convert to MP4 (optional, requires ffmpeg)
python convert_mp4.py
Requisitos: Python 3.6+ (sin paquetes de terceros). ffmpeg para la conversión opcional a MP4.
Cada archivo .PAV está cifrado con un cifrado de resta de bytes de clave repetitiva:
plaintext[i] = (ciphertext[i] - key[i % key_length]) mod 256
Las claves son únicas por archivo, de 8 a 24 bytes de ASCII imprimible, generadas aleatoriamente en el momento de la codificación. La rutina de descifrado se encuentra dentro de PavSource.ax, un filtro de origen DirectShow de 24 KB creado en abril de 1999:
mov cl, [ebx+edx+0x3C] ; load key[key_index]
sub byte ptr [eax], cl ; plaintext = ciphertext - key_byte
Sin fuerza bruta. Sin emulación. Sin servidor. Las claves se recuperan matemáticamente:
Los archivos MPEG-1 terminan con bytes conocidos. La cola del archivo contiene relleno 0xFF seguido del Código de Fin de Programa (00 00 01 B9).
Una clave repetitiva sobre una constante produce un patrón repetitivo. La cola cifrada tiene periodicidad detectable igual a la longitud de la clave.
La recuperación de la clave es algebraica. Dado el texto plano conocido, podemos derivar key[i] = (ciphertext[i] - 0xFF) mod 256.
La verificación es estructural. La salida descifrada debe comenzar con un Código de Inicio de Paquete MPEG-1 válido (00 00 01 BA).
Todo el ataque se ejecuta en segundos sin necesidad de entrada externa.
┌─────────────────────────────────────────────────┐
│ Magia "PAVENCRYPT" (10 bytes) │
├─────────────────────────────────────────────────┤
│ Vista previa MPEG-1 sin cifrar (16-32 KB) │
│ 2 fotogramas de video, sin audio (miniatura) │
├─────────────────────────────────────────────────┤
│ Flujo de programa MPEG-1 cifrado │
│ Clave de resta por archivo, 8-24 bytes │
│ │
│ Video: 320×240, 30fps, ~1.29 Mbps │
│ Audio: MP2, 44.1 kHz, mono, 64 kbps │
└─────────────────────────────────────────────────┘
61 clips que abarcan el roster de WCW de finales de 1999:
| Categoría | Cantidad | Destacados |
|---|---|---|
| Grabaciones de combates | 9 | Hogan vs. Goldberg, Hogan vs. Macho Man, combates CyberRing |
| Biografías de luchadores | 13 | Goldberg, Sting, Hogan, DDP, Flair, Nash, Steiner |
| Intros de programas | 5 | Monday Nitro, Thunder, Surge |
| Segmentos de historias | 8 | Saga narrativa del "Hacker" |
| Promociones y mercancía | 9 | Camisetas de luchadores y anuncios de mercancía |
| Otros segmentos | 17 | Nitro Girls, combates Nasty Boys, Rey Mysterio, Konnan |
decrypt_pav.py Desencriptador: recuperación de clave + descifrado a MPEG-1
convert_mp4.py Transcodificador: conversión por lotes de MPEG-1 a H.264/AAC MP4
analyze_pav.py Inspector: análisis no destructivo de la estructura PAV
PavSource.ax Binario original del filtro DirectShow (con ingeniería inversa)
UlPlayer.exe Aplicación original del reproductor ULI
FINDINGS.md Informe técnico: especificación del formato, desensamblado, las 61 claves
TIMELINE.md Metodología de ingeniería inversa, paso a paso
docs/PRIMARY_SOURCES.md Documento original de 1999 presentado ante la SEC que documenta el sistema de cifrado
Esta herramienta funciona con cualquier archivo en formato PAVENCRYPT. ULI Player fue licenciado a múltiples distribuidores de contenido a finales de la década de 1990. El ataque se generaliza a cualquier cifrado de clave repetitiva aplicado a un formato de archivo con patrones de bytes predecibles, lo que describe la mayoría de los esquemas DRM propietarios de esa época.