Skip to content
56K

56K

La web de Fanta

Menu
  • Unix/Linux
  • Cacharreo
  • Games
  • Streaming
  • Notas
  • /dev/null
Menu

Trasteando con juegos viejos – 0003 – Ralentizando para desproteger Mortal Kombat

Posted on 22/09/202116/01/2023 by fanta

En 1993 sacaron diferentes versiones del Mortal Kombat para MSDOS. Una de ellas «sin protección».

La que nos interesa es la que he marcado en el listado en negrita.

  • 1993-11-25 – beta – no copy protection – setup.bat (kombat.exe -s) – no sound at all – ESC para salir
  • 1993-12-13 – Virgin – Copy protection – setup.exe – ESC game overs – ALT-Q para salir
  • 1993-12-17 – UltraTech/Hi Tech Expressions – Copy protection – no setup.exe (F10) -ESC game overs – ALT-Q para salir
  • 1993-12-31 – UltraTech/Hi Tech Expressions – Copy protection – no setup.exe (F10) – ESC game overs – ALT-Q para salir

 

Vamos a trastear con este juego un poco. Para ello vamos a utilizar dosbox-x. Si no dispones de dosbox-x puedes compilarlo con modo debug tal y como se indica en este post.

 

 

Descargar material

Descargar el manual: 56k.es/downloads/mortal_kombat_manual.pdf
Descargar el juego: fanta.56k.es/00-Games/00-pc/08-Peleas/MortalKombat1.tar.gz

 

Disfrutar simplemente del juego

Puede hacerse así:

$ wget "http://fanta.56k.es/00-Games/00-pc/08-Peleas/MortalKombat1.tar.gz"
$ tar xfvz MortalKombat1.tar.gz 
$ cd MORTAL/
$ dosbox -x MK.EXE

Es necesario disponer de dosbox-x o dosbox para jugarlo. No obstante la versión que he subido tiene protección y para jugarlo hemos de jugar un poquito antes con el modo debug.

 

Ejecutar el juego ralentizado

Esto es un truco bueno. Se trata de ejecutar el juego pero con los requisitos mínimos y con una velocidad de ciclos de CPU baja.
Este juego nada más ejecutarlo nos pedirá que escribamos una una palabra que se encuentra en alguna página del manual. El tema es que ejecutado de forma normal llegaremos demasiado rapido al input de los datos.

 

Ejemplo para lanzarlo ralentizado y que tarde:

$ dosbox-x -fastlaunch -set "cputype = 386" -set "cycles = fixed 1000" -set "machine = vga" -set "memsize = 4" MK.EXE

Aquí un vídeo en el que se ve como va mucho más lento accediendo a la zona que nos interesa, la zona en la que hemos de meter la palabra para desproteger el juego:

https://56k.es/wp-content/uploads/2021/03/dosbox-ralentizado.mp4

 

Entrar en modo Debugger

Desde Dosbox-x se puede acceder al modo Debug pinchando el en menú superior sobre «Help», luego en «Debuging options» y finalmente en «show debugger».
Otra opción es presionando «Alt+Pause». Con esto lo que hacemos es congelar la ejecución del juego o programa.

 

 

En la consola en la que hemos lanzado dosbox-x veremos algo como lo que se muestra en la siguiente captura:

 

 

Allí vamos a poder escribir comandos (abajo está el PROMPT parpadeando esperando que le metas algo como HELP).
Podemos ir moviéndonos por «Register Overview», «Data view», «Code Overview» con el tabulador.

 

Posición en una zona determinada

 

Con C y D vamos a poder posicionarnos en una zona determinada en «Data view», «Code Overview» .

Con C lo veremos en Code Overview y con D lo veremos en Data view. C y D :).

 

Un ejemplo que podemos copiar y pegar allí es el siguiente:

C 0170:001D5451
D 0170:001D5451

Eso nos llevará a lo que se ve en la captura:

 

Lo interesante es ese 75 05 en hexadecimal. Ese lo vamos a cambiar por un 90 90 (el 90 es un NOP) para que en vez de hacer un JNE (salta si no es igual) no lo haga y siga.

 

«Seteando» que es gerundio

Con SM vamos a poder cambiar justo esos valores indicando la posición:

SM 0170:001D5451 90
SM 0170:001D5452 90

Y con F5 o escribiendo INT 3 vamos a continuar con la ejecución normal del juego.

Si todo va bien dará igual que metamos como palabra porque vamos a entrar si o si .

 

Crackeando el juego para que siempre se salte la protección

Esto se puede hacer así:

$ wget "http://fanta.56k.es/00-Games/00-pc/08-Peleas/MortalKombat1.tar.gz"
$ tar xfvz MortalKombat1.tar.gz 
$ cd MORTAL/
$ printf "0005f465: 90" | xxd -r4 - MK.EXE
$ printf "0005f466: 90" | xxd -r4 - MK.EXE
$ dosbox -x MK.EXE

Vamos a explicarlo un poquito. Primero buscamos «75 05 41 42» dentro del ejecutable MK.EXE. Así por ejemplo:

$ xxd -g 1 MK.EXE | grep -i "75 05 41 42"

 

Una vez localizada la posición vamos a poder ir a ver su contenido mejor así por si cambiamos los valores:

$ xxd -g 1 MK.EXE | grep -i "0005f460:"

Finalmente alteramos los valores de esos bytes así:

$ printf "0005f465: 90" | xxd -r4 - MK.EXE
$ printf "0005f466: 90" | xxd -r4 - MK.EXE

 

Y ya tenemos nuestro primer juego crackeado.

En futuros posts veremos más cositas interesantes e intentaré poner ejemplos que se entiendan algo mejor. De este lo importante es quedarse con que podemos ralentizar los juegos con dosbox y dosbox-x y que eso nos ayudará a poder trabajar con ellos de forma más cómoda a la hora del trasteo.

 

Disfruta del juego amigo/a/e :).

Saludos cordiales.

1 thought on “Trasteando con juegos viejos – 0003 – Ralentizando para desproteger Mortal Kombat”

  1. Café Ole dice:
    23/09/2021 a las 10:47

    Alucinante

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Comentarios recientes

  • fanta en i3wm en el ordenador del trabajo con 3 pantallas
  • Punk en i3wm en el ordenador del trabajo con 3 pantallas
  • Twicsy en Eliminar kernels viejos en redhat y liberar espacio en /boot
  • fanta en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • Jorge en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • fanta en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • Camilo en Capturar el audio de Firefox en archivos ogg en GNU+Linux
  • eovoltio en Mastodon.madrid se apaga el 12 de Octubre
  • fanta en Time Machine – Las Nuevas Aventuras de la Maquina del Tiempo sobre GNU+Linux
  • Alberto Salvia Novella en Time Machine – Las Nuevas Aventuras de la Maquina del Tiempo sobre GNU+Linux
©2023 56K | Built using WordPress and Responsive Blogily theme by Superb