Bueno, después de un tiempo trabajando en él estoy contento de subir una nueva versión de protector.
Programa para proteger cargadores Basic.
Con respecto a mis versiones viejas decir que esta vez lo he hecho todo en Basic (la idea me la dio un programa francés, que la verdad, ni vi que opciones incluía ni nada, igual es mas de lo mismo).
Incluye dos formas de proteger:
-Desde la primera linea del programa a la que decidas
-Desde una linea hasta otra
Cada una de las opciones usa formas distintas de protección.
Incluye una tercera opción de protección manual en la que vas eligiendo manualmente los valores a cambiar y una ultima opción que es para investigar los valores de cabecera de linea de un cargador. Esta última opción viene por duplicado, una en el programa principal (en Basic) y otra externa que es Basic compilado con Typhon (y anda que no me mareó pues desconocía que el Typhon no admitía el comando HEX$ y en su lugar usaba un comando propio que me hizo recomponer todo el código y visualizar de forma diferente a la del Basic).
También se incluye un fichero Basic leeme con la documentación.
Si lo probáis, encontráis algún error o mejora comentarlo, estoy abierto a cualquier tipo de sugerencia.
Yo por de pronto he recordado la función PRINT USING que creo me liberará de unos incómodos y largos IFs, pero la verdad, después de estar mas de 25 años sin programar en Amstrad para mi ha sido todo un reto.
Espero que os guste y pueda ser útil.
Protector 3
Re: Protector 3
Bueno, me enfrenté hace poco a un programa protegido en Basic, así que voy ha hacer una pequeña guía de como desprotegerlo usando este programa.
El programa en cuestión es el
Brian Clough's Football Fortunes
Cuando haces in CAT/DIR solo ver un fichero, el cargador, el resto están en modo oculto, esto no es un problema, cualquier monitor de disco, incluso el CP/M, puede ser usado para hacerlos visibles.
Cuando cargas el cargador y haces un LIST solo ves las primeras seis líneas, todas REM, así que, primero ya sabemos que el cargador no está protegido con la opción ,P cuando se graba (la puedes eliminar fácilmente con el programa REMPRO de ODDJOB) y que debe haber mucho mas de lo que parece.
La sospecha es que la sexta línea tenga una longitud superior a lo que le toca, por lo que no permite ver el resto del listado.
Manos a la obra. Por un lado tenemos el juego, por otro la aplicación protector3, una puede estar en A y la otra en B, por ejemplo, o bien alternamos discos.
Sino tenemos en memoria el cargador lo cargamos con LOAD
Una vez en memoria pasamos o cambiamos el disco que tenga el protector3 y hacemos
RUN "VER
Veremos una serie de datos de las líneas del programa y como sospechamos, si vemos la longitud de la línea 6 esta es completamente ilógica.
Si vemos los valores de sus direcciones de tamaño
&0201 y &0202
Veremos que la primera tiene un valor de 6, algo hasta cierto punto lógico, pero la segunda dirección (el byte alto) tiene una valor irreal.
Lo vamos a poner a 0 a ver
POKE &202,0
Y hacemos un LIST
Voila, tenemos ya todo el listado.
En breve espero mandarle el juego traducido a Miguel para que lo cuelgue en la Web
El programa en cuestión es el
Brian Clough's Football Fortunes
Cuando haces in CAT/DIR solo ver un fichero, el cargador, el resto están en modo oculto, esto no es un problema, cualquier monitor de disco, incluso el CP/M, puede ser usado para hacerlos visibles.
Cuando cargas el cargador y haces un LIST solo ves las primeras seis líneas, todas REM, así que, primero ya sabemos que el cargador no está protegido con la opción ,P cuando se graba (la puedes eliminar fácilmente con el programa REMPRO de ODDJOB) y que debe haber mucho mas de lo que parece.
La sospecha es que la sexta línea tenga una longitud superior a lo que le toca, por lo que no permite ver el resto del listado.
Manos a la obra. Por un lado tenemos el juego, por otro la aplicación protector3, una puede estar en A y la otra en B, por ejemplo, o bien alternamos discos.
Sino tenemos en memoria el cargador lo cargamos con LOAD
Una vez en memoria pasamos o cambiamos el disco que tenga el protector3 y hacemos
RUN "VER
Veremos una serie de datos de las líneas del programa y como sospechamos, si vemos la longitud de la línea 6 esta es completamente ilógica.
Si vemos los valores de sus direcciones de tamaño
&0201 y &0202
Veremos que la primera tiene un valor de 6, algo hasta cierto punto lógico, pero la segunda dirección (el byte alto) tiene una valor irreal.
Lo vamos a poner a 0 a ver
POKE &202,0
Y hacemos un LIST
Voila, tenemos ya todo el listado.
En breve espero mandarle el juego traducido a Miguel para que lo cuelgue en la Web
Re: Protector 3
Muy interesante, así que a un programa BASIC le cambias la longitud de la línea modificando el byte que la indica, el LIST sale truncado.
Lo que se discurría en el pasado para evitar pirateos
Lo que se discurría en el pasado para evitar pirateos
Salu2,
Arta
Arta
Re: Protector 3
Si.
Se las ingeniaban que no veas.
A mi había dos que me gustaban, una por su sencillez.
Si las primeras líneas de un programa basic tienen como número 0 (cero) no aparecen en el listado, eso sí, con un simple renum se desprotege.
La otra, mi favorita, era ocultar una o varias líneas intermedias, por ejemplo, iba de 10 en 10 los números de línea, añadía la línea 35 que era la que había que proteger y a la línea 30 le daba como longitud la suya más la de la línea 35.
Viola, veías perfectamente todo el programa menos la 35.
No obstante hay una forma que solo he visto una vez y tengo traspapelado (quería investigar aunque imagino por donde van los tiros) y era un cargador basic que al hacer load, cargaba, pero cuando haces list te da un "unknown command" o algo así
Se las ingeniaban que no veas.
A mi había dos que me gustaban, una por su sencillez.
Si las primeras líneas de un programa basic tienen como número 0 (cero) no aparecen en el listado, eso sí, con un simple renum se desprotege.
La otra, mi favorita, era ocultar una o varias líneas intermedias, por ejemplo, iba de 10 en 10 los números de línea, añadía la línea 35 que era la que había que proteger y a la línea 30 le daba como longitud la suya más la de la línea 35.
Viola, veías perfectamente todo el programa menos la 35.
No obstante hay una forma que solo he visto una vez y tengo traspapelado (quería investigar aunque imagino por donde van los tiros) y era un cargador basic que al hacer load, cargaba, pero cuando haces list te da un "unknown command" o algo así
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro
La Comunidad Española |