Dosbox debug – Desproteger Lure of the Temptress

En otras entradas sobre dosbox debug (no tendrás normalmente la ventanita de debug en tu dosbox habitual si no lo compilas con ./configure –enable-debug=heavy) hemos visto como podíamos modificar los valores en memoria para que nos valiese cualquier clave en Larry 2: https://mierda.tv/2018/01/24/dosbox-debug-larry-2-y-los-telefonos-en-ram-a-pelo/ pero en esta ocasión vamos a utilizar el debug de dosbox para añadir NOPS (90), es decir, sustituir por ejemplo un jnp o un je por un nop.

Luego explicaré con más detalle el tema
. Ahora vamos a ver como saltarnos la protección del juego.

Primero bajas el juego sin desproteger:

$ wget "https://mierda.tv/descargas/lure.tar.gz"
$ tar xfvz lure.tar.gz
$ cd lure

Y ejecutamos dosbox en modo debug (en mi caso uso dosbox-x pero con dosbox tradicional si lo has compilado con el debug habilitado tendría que funcionar igualmente):

$ dosbox-x -c "keyb sp" -c "mount c ." -c "c:" -c "lure.exe" -no-console

Veremos el juego en pantalla. Podemos entrar en pantalla completa o salir de esta usando alt+enter.

Si todo va bien estarás en modo debug y se quedará congelada la ventana de dosbox. En este momento y aunque ahora mismo no sabemos el motivo bien tendríamos que pegar esto:

SM 086F:3C40 90 90 3C 30 72 F3 3C 3A 73 EF 25 0F 00 8B D8 A0
SM 086F:3C3C 90 90 3C 08 90 90 3C 30 72 F3 3C 3A 73 EF 25 0F
SM 086F:3C44 90 90 3C 3A 73 EF 25 0F 00 8B D8 A0 54 18 05 03
SM 086F:31F6 90 90 EC A8 08 75 FB 5A 07 58 C3 80 26 37 07 DF
SM 086F:4A77 90 90 C7 06 41 39 00 00 C3 89 26 D2 39 C7 06 D4

pulsamos alt+pausa (o si no te chuta lo mismo si tienes un teclado de portátil puedes usar alt+fn+pausa)

Si todo va bien podemos regresar al juego pulsando F5 y cuando llega la hora de que nos pida que metamos un código para desproteger el juego pues pulsamos cualquier tecla e ingresará sin ningún problema en el juego e incluso sin que tengamos que meter código alguno.

Nota: El propio juego si se ve algo raro no pasa nada. Le damos al menú del juego en la parte de arriba y le decimos “reiniciar juego”. El juego se verá bien.

Explicación:

El juego nos muestra una pantalla en la que nos indica que pulsemos una tecla y luego escribamos el código correspondiente para acceder al juego:

Si pulsamos una tecla o hacemos click con el ratón nos permitirá escribir el código.

No escribiremos nada. En ese momento es cuando activamos el debug.

En la ventana de debug vamos dando a f11 hasta que se atasca en loop que se ve en la pantalla en la parte de código:

Si queremos saltar usamos f10 y luego seguimos con f11 hasta estar en 086F:3C3C .

Otra forma para verlo es usar:

D 086F:3C3C
C 086F:3C3C

Veremos en la parte superior (la de data) los datos y el código en la parte de código (code).

Usaríamos SM para hacer set memory y alterar el contenido. En este caso:

SM 086F:3C3C 90 90 3C 08 90 90 3C 30 72 F3 3C 3A 73 EF 25 0F

Lo que hacemos es convertir el je (el salto) por un nop. De esa forma cuando llega a esa parte sigue en vez de saltar (en este caso $-5).
Podemos seguir el proceso una vez hemos seteado el nop para ver con f11 y f10 (cuando se nos atasque por ejemplo en el loop) que realmente sigue ignorando el jp o el jnp que encontremos.

Con f5 de vez en cuando vamos comprobando que todo va bien y seguimos hasta que se salte el loop.

Se quedará cmp comprobando lo que le de la gana. En este caso no vamos a alterar valores para que encaje siempre como hicimos con larry 2. En este caso usamos el típico “skip” con NOP y nos saltamos las validaciones.

Dosbox mola :).

Si no te apetece el proceso y solo quieres jugar el juego:

O si te apetece hacerlo de otra forma usando dosbox debug ;).

Saludos cordiales.

Deja un comentario