Abril 21, 2018, 10:36:37 pm

Autor Tema: [Solución] Crackme C YoMismo  (Leído 1471 veces)

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

Desconectado cibergolen

  • Incultura es ley
  • Moderador
  • *****
  • Mensajes: 1516
  • Danger: Mind OverFlow
    • Ver Perfil
    • OverSec.org, escrituras diarias
[Solución] Crackme C YoMismo
« en: Marzo 26, 2015, 05:21:53 am »
Bueno, ya que nadie lo resolvió, publicaré la solucion dada en la página elhacker.net para mi último crackme.

Citar
¡Hola!

Aunque Flamer lo había explicado resumido, pero perfecto, aquí envío un tutorial para alguien que sea más novato que yo. Es el primero que preparo para los demás, o sea que espero vuestra comprensión.

TUTORIAL PARA RESOLVER EL CRACKME

Corremos el crackme.exe para ver cómo funciona. Sale una ventana en la que nos indica: ”Introduzca usuario”. Metemos un nombre y pulsamos enter.

En la misma ventana aparece “Introduzca serial”. Metemos un número y pulsamos enter.

Como parece que no acertamos, desaparece la ventana.

Miramos cómo está escrito y si está empaquetado con RDG Packer Detector. Nos indica que está escrito en C++ y no detecta packer alguno.

Lo abrimos con OLLY parcheado para su detección por nombre y con todas las opciones de HideOD marcadas.

Lo corremos con F9. Nos sale la ventana anteriormente citada, introducimos nombre y clave como antes, pero ahora en la misma ventana nos indica: “Buen intento”.

Pulsamos Debug y Restart y nos lleva al inicio en 401220. Botón Derecho (BD), Search for y All referenced text strings. Vemos “Correcto” y “Buen intento” en dos direcciones distintas. Vamos a esa zona en el debugger.

Brujuleamos por la zona y observamos que en 4013C0 hay CALL 401290, luego un CMP EAX,1 y un JNZ al “Buen intento” si EAX no es 1.

En 4013D3 hay un CALL 4012E9, dos líneas más abajo un CMP [EBP-208],AL y un JNZ al otro “Buen intento” si [EBP-206] y AL no son iguales.

A la vista de lo anterior ponemos BP  en los dos CALL y pulsamos F9. Nos aparece la ventana, la rellenamos como siempre y al dar al segundo  enter se nos para en 4013C0.

Entramos en el CALL con F7 y estudiamos lo que hace. Primero mide la longitud (cantidad de caracteres) del nombre y, si es 6 o menos, retorna EAX=0. En caso de que el nombre tuviese una longitud mayor que 6, mide la longitud (cantidad de cifras) de la clave y si es 6 o menos, retorna EAX=0. Si la longitud de la Clave también es superior  a 6, retorna EAX=1. Cuando sale del CALL, si EAX=0 salta al segundo “Buen intento” y finaliza. Si EAX =1, sigue adelante.

Lo finalizamos, eliminamos el BP en 4013C0 y reiniciamos el crackme, pero ahora meteremos un nombre y una clave de longitud superior a 6. Se nos para en 4013D3.
Entramos en el CALL con F7 y lo estudiamos. Aquí  vemos que suma los valores ASCII de todas las cifras de la Clave excepto la más significativa (la de la izquierda), la hace un XOR 32, al resultado le resta 0A y a la cifra resultante la compara con 64. Si es mayor que 64, a la resultante le hace las mismas operaciones, XOR 32 y resta de 0A, y así hasta que da un resultado menor o igual que 64, en el que sale del CALL poniendo en EAX este valor.

A la salida, en 4013E4, compara EAX con el valor ASCII  de la primera letra de la Clave. Si son iguales nos imprime “Correcto” y termina, y si no, nos larga el primero de los “Buen intento” y termina.

Forma de solución rápida: Reiniciar, poner un BP en 4013E4, correrlo, poner nombre y clave de más de 6 signos y darle a enter. Parará en 4013E4. En el espacio del OLLY donde explica lo que hace, verás la primera letra de la clave que has metido y la que tenía que ser. Pones esta letra la primera de tu nombre y más de seis letras después, y la misma clave que has usado para obtenerla anteriormente y te aparecerá “Correcto”.

La otra, prepararte un Keygen. Yo lo he hecho en Python 2.7.
Las operaciones del segundo CALL en el keygen las  puedes hacer en decimal, sustituyendo 32 por 50, 64 por 100 y 0A por 10.

Un saludo!
Por navidad, vuelve a C.P.H[/size]
¿Aprender Ingeniería Inversa es complejo? Antes de preguntar...
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login

You are not allowed to view links. Register or Login


xx
[CrackMe] - D-CrackMe by .:WindHack:.

Iniciado por .:WindHack:.®

2 Respuestas
1520 Vistas
Último mensaje Julio 25, 2010, 05:46:40 pm
por [CronuX]
question
una solucion

Iniciado por [ZONIC]

2 Respuestas
1052 Vistas
Último mensaje Abril 26, 2010, 07:12:37 am
por [ZONIC]
question
Solucion de Errores.

Iniciado por mDrinky

7 Respuestas
1519 Vistas
Último mensaje Febrero 03, 2010, 02:00:30 pm
por WaesWaes
resuelto
Eventos en vb6 [Sin solucion]

Iniciado por brujeria11

8 Respuestas
2328 Vistas
Último mensaje Marzo 27, 2010, 02:19:26 pm
por brujeria11
xx
No encuentro solución

Iniciado por Audrum

1 Respuestas
1167 Vistas
Último mensaje Agosto 31, 2007, 02:41:20 pm
por wanm28
xx
Solucion A Infeccion

Iniciado por Cross-93

4 Respuestas
1103 Vistas
Último mensaje Octubre 27, 2007, 05:47:59 pm
por wanm28
question
Alguna solucion¿

Iniciado por hunpex

6 Respuestas
1283 Vistas
Último mensaje Julio 10, 2010, 09:12:22 am
por Kodeinfect
xx
tiene solucion?

Iniciado por maik_90

16 Respuestas
4142 Vistas
Último mensaje Enero 11, 2012, 01:13:16 am
por Aetsu
xx
SOLUCION A FILTRADO POR MAC

Iniciado por xarlito

10 Respuestas
5328 Vistas
Último mensaje Marzo 09, 2010, 03:15:50 pm
por sonicblack08
exclamation
Una Solucion en c# en sharpdevelop

Iniciado por R4GN4ROCK

4 Respuestas
3688 Vistas
Último mensaje Junio 13, 2008, 12:53:01 am
por alexelprogramador