elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:06  


Tema destacado: Entra al canal IRC oficial de #elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany)
| | |-+  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 439 veces)
negux

Desconectado Desconectado

Mensajes: 61


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

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
00401099   .  E8 E8000000     CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
0040109E   .  83F8 0C            CMP EAX,0C
004010A1   .  75 16                JNZ SHORT F7Crackm.004010B9
004010A3   .  8D35 00304000 LEA ESI,DWORD PTR DS:[403000]
004010A9   .  0FB646 FF         MOVZX EAX,BYTE PTR DS:[ESI-1]
004010AD   .  3806                CMP BYTE PTR DS:[ESI],AL
004010AF   .  75 08                JNZ SHORT F7Crackm.004010B9
004010B1   .  60                    PUSHAD
004010B2   .  E8 77FFFFFF      CALL F7Crackm.0040102E
004010B7   .  EB 51               JMP SHORT F7Crackm.0040110A
004010B9   >  68 00304000    PUSH F7Crackm.00403000                   ; /Arg1 = 00403000 ASCII "555555555555"
004010BE   .  E8 6C000000    CALL F7Crackm.0040112F                     ; \F7Crackm.0040112F
004010C3   .  6A 00               PUSH 0                                               ; /Style = MB_OK|MB_APPLMODAL
004010C5   .  68 24324000     PUSH F7Crackm.00403224                   ; |Title = "Error"
004010CA   .  68 19314000     PUSH F7Crackm.00403119                   ; |Text = ""
004010CF   .  6A 00               PUSH 0                                               ; |hOwner = NULL
004010D1   .  E8 B6000000    CALL <JMP.&user32.MessageBoxA>       ; \MessageBoxA
 
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
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
DS en la direccion de memoria [ESI-1], olly marca DS:[00402FF]=00, y el movzx lo rellena con ceros.
y de ahi compara un byte de mi serial con AL:
AL=00
DS:[00403000]=35 ('5')
y dependiendo del resultado de esa comparacion salta al cartel malo o bueno.
 
Codigo de Mensaje bueno:
 
0040102E  /$  6A 00             PUSH 0                                                ; /Style = MB_OK|MB_APPLMODAL
00401030  |.  68 1C324000   PUSH F7Crackm.0040321C                   ; |Title = "Mensaje"
00401035  |.  68 18324000   PUSH F7Crackm.00403218                    ; |Text = "Ok"
0040103A  |.  6A 00             PUSH 0                                               ;  |hOwner = NULL
0040103C  |.  E8 4B010000  CALL <JMP.&user32.MessageBoxA>       ;  \MessageBoxA
 

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 por daniel666999 » En línea
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


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

Sube el crackme para ver que se puede hacer, Saludos
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 ^^
Ingeniería Inversa
frankener1986 14 4,178 Último mensaje 14 Agosto 2006, 00:59
por sircid
Ayuda con CrackMe
Ingeniería Inversa
SySc0d3r 0 491 Último mensaje 19 Diciembre 2010, 14:41
por SySc0d3r
[CRACKME] Crackme 3 por MCKSys Argentina « 1 2 »
Ingeniería Inversa
MCKSys Argentina 28 2,530 Último mensaje 27 Noviembre 2011, 14:57
por chEEtos
AYUDA CON UN CRACKME
Ingeniería Inversa
pags2 10 441 Último mensaje 26 Noviembre 2011, 09:21
por .:UND3R:.
[CRACKME] Crackme 4 por MCKSys Argentina
Ingeniería Inversa
MCKSys Argentina 14 1,362 Último mensaje 6 Diciembre 2011, 02:46
por PeterPunk77
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines