elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  CrackMe if you can III (Reborn)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: CrackMe if you can III (Reborn)  (Leído 2,891 veces)
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
CrackMe if you can III (Reborn)
« en: 15 Enero 2013, 06:00 am »

Tras mucho tiempo de no postear en este foro, me decidí hacer este pequeño y tonto crackme para el que tenga ganas de jugar con el... cabe aclarar que es demasiado simple como para parchearlo por lo que la idea es obtener un usuario y clave válido por lo menos (aunque un keygen no es muy complicado una vez entendido el algoritmo)... :P

Sin más preámbulo se los dejo: CrackMe if you can III (Reborn)

S2
« Última modificación: 16 Enero 2013, 23:53 pm por Karman » En línea

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: CrackMe if you can III (Reborn)
« Respuesta #1 en: 15 Enero 2013, 22:10 pm »

demasiado simple parcharlo?
Código:
004017C3   837D EC 00       CMP DWORD PTR SS:[EBP-0x14],0x0
004017C7   74 07            JE SHORT crackme.004017D0                    ;lugar vulnerable a ser parchado
004017C9   A1 08304000      MOV EAX,DWORD PTR DS:[0x403008]
004017CE   EB 05            JMP SHORT crackme.004017D5
004017D0   A1 04304000      MOV EAX,DWORD PTR DS:[0x403004]

luego mostraría
Citar
---------------------------
CrackMe If You Can III (Reborn)
---------------------------
Clave Correcta, Ahora Haz un Tutorial!
---------------------------
Aceptar   



interesante tus rutinas, espero alguien se anime a intentar un usuario y serial.
largo del nombre
Código:
00401869   E8 1E030000      CALL <JMP.&KERNEL32.lstrlenA>
0040186E   83EC 04          SUB ESP,0x4
00401871   83F8 03          CMP EAX,0x3                               ;comparacion con largo
00401874   7F 2E            JG SHORT crackme.004018A4

largo del serial

Código:
004018AA   E8 DD020000      CALL <JMP.&KERNEL32.lstrlenA>
004018AF   83EC 04          SUB ESP,0x4
004018B2   83F8 07          CMP EAX,0x7                ;comparacion con largo
004018B5   7F 2B            JG SHORT crackme.004018E2

En línea

Apuromafo
Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: CrackMe if you can III (Reborn)
« Respuesta #2 en: 16 Enero 2013, 16:27 pm »

Ueeeee, mi primer crackme ajeno que consigo destripar :P (llevo 3 dias con este tema del craking)

Me ha gustado mucho, yo estoy terminando de programar un crackme sencillito, en breve lo subo para que probéis :D

PD: Solo he logrado parchear el exe, no he visto el serial por ninguna parte :(
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: CrackMe if you can III (Reborn)
« Respuesta #3 en: 17 Enero 2013, 11:04 am »

Saludos!  Gracias por el crackme, es fácil, aunque me llevó como una hora porque soy un poco inútil! La verdad no había visto una rutina como la tuya! será porque no le entendí un carajo jeje!
solución para mi: user tinco pass 0CA0B75F
éxitos
En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: CrackMe if you can III (Reborn)
« Respuesta #4 en: 18 Enero 2013, 18:20 pm »

Saludos!  Gracias por el crackme, es fácil, aunque me llevó como una hora porque soy un poco inútil! La verdad no había visto una rutina como la tuya! será porque no le entendí un carajo jeje!
solución para mi: user tinco pass 0CA0B75F
éxitos

sip, lo solucionaste!, ahora solo faltaría que explicaras como hiciste! :P

S2
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: CrackMe if you can III (Reborn)
« Respuesta #5 en: 19 Enero 2013, 01:27 am »

Una pequeña explicación de lo que hice:

Aclaración: los que me conocen de otro lado saben que no sé que significa mov al,1  mi amigo solid me lo explicó hace como 4 años pero mi neurona no aprende.
Por lo tanto pido disculpas a los que realmente saben por mi atrevimiento.

Y al autor del crackme: dije que es fácil porque
en escala de 1 a 10

       mis conocimientos de ensamblador = 1    (cmp,jmp,je)
                                    uso del ollydbg = 3    mirar stack, F7 y F8
          conocimientos de apis o funciones= 1    GetDlgItemTextA
Sin embargo lo resolvi!         



1) no tiene protección extra.
 
2) al cargarlo en olly se ve en el dump

         00403004  00404084  ASCII "Clave Correcta, Ahora Haz un Tutorial!"
         00403008  004040AC  ASCII "Clave Incorrecta, Sigue Intentando :P!"


3) en la ventana C busco la constante 403004

004017BE  E8 01040000    CALL <JMP.&msvcrt.printf>                ni idea!         
004017C3  837D EC 00     CMP DWORD PTR SS:[EBP-14],0              compara con 0
004017C7  74 07             JE SHORT crackme.004017D0                si no salta... a llorar al campito
004017C9  A1 08304000    MOV EAX,DWORD PTR DS:[403008]            chico malo
004017CE  EB 05          JMP SHORT crackme.004017D5
004017D0  A1 04304000    MOV EAX,DWORD PTR DS:[403004]            chico bueno!
004017D5  C9             LEAVE
004017D6  C3             RETN

4) como tiene que tomar el usuario y nombre bp en recuperadores de texto en este caso es:
 
00401836  E8 09030000    CALL <JMP.&USER32.GetDlgItemTextA>      adquiere el usuario
0040185B  E8 E4020000    CALL <JMP.&USER32.GetDlgItemTextA>      adquiere el serial
         
00401869  E8 1E030000    CALL <JMP.&KERNEL32.lstrlenA>           toma el nombre y saca el largo
00401871  83F8 03        CMP EAX,3
00401874  7F 2E          JG SHORT crackme.004018A4               tiene que ser mayor a 3 caracteres
         
004018AA  E8 DD020000    CALL <JMP.&KERNEL32.lstrlenA>           toma el serial y saca el el largo
004018B2  83F8 07        CMP EAX,7                               
004018B5  7F 2B          JG SHORT crackme.004018E2               tiene que ser mayor a 7 caracteres 


5)       004018FE  E8 C9020000    CALL <JMP.&msvcrt.strtoul>              ni idea! 
         0040190B  E8 C7010000    CALL crackme.00401AD7                   ni idea!
         00401910  895C24 04      MOV DWORD PTR SS:[ESP+4],EBX            obvio que ni idea!
                                                                          pero eax = 5DCAAB1C
 

6)       004017BE  E8 01040000    CALL <JMP.&msvcrt.printf>               ni idea!
       
en el stack...

        0022F974   00404188    |format = "%X %X %X
"
        0022F978   5DCAAB1C    |<%X> = 5DCAAB1C       conocido
        0022F97C   12503760    |<%X> = 12503760          mi serial
        0022F980   1A538001    \<%X> = 1A538001          ni idea!

7)      004017C3     837D EC 00    CMP DWORD PTR SS:[EBP-14],0
       
        se ve:  Stack SS:[0022F988]=1A538001 comparado con 0

8) por lo tanto solo hay que comprobar 3 cosas:
       
       a) ¿se obtiene a partir del nombre?   tinco = 5DCAAB1C
          prueba:                            pepe  = 16809A6A 
                                             tincopasan = 9066930C
          o sea: ni idea que hace pero queda una cadena hexadecimal de 8 caracteres                 
     
       b) ¿qué pasa si cambio el serial?
          1250376T
       stack
          0022F978   5DCAAB1C    |<%X> = 5DCAAB1C nombre
          0022F97C   01250376    |<%X> = 1250376  ¿y la T?
          0022F980   0D8C541B    \<%X> = D8C541B  ajá!!!!   resultado
     
         haciendo pruebas llegué a la conclusión que solo toma caracteres hexadecimales y que no hay que superar el 

         máximo valor porque sino queda  FFFFFFFF
       
          0022F974   00404188    |format = "%X %X %X
"
          0022F978   5DCAAB1C    |<%X> = 5DCAAB1C
          0022F97C   FFFFFFFF    |<%X> = FFFFFFFF
          0022F980   0CE358A0    \<%X> = CE358A0
       
       c)  ¿qué pasa si pongo como serial 5DCAAB1C?
           0022F978   5DCAAB1C    |<%X> = 5DCAAB1C
           0022F97C   5DCAAB1C    |<%X> = 5DCAAB1C
           0022F980   5129F3BD    \<%X> = 5129F3BD  no da 0! :-(


          ¿y si modifico el serial cambia todo el resultado o solo 1 caracter?
          0022F978   5DCAAB1C    |<%X> = 5DCAAB1C
          0022F97C   5DCAAB1F    |<%X> = 5DCAAB1F   serial nuevo, ya hay un 0
          0022F980   AED60C40    \<%X> = AED60C40


ok       0022F978   5DCAAB1C    |<%X> = 5DCAAB1C
         0022F97C   5DCAAB5F    |<%X> = 5DCAAB5F   cambiando de a un caracter voy obteniendo los 0
         0022F980   AED60C00    \<%X> = AED60C00

En resumen si pruebo de a un caracter (total son solo 16 por cada uno)

        0022F974   00404188    |format = "%X %X %X
"
        0022F978   5DCAAB1C    |<%X> = 5DCAAB1C
        0022F97C   0CA0B75F    |<%X> = CA0B75F     el serial es = 0CA0B75F
        0022F980   00000000    \<%X> = 0           resultado buscado!!!



         

 

           
   





En línea

Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: CrackMe if you can III (Reborn)
« Respuesta #6 en: 19 Enero 2013, 01:46 am »

está bien, resolviste el algoritmo por fuerza bruta... es válido :P, faltaría que alguien haga un keygen (es muy simple viendo lo que encontró tincopasan)

S2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Os dejo un crackme, mi primer crackme ^^ « 1 2 »
Ingeniería Inversa
frankener1986 14 12,921 Último mensaje 14 Agosto 2006, 00:59 am
por sircid
[CrackMe] - D-CrackMe by .:WindHack:.
Ingeniería Inversa
.:WindHack:. 3 4,001 Último mensaje 26 Julio 2010, 23:45 pm
por .:WindHack:.
[CRACKME] Crackme 3 por MCKSys Argentina « 1 2 3 »
Ingeniería Inversa
MCKSys Argentina 29 18,661 Último mensaje 18 Enero 2013, 20:48 pm
por SITEA
[CRACKME] Crackme 4 por MCKSys Argentina « 1 2 »
Ingeniería Inversa
MCKSys Argentina 14 12,960 Último mensaje 6 Diciembre 2011, 02:46 am
por PeterPunk77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines