Ir al contenido principal

Reversing (VIII): Solución Reto Challenge Land "Reversing 2"

En este post la solución a otro de los retos de 'reversing' de la plataforma Challenge Land.

Se trata del reto "Reversing 2" y mi valoración sobre su dificultad es: ★☆☆☆☆.

Su enunciado dice lo siguiente:


After program execution for answers.

Y nos dan un archivo ejecutable (level2.exe).

Solución: Ejecuto este fichero y se me pide que introduzca un número de serie:
Introduzco una cadena cualquiera de caracteres y dígitos, por ejemplo: abc123, y se muestra un mensaje de error:
Como en retos anteriores de 'reversing' que he puesto en este blog, utilizo OllyDbg y empiezo el análisis buscando todas las cadenas de texto o 'strings' utilizadas en el programa (en la parte superior izquierda de la ventana principal: clic botón derecho, 'Search for' > 'All referenced strings'):
Y obtengo lo siguiente:
En esta ocasión sólo veo la cadena de texto correspondiente al mensaje de error que me ha aparecido al ejecutar el programa: "Wrong.", pero no la que supuestamente debería aparecer si introdujera el número de serie correcto. Si hago doble clic sobre la cadena del mensaje de error voy a la parte del código donde se encuentra ese texto:
Pongo un punto de interrupción en la instrucción CALL que llama a la función strcmp que se encuentra dos líneas más arriba (clic botón derecho sobre ella, 'Breakpoint' > 'Toggle') para que cuando ejecute el programa en modo depuración ('debug mode') éste se detenga en dicha instrucción y pueda ver que dos cadenas compara:
Tras ejecutar el programa en modo depuración, 'Run debugged application (F9)', introduzco otra vez abc123 como número de serie, pulso 'Enter' y el programa se detiene en el punto de interrupción que acabo de colocar.

Veo que el registro EAX contiene la dirección a partir de la cual se almacena una cadena de caracteres ("6LPw3vDYja9KrT2V") y el registro EDX contiene otra dirección a partir de la cual se almacena la cadena de caracteres que he introducido como número de serie ("abc123")
, y que ambas entran como parámetros a la función strcmp.

Sin embargo, no veo posteriormente un salto condicional en función de la comparación realizada de esas dos cadenas y creo que el programa, se introduzca el número de serie que se introduzca, muestra siempre el mensaje de error.

Por tanto, pruebo a introducir la cadena "6LPw3vDYja9KrT2V" como solución:

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema...

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat...

Criptografía (CLXXXIV): Soluciones Retos criptografía de CyberOlympics 2017

En este post pongo las soluciones a los retos de  criptografía que he ido resolviendo de la edición del año 2017 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy'  dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. En esta edición la mayoría de los retos presentaron un  nivel  de dificultad bajo  ( ★ ★ ☆☆☆ ) , lo que entiendo adecuado por el colectivo al que van dirigidos. Las soluciones al resto de desafíos de criptografía de esta edición, cuyos archivos asociados tenga (no me han pasado todos) y que consiga resolver, las pondré en otra entrada. Reto 1 (Criptografía) : Enunciado : Todas las mañanas cuando me despierto, me miro en el espejo y no entiendo lo que veo. Hoy me he levantado dando un salto mortal y no voy a apartarme de mi “otro yo” hasta que no descubra el mensaje. Parece q...