Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - .:UND3R:.

#1801
De todas formas para encontrar ese salto usar el método de la API MessageBoxA en este caso es algo complicado, es mejor usar la API:
GetDlgItemTextA

Encargada de almacenar los datos que estén en una caja de texto(momento en donde el crackme toma por primera vez el valor que haz introducido)

CitarGetDlgItemTextA

Devuelve el titulo o texto asociado con un control en un cuadro de diálogo:
ESP+4=Manejador de la caja de dialogo
ESP+8=Identificador del control
ESP+C=Buffer (dirección en donde se almacenará el texto)
ESP+10=Límite de espacio máximo de la string

EAX devuelve el número de caracteres que contiene el buffer

obviamente que para que se almacene el buffer este debe ya haber retornado la API (Execute till return)
#1802
Colocamos un BP en MessageBoxA
Introducimos algunos datos falsos y se detiene en el BP que colocamos
si nos fijamos en [ESP] apunta al retorno, en este caso:
004013C1
Nos dirijimos ahí en el desambler y notaremos que un poco más arriba están las string del mensaje erroneo (chico malo):


Citar004013AD  |.  6A 30         PUSH 30                                  ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
004013AF  |.  68 60214000   PUSH CRACKME.00402160                    ; |Title = "No luck!"
004013B4  |.  68 69214000   PUSH CRACKME.00402169                    ; |Text = "No luck there, mate!"
004013B9  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hOwner
004013BC  |.  E8 79000000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA


Si subimos un poco más notaremos otra string de otro chico malo pero si subimos un poco más encontraremos el mensaje bueno:


Citar0040134D  /$  6A 30         PUSH 30                                  ; /Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
0040134F  |.  68 29214000   PUSH CRACKME.00402129                    ; |Title = "Good work!"
00401354  |.  68 34214000   PUSH CRACKME.00402134                    ; |Text = "Great work, mate!
Now try the next CrackMe!"
00401359  |.  FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hOwner
0040135C  |.  E8 D9000000   CALL <JMP.&USER32.MessageBoxA>           ; \MessageBoxA
00401361  \.  C3            RETN

por lo que lo más probable que un poco más arriba esté el salto en donde el programa se dirijirá al chico bueno o chico malo:


Citar00401243   . /74 07         JE SHORT CRACKME.0040124C
00401245   . |E8 18010000   CALL CRACKME.00401362
0040124A   .^|EB 9A         JMP SHORT CRACKME.004011E6
0040124C   > \E8 FC000000   CALL CRACKME.0040134D
#1803
Como puedo ver el tiempo de caducidad o que tipo de licencia poseo?

Saludos
#1804
Algún avance?
#1805
Está muy fácil jeje
#1806
Ingeniería Inversa / Re: Re posicionar un call near?
14 Septiembre 2011, 18:33 PM
Perfecto todo aclarado, Saludos!  ;D
#1807
Efectivamente
#1808
Ingeniería Inversa / Re: Re posicionar un call near?
14 Septiembre 2011, 04:19 AM
Me ha funcionado de maravilla. una cosa más me podrías explicar un poco más detallada la fórmula? (Quiero saber que es lo que hago)


Citar1) Obtienes la direccion donde esta el CALL (890E9F)
2) Obtienes los bytes del CALL (FC84B9FF)
3) Inviertes los bytes del CALL (FFB984FC). Asi obtienes un nuemro que puede ser positivo o negativo.
4) Le sumas a la direccion de 1) los bytes invertidos.

Listo. Ya tienes la VA de la funcion...

Saludos!

Ah! Sumale 5 (los bytes que ocupa el CALL)

Muchas gracias
#1809
Cita de: Dreamaker en 14 Septiembre 2011, 02:12 AM
Me gustaría saber si alguien puede decirme si está ese juego para PC (existe angry birds para pc) porque tengo ganas de jugarlo y no tengo android y/o iphone o como sea que se llame la plataforma para jugarlo :-( :-(

para pc:
http://chrome.angrybirds.com/
#1810
Ingeniería Inversa / Re: Re posicionar un call near?
14 Septiembre 2011, 01:22 AM
Si me explicaran la fórmula o el método para poder saber el valor que debe tener el call se los agradecería,ya que quiero aplicarlo a un script por que son muchas call a modificar, muchas gracias