# SafeDisc

SafeDisc es un sistema de protección de copia de CD/DVD para aplicaciones (típicamente, videojuegos) sobre Microsoft Windows, desarrollado por Macrovision Corporation con la intención de prevenir la piratería de software, así como evitar la duplicación con dispositivos de grabación domésticos o profesionales y la ingeniería inversa. Desde su nacimiento, ha habido varias versiones de SafeDisc, cada una con el objetivo de hacer más difícil la copia. La versión actual (enero de 2007) recibe el nombre de SafeDisc Advanced.
Si bien esta protección evita de forma efectiva que usuarios domésticos creen copias funcionales de CD o DVD, es bastante fácil de superar para crackers experimentados. Las versiones más recientes (2.9+), a diferencia de las primeras, se esfuerzan en hacer más complejo el método de duplicación o la aplicación de ingeniería inversa, requiriendo grabadores específicos capaces de reproducir los "sectores débiles" y formatos de datos característicos de SafeDisc.
Versiones antiguas de SafeDisc eran fácilmente evitadas a través del uso de unidades virtuales con software como DAEMON Tools y Alcohol 52%. Actualmente, SafeDisc detecta este software y bloquea la ejecución si son utilizados, lo cual obliga a utilizar herramientas accesorias si se desea seguir este método para poder enmascarar dichas aplicaciones, como por ejemplo CureRom.
Todas los discos protegidos con SafeDisc contiene un fichero.ICD, un formato cifrado que se utiliza para asegurar que el CD cargado es original. UnSafeDisc es una utilidad que evita y descifra la protección abriendo el fichero.ICD, descifrándolo y convirtiéndolo en un fichero ejecutable. Sin embargo, cada programa necesita un parche específico para habilitar la funcionalidad completa.

## Historial
### SafeDisc (V1)

Los CD protegidos con SafeDisc V1 pueden reconocerse localizando los siguientes ficheros en el propio disco:
* 00000001.TMP
* CLCD16.DLL
* CLCD32.DLL
* CLOKSPL.EXE
* DPLAYERX.DLL
Además de la existencia de dos ficheros <GAME>.EXE y <GAME>.ICD (donde <GAME> es el nombre del juego). El fichero.EXE es tan solo un cargador que descifra y carga el ejecutable protegido en el fichero cifrado.ICD. La versión inicial de SafeDisc era fácil de evitar y duplicar.

### SafeDisc (V2)

Los siguientes ficheros deberían existir en cualquier CD original:
* 00000001.TMP
* 00000002.TMP (no siempre)
El cargador (<GAME>.EXE) se integra ahora en el ejecutable principal, haciendo el fichero.ICD obsoleto. Además, el fichero CLOKSPL.EXE deja de existir.
Para comprobar la versión de SafeDisc2, utilizando un editor hexadecimal se busca la cadena "BoG_ *90.0&!! Yy>" en el fichero <GAME>.EXE, tras la cual aparecen tres enteros largos sin signo, que son los números de versión, subversión y revisión. Al hacer una copia de seguridad, aparecen errores de lectura entre los sectores 822-10255.
La protección cuenta también con sectores "débiles", que provocan problemas de sincronización con determinadas grabadoras de CD. Las firmas digitales aún están presentes en esta versión.
Tras la introducción de SafeDisc Version 2, los "sectores débiles" fueron introducidos, haciendo más complicado realizar una copia del disco, si bien esto no tiene efectos sobre las imágenes de discos montadas con programas como DAEMON Tools. Además, la versión 2.50 añadió detección ATIP, haciendo imposible de usar una copia en una unidad a menos que se utilizara un software para enmascarar dicha detección (CloneCD, por ejemplo, tiene esta capacidad). A partir de la versión 2.90, son necesarias grabadoras que soporten la escritura de sectores débiles.

### SafeDisc (V3)

SafeDisc V3 utiliza una clave para cifrar el ejecutable principal (EXE o DLL) y crea una firma digital que se añade al CD-ROM/DVD-ROM. El tamaño de la firma varía entre 3 y 20 MB dependiendo de la calidad del cifrado. El proceso de autenticación lleva de 10 a 20 segundos.
Esta versión es capaz de cifrar varios ejecutables sobre uno o varios medios, utilizando la misma clave y añadiendo la firma digital a cada medio. También es compatible con unidades virtuales siempre que el disco original esté disponible. Una vez autenticado el disco, la ejecución puede continuar sin problemas mientras el software virtual no esté prohibido.

### SafeDisc (V4)

La última versión de SafeDisc es la 4. En noviembre de 2006, incluso los DVD que usan la versión 4.70 pueden grabarse con la última versión de Alcohol 120%, que incorpora RMPS v2.

## Vulnerabilidades

SafeDisc instala su propio controlador de dispositivo en el ordenador del usuario, llamado secdrv.sys. Además de activar la protección de copia, concede acceso total al hardware de la máquina a la aplicación. Esto supone un agujero de seguridad potencial, ya que virus u otro malware podrían utilizar el controlador para ganar privilegios en el sistema, incluso si la aplicación está ejecutándose desde una cuenta limitada.