[RESUELTO] Regresando, me atoré (Ollydbg 2.01 + crackit2 de netforce.nl)

Iniciado por someRandomCode, 15 Noviembre 2014, 17:54 PM

0 Miembros y 6 Visitantes están viendo este tema.

someRandomCode

Cita de: tincopasan en 15 Noviembre 2014, 22:32 PM
supongo que es un crackme, ¿lo pódes subir?

Lo podes descargar del sitio de net-force.nl, aca dejo el enlace:
http://net-force.nl/challenge/level502/crackit2.zip

Hasta ahora hice progreso, tenes que tener una cierta cantidad de caracteres de clave para que te haga la comparacion, y despues hace comparacion letra a letra.. Tengo las primeras 4, es mucha pista si digo cuantas son? :)

MCKSys Argentina

El crackme es muy simple. No deberías tener inconvenientes en resolverlo pues es muy directo:

- Verifica el largo del serial ingresado con uno establecido.
- Convierte algunos caracteres del serial en un string que representa su valor ANSI en decimal. Otros los convierte en string directamente.
- Compara cada string con uno establecido. Si coinciden todos, listo...

Saludos!

Tip: click  ;D
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


someRandomCode

A mi donde me esta trabando es aca:

00402748  |.  50            PUSH EAX
00402749  |.  68 D01C4000   PUSH 00401CD0  // como paso esto? semejante valor que expresa?
0040274E  |.  FFD7          CALL EDI // llama a vbStrCmp
00402750  |.  85C0          TEST EAX,EAX


PD: Habia arrancado mal mal al principio jeje

MCKSys Argentina

Por cierto, si es por crackearlo, creo que lo siguiente haria el trabajo:

Código (asm) [Seleccionar]
0040230C   /0F84 81040000                 JE crackit2.00402793

por

Código (asm) [Seleccionar]
0040230C   /E9 70040000                   JMP crackit2.00402781
00402311   |90                            NOP


y

Código (asm) [Seleccionar]
00402791   /EB 06                         JMP SHORT crackit2.00402799

por

Código (asm) [Seleccionar]
00402791    90                            NOP
00402792    90                            NOP



Cita de: someRandomCode en 15 Noviembre 2014, 23:35 PM
A mi donde me esta trabando es aca:

00402748  |.  50            PUSH EAX
00402749  |.  68 D01C4000   PUSH 00401CD0  // como paso esto? semejante valor que expresa?
0040274E  |.  FFD7          CALL EDI // llama a vbStrCmp
00402750  |.  85C0          TEST EAX,EAX


vbStrCmp recibe 2 strings widechar como parametros (a diferencia de StrComp, que recibe 2 strings variants). En realidad, es un wrapper de la segunda.

Como puse, algunos chars del serial ingresado se convierten, otros son tomados textualmente...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


tincopasan

como ya dijo MCKSys es bastante fácl, te recomiendo que comiences a seguirlo desde 004022e5 y un par de líneas más abajo verás la comparación del largo con 7 y puedes ver q va comparando desde alli, para parcharlo cambiaría solamente 4027a9 757b por 74 7b

someRandomCode

Cita de: tincopasan en 16 Noviembre 2014, 00:11 AM
como ya dijo MCKSys es bastante fácl, te recomiendo que comiences a seguirlo desde 004022e5 y un par de líneas más abajo verás la comparación del largo con 7 y puedes ver q va comparando desde alli, para parcharlo cambiaría solamente 4027a9 757b por 74 7b

Jeje si la verdad que el cmp en 004022ED no lo habia visto.. lo hice a base de prueba y error el ver que si no tenias X caracteres no llegaba a cambiar el texto..

Necesito dos cosas, conocer mejor Ollydbg y practicar mucho >.<

someRandomCode

La verdad, sigo atorado...
Puede ser que use caracteres que no son latinos?
Porque despues de Ech no consigo lo que sigue en la clave..
La idea es obtener la clave que esta hardcodeada..

tincopasan

vaya, seguir un post después de tanto tiempo. Lo he vuelto a mirar porque me olvidé que era y tienes razón la clave es Ech♥l☺n, el problema está dado por la codificación usada, no se de donde sacaste el crackme pero seguramente es en sistema ingles y viejo ya que usa caracteres no imprimibles, que ya no se usan en programación.
♥ = alt +03 (se usaba como fin de línea)
☺= alt + 00(caracter nulo)

someRandomCode

Si jeje, es que despues de tantos meses no lo habia resuelto..
Amen que estuve con muchas cosas, y aun ahora estoy en Buenos Aires por temas medicos, pero bueno.. Ahora entiendo donde estaba mi problema..
Gracias!

MCKSys Argentina

Cita de: tincopasan en 30 Agosto 2015, 08:47 AM
vaya, seguir un post después de tanto tiempo. Lo he vuelto a mirar porque me olvidé que era y tienes razón la clave es Ech♥l☺n, el problema está dado por la codificación usada, no se de donde sacaste el crackme pero seguramente es en sistema ingles y viejo ya que usa caracteres no imprimibles, que ya no se usan en programación.
♥ = alt +03 (se usaba como fin de línea)
☺= alt + 00(caracter nulo)

Bueno, en realidad no es así:

El serial correcto es:
Ech3l0n

Pruébenlo: ingresen el serial y pongan un BP en 00402712; pulsen el botón y, si tracean con F8, verán los chars contra los que se compara: Ech3l0n  :P
Los 3 primeros contra su valor ANSI, luego el "3" contra un "3" ( :P), la "l" contra su valor ANSI, el "0" contra otro "0" y la "n" fnal contra su valor ANSI.

Saludos!

PD: Como te dije al principio, el crackme es muy sencillo. Sólo debes tomarte el tiempo (que sea necesario) para analizar lo que hace la rutina de chequeo. Es la forma de aprender.  ;)
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."