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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Ayuda con un crackme
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un crackme  (Leído 2,114 veces)
negux

Desconectado Desconectado

Mensajes: 63


Ver Perfil
Ayuda con un crackme
« en: 9 Enero 2012, 15:30 pm »

Que tal, recien estoy terminando el curso de Ricardo y me dispuse a hacer un crackme, bueno, les cuento, el crackme estaba empacado con exe stealth, y con ayuda de google pude desempacarlo :P y Bueno tengo esta parte de lo que muestra el olly, donde lee lo que pongo como serial, y salta al mensaje de Error.
Código
  1. 00401099   .  E8 E8000000     CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
  2. 0040109E   .  83F8 0C            CMP EAX,0C
  3. 004010A1   .  75 16                JNZ SHORT F7Crackm.004010B9
  4. 004010A3   .  8D35 00304000 LEA ESI,DWORD PTR DS:[403000]
  5. 004010A9   .  0FB646 FF         MOVZX EAX,BYTE PTR DS:[ESI-1]
  6. 004010AD   .  3806                CMP BYTE PTR DS:[ESI],AL
  7. 004010AF   .  75 08                JNZ SHORT F7Crackm.004010B9
  8. 004010B1   .  60                    PUSHAD
  9. 004010B2   .  E8 77FFFFFF      CALL F7Crackm.0040102E
  10. 004010B7   .  EB 51               JMP SHORT F7Crackm.0040110A
  11. 004010B9   >  68 00304000    PUSH F7Crackm.00403000                   ; /Arg1 = 00403000 ASCII "555555555555"
  12. 004010BE   .  E8 6C000000    CALL F7Crackm.0040112F                     ; \F7Crackm.0040112F
  13. 004010C3   .  6A 00               PUSH 0                                               ; /Style = MB_OK|MB_APPLMODAL
  14. 004010C5   .  68 24324000     PUSH F7Crackm.00403224                   ; |Title = "Error"
  15. 004010CA   .  68 19314000     PUSH F7Crackm.00403119                   ; |Text = ""
  16. 004010CF   .  6A 00               PUSH 0                                               ; |hOwner = NULL
  17. 004010D1   .  E8 B6000000    CALL <JMP.&user32.MessageBoxA>       ; \MessageBoxA
  18.  
  19. ahi compara Eax con 0c, que es la longitud del serial, si no es igual salta al mensage de error, en este caso no salta (digite doce veces, "5"), luego vemos que mueve a ESI el serial
  20. que ingrese, y aqui viene el problema, no le entiendo muy muy bien a la siguiente instruccion: MOVZX EAX,BYTE PTR DS:[ESI-1], segun yo: mueve a eax un byte del contenido de
  21. DS en la direccion de memoria [ESI-1], olly marca DS:[00402FF]=00, y el movzx lo rellena con ceros.
  22. y de ahi compara un byte de mi serial con AL:
  23. AL=00
  24. DS:[00403000]=35 ('5')
  25. y dependiendo del resultado de esa comparacion salta al cartel malo o bueno.
  26.  
  27. Codigo de Mensaje bueno:
  28.  
  29. 0040102E  /$  6A 00             PUSH 0                                                ; /Style = MB_OK|MB_APPLMODAL
  30. 00401030  |.  68 1C324000   PUSH F7Crackm.0040321C                   ; |Title = "Mensaje"
  31. 00401035  |.  68 18324000   PUSH F7Crackm.00403218                    ; |Text = "Ok"
  32. 0040103A  |.  6A 00             PUSH 0                                               ;  |hOwner = NULL
  33. 0040103C  |.  E8 4B010000  CALL <JMP.&user32.MessageBoxA>       ;  \MessageBoxA
  34.  

Y pues bueno, hasta aqui llegue, no se que serial compara para saltar al mensaje bueno, busque las api que utiliza y no hay alguna que compare, la unica comparacion que me lleva al mensaje bueno es esa con AL
 alguna sugerencia/ayuda ??

Gracias

Edito.

Al introducir 20 caracteres (16, "5" y 4, "9");

llego a este call:

004010BE   .  E8 6C000000   CALL F7Crackm.0040112F                   ; \F7Crackm.0040112F

y me sale un mensaje de Error:

Don´t know how to step because memory at address 399393939 is not readable, try to change EIP or pass exception to program

Analizando eso en el Dump veo esto:

00403000  35 35 35 35 35 35 35 35  55555555
00403008  35 35 35 35 35 35 35 35  55555555
00403010  39 39 39 39 00 00 00 00  9999....

Supongo, no se, que como que trata de ejecutar esa direcion de memoria -> 399393939 que son los 9999 que escribi, eso un el overflow? y de ahi como le sigo  :huh: :rolleyes:
« Última modificación: 9 Enero 2012, 15:43 pm por daniel666999 » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Ayuda con un crackme
« Respuesta #1 en: 9 Enero 2012, 16:35 pm »

Sube el crackme para ver que se puede hacer, Saludos
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con crackme
Ingeniería Inversa
victorfz 2 2,158 Último mensaje 8 Enero 2005, 20:08 pm
por victorfz
Os dejo un crackme, mi primer crackme ^^ « 1 2 »
Ingeniería Inversa
frankener1986 14 12,865 Último mensaje 14 Agosto 2006, 00:59 am
por sircid
[CRACKME] Crackme 3 por MCKSys Argentina « 1 2 3 »
Ingeniería Inversa
MCKSys Argentina 29 18,515 Último mensaje 18 Enero 2013, 20:48 pm
por SITEA
AYUDA CON UN CRACKME « 1 2 »
Ingeniería Inversa
pags2 10 4,388 Último mensaje 26 Noviembre 2011, 09:21 am
por .:UND3R:.
[CRACKME] Crackme 4 por MCKSys Argentina « 1 2 »
Ingeniería Inversa
MCKSys Argentina 14 12,867 Último mensaje 6 Diciembre 2011, 02:46 am
por PeterPunk77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines