Autor Tema: El Capitán Trueno: La Espada del Toledano - Aventura gráfica  (Leído 22835 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Scr34m

  • Intel Pentium III
  • ***
  • Mensajes: 816
  • País: sc
  • Fecha de registro: Septiembre 12, 2021, 11:52:52 am
    • Ver Perfil
    • Mis Aportes
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #30 en: Diciembre 19, 2024, 21:37:26 pm »
Buenas de nuevo,

De nada, un placer compartir estos ratos con vosotros.

A mi me gusta pensar que algo no está bien medicado si no se cubren todas las posibilidades, por eso vine a dejar mi granito de arena. Esa es mi forma de “reparar” estas reliquias, que no es ni mejor ni peor que otra.

Como comenté, para el primer error posible, en este caso no afectaría. Respecto al segundo, no es cuestión de que tenga o no sentido, sino que te puede ocurrir por el simple hecho de copiar los archivos del CD a la carpeta de instalación.

Respecto la nueva solución que das, efectivamente funcionaría. Pero ¿que ocurriría si en alguna otra parte del código volviera a comprobar si está el CD? Que quizás solo funcionaría para el arranque y fallaría en otra comprobación, dependiendo de cómo estuviera hecha.

Lo más completo, bajo mi humilde opinión, sería que fuera como fuese, siempre detectara el CD y a ser posible, que ni se llegara a llamar a las APIs que no son necesarias.

De nuevo, esta sería mi forma de hacerlo.
Solo intentaba aportar algo de conocimiento, que no se malinterprete.

Salu2
« Última modificación: Diciembre 19, 2024, 21:41:08 pm por Scr34m »


Scr34m
"Es de bien nacido ser agradecido"

Password de mis aportes :zip:: AbandonSocios

Desconectado wave

  • Altair 8800
  • *
  • Mensajes: 37
  • País: es
  • Fecha de registro: Julio 11, 2016, 11:47:51 am
    • Ver Perfil
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #31 en: Diciembre 19, 2024, 21:44:18 pm »
Eso sería lo ideal, y si alguien quiere dedicarle ese tiempo bienvenido sea.
También saldríamos de dudas si alguien se pasa todo el juego.
Hasta entonces es lo que hay, la protección de Schrödinger ;)



Desconectado Scr34m

  • Intel Pentium III
  • ***
  • Mensajes: 816
  • País: sc
  • Fecha de registro: Septiembre 12, 2021, 11:52:52 am
    • Ver Perfil
    • Mis Aportes
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #32 en: Diciembre 19, 2024, 21:49:03 pm »
No es mucho más del que has dedicado probablemente, lo digo porque me ha costado lo mismo llegar a la solución completa que a la parcial. Solo hay que comprobar cómo sabe si mostrar el mensaje o no una vez termina las comprobaciones y que siempre llegue al salto condicional que modificas con el valor “encontrado”.

Salu2


Scr34m
"Es de bien nacido ser agradecido"

Password de mis aportes :zip:: AbandonSocios

Desconectado wave

  • Altair 8800
  • *
  • Mensajes: 37
  • País: es
  • Fecha de registro: Julio 11, 2016, 11:47:51 am
    • Ver Perfil
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #33 en: Diciembre 19, 2024, 21:57:34 pm »
Ahora el salto no es condicional con lo que siempre encontrará el resultado.
No entiendo bien si es lo que te ha pasado en otros casos o tienes una mejor para este, de ser así pues compártela.



Desconectado Scr34m

  • Intel Pentium III
  • ***
  • Mensajes: 816
  • País: sc
  • Fecha de registro: Septiembre 12, 2021, 11:52:52 am
    • Ver Perfil
    • Mis Aportes
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #34 en: Diciembre 19, 2024, 22:05:33 pm »
En los mensajes anteriores ya he indicado cuál sería el camino que yo cogería.
Repito, no es ni mejor ni peor. Solo formas diferentes de atacar un mismo problema.

La función a la que llama previamente al salto es donde se realizan todas las comprobaciones. Si finaliza bien EAX=0x1, sino EAX=0x0.

Si al entrar a la función en cuestión, cambiamos las primeras instrucciones por las siguientes:

Código: [Seleccionar]
XOR EAX,EAX
INC EAX
RET

Ensamblado: 0x31 0xC0 0x40 0xC3

v1.0.0 OFFSET 0x32DC
v1.0.2 OFFSET 0x32FC
BYTES ORIGINALES: 55 89 E5 83 EC 4C
BYTES MEDICINA: 33 C0 40 C3 90 90

Se utilizan 2 bytes adicionales para no dejar una instrucción incompleta, que rellenamos con NOP (0x90)

Este código sería equivalente a MOV EAX,0x1 y luego salir, ahorrando algunos bytes.

De este modo, no llamas ni siquiera a las API y siempre encontrará el CD.
Además, si en una zona distinta del código volviera a comprobar el CD con la misma función, también estaría solucionado. De todas formas, no es el caso.

Salu2

EDITO:
Tenía un error, ya que en este caso no debemos usar la instrucción LEAVE. ¡Corregido!
EDITO2:
Añadidos offsets y detalles medicina.
« Última modificación: Diciembre 20, 2024, 10:42:50 am por Scr34m »


Scr34m
"Es de bien nacido ser agradecido"

Password de mis aportes :zip:: AbandonSocios

Desconectado wave

  • Altair 8800
  • *
  • Mensajes: 37
  • País: es
  • Fecha de registro: Julio 11, 2016, 11:47:51 am
    • Ver Perfil
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #35 en: Diciembre 19, 2024, 22:20:06 pm »
Es otra forma de hacerlo :asisehace:



Desconectado Scr34m

  • Intel Pentium III
  • ***
  • Mensajes: 816
  • País: sc
  • Fecha de registro: Septiembre 12, 2021, 11:52:52 am
    • Ver Perfil
    • Mis Aportes
Re: El Capitán Trueno: La Espada del Toledano - Aventura gráfica
« Respuesta #36 en: Diciembre 19, 2024, 22:29:39 pm »
Añadida corrección, ya que no se debe usar LEAVE en este caso.
Disculpad.

Salu2

EDITO: Añadidos offsets y detalles medicina.
« Última modificación: Diciembre 20, 2024, 10:42:35 am por Scr34m »


Scr34m
"Es de bien nacido ser agradecido"

Password de mis aportes :zip:: AbandonSocios