martes, 21 de junio de 2011

Protecciones absurdamente simples

Hay sistemas de protección que resultan eficaces de puro simples. Por ejemplo, el utilizado por X... para distribuir sus juegos online. Ahora que la plataforma en cuestión ha cambiado de sistema, creo que podré comentar, sin peligro de exponerme a las iras de X..., unos cuantos detalles de algo que me maravilló cuando, por casualidad, me di cuenta de cómo funcionaba.

Sin duda, X... quería distribuir demostraciones de juegos de modo que el cliente pudiera probarlos durante un tiempo. Necesitaba un sistema homogéneo de protección, algo que se pudiera unir de modo simple al programa. Cualquier programador hubiera pensado en adjuntar una biblioteca al código fuente, pero, puesto que algunos de los juegos no eran ejecutables sino archivos flash o de otros formatos, es posible que esta solución se descartase por inviable.

Así que X... optó por algo más sencillo. Un segundo ejecutable que sustituiría al primero. Ese segundo ejecutable extraía de algún lugar de su interior el programa original, lo grababa como archivo oculto y lo ejecutaba como "proceso hijo" durante el tiempo determinado por X...

Después de este tiempo, el proceso era "matado" y el programa original borrado, así que el usuario no se daría cuenta ni por asomo de que había estado usando el programa original, en lugar de una versión limitada por tiempo.

Pero X... seguramente no tuvo en cuenta dos cosas: la curiosidad de los usuarios y el hecho de que los ordenadores se cuelgan con relativa facilidad. Así que fue después de un cuelgue de mi ordenador durante una partida a uno de los juegos de X... cuando, investigando los motivos, encontré un ejecutable marcado como archivo oculto en la carpeta del juego. Y así supe que aquel juego estaba diseñado para "craquearse" a sí mismo.

Supongo que no habré sido el único en descubrirlo, porque la última vez habian cambiado el sistema. En lugar de limitar el tiempo de ejecución, los juegos de X... se dedican ahora a mostrar anuncios.

O puede que el cambio de estrategia se haya debido a otro factor, que es el mismo que me hacía a mí jugar a aquellos juegos en un principio: si el tiempo está limitado, pero tienes cientos de clones y secuelas del mismo juego, te da lo mismo no poder jugar más que unas horas a cada uno de ellos: al fin y al cabo, siempre puedes borrarlo e instalar el siguiente.