Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
014:software [d/m/Y H:i] – [Los artífices de una desprotección] miguel | 014:software [d/m/Y H:i] (actual) – [El sistema «TURBO» en clave] miguel | ||
---|---|---|---|
Línea 27: | Línea 27: | ||
==== Sistema Turbo ==== | ==== Sistema Turbo ==== | ||
- | El sistema Turbo: un sistema roto. | + | {{ : |
El sistema Turbo es el que se ha hecho más famoso de todos, hasta el punto de que, hoy día, se hace una distinción entre los programas que incorporan este sistema y los que no. Para entenderlo mejor, se ha convertido un poco en el coco del mercado de software. El sistema, en realidad, se basa en una doble protección: | El sistema Turbo es el que se ha hecho más famoso de todos, hasta el punto de que, hoy día, se hace una distinción entre los programas que incorporan este sistema y los que no. Para entenderlo mejor, se ha convertido un poco en el coco del mercado de software. El sistema, en realidad, se basa en una doble protección: | ||
- | Dentro del sistema de protección, | + | |
- | Sin embargo y, a pesar de todo esto, nuestros amigos de Zaragoza fueron dando con las claves, una por una, hasta lograr desenmascarar el misterio, y no só- | + | Dentro del sistema de protección, |
- | lo eso, además, según ellos, han logrado mejorar el sistema de protección Turbo. | + | |
- | Cuando se pusieron en contacto con nosotros, mantuvimos una larga conversación con uno de los componentes del grupo, el cual insistió en ocultar su identidad. Durante el transcurso de nuestra | + | Sin embargo y, a pesar de todo esto, nuestros amigos de Zaragoza fueron dando con las claves, una por una, hasta lograr desenmascarar el misterio, y no sólo eso, además, según ellos, han logrado mejorar el sistema de protección Turbo. |
- | cer con él lo que le venga en gana, siempre y cuando no lo utilice con fines comerciales. | + | |
+ | Cuando se pusieron en contacto con nosotros, mantuvimos una larga conversación con uno de los componentes del grupo, el cual insistió en ocultar su identidad. Durante el transcurso de nuestra | ||
Hay que terminar insistiendo en la necesidad imperiosa de abaratar el software, como única medida que acabe, de una vez por todas, en el pirateo. Cuando deje de resultar rentable dejará de existir. | Hay que terminar insistiendo en la necesidad imperiosa de abaratar el software, como única medida que acabe, de una vez por todas, en el pirateo. Cuando deje de resultar rentable dejará de existir. | ||
+ | |||
A continuación publicamos una carta de Pablo, Santiago y Emilio en la que se dan las pistas necesarias para que los más entendidos descifren el misterio, y los menos entendidos comiencen a interesarse por el tema. | A continuación publicamos una carta de Pablo, Santiago y Emilio en la que se dan las pistas necesarias para que los más entendidos descifren el misterio, y los menos entendidos comiencen a interesarse por el tema. | ||
- | EL SISTEMA | + | |
+ | ==== El sistema | ||
Intentamos describir telegráficamente, | Intentamos describir telegráficamente, | ||
- | a) A nivel de basic. | + | |
- | b) A nivel de código máquina. | + | * A nivel de basic. |
+ | | ||
Los puntos en que se basa son los siguientes: | Los puntos en que se basa son los siguientes: | ||
- | 1.°) El BASIC cargador contiene enmascarada la rutina de carga rápida, junto con los datos de carga del programa. | + | |
- | 2.°) La rutina de carga representa la última línea (aparente) del programa BASIC. Su número de línea es superior a 9999, por lo que no se ejecuta. | + | - El BASIC cargador contiene enmascarada la rutina de carga rápida, junto con los datos de carga del programa. |
- | 3.°) La rutina de carga está enmascarada con la función OR exclusive, de modo que cada octeto original se obtiene de hacer el OR exclusive entre dos octetos adyacentes del código enmascarado. | + | |
- | 4.°) La rutina específica para desenmascarar la rutina de carga y trasladarla a su zona de ejecución, ocupa la zona de variables del BASIC. Su comienzo está en la dirección a la que apunta la variable VARS. | + | |
- | 5.°) La rutina de desenmascaramiento está, a su vez, enmascarada mediante una utilización especial del registro indexado IY. Este registro se utiliza normalmente como registro doble de 16 bits. Los códigos son los mismos que los de los registros H y L, salvo con un FD delante de cada código. | + | |
- | 6.°) Todas las líneas BASIC tienen número de línea 0 y PAPER 0, INK 0, ocultos o implícitos en cada lí- | + | |
- | nea. Ello los hace invisibles en el listado. | + | |
- | 7.°) Las líneas BASIC no aportan nada esencial, salvo la 4.a, que contiene oculta, en los códigos | + | |
- | 8.°) La puesta en marcha de todo el proceso, tiene lugar al finalizar la ejecución del BASIC, momento en el que en lugar de imprimir en pantalla el mensaje O.K., salta automáticamente al comienzo de la rutina de desenmascaramiento. | + | |
- | 9.°) La rutina de carga rápida tiene protecciones diversas en su ejecución. En distintos puntos de la misma, comprueba los resultados de la carga y salta a la dirección 0 de la memoria ROM si no son los esperados. Antes de saltar al comienzo del juego, se borra ella misma. | + | |
- | El programa | + | |
- | a) No tiene BASIC. Es inútil buscar ningún listado. | + | El programa |
- | b) Sólo tiene definidas las variables del sistema que necesita el juego, como la de BORDER; por ejemplo. | + | |
- | c) Al no estar definida la zona BASIC (puede estar definida pero vacía), el programa es inmanejable desde el BASIC; sólo puede examinarse con un monitor de código máquina o similar (Acondicionar el BASIC supondría destruir parte del juego). | + | * No tiene BASIC. Es inútil buscar ningún listado. |
+ | | ||
+ | |