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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Leer este code sacado de ollydbg
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer este code sacado de ollydbg  (Leído 4,586 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Leer este code sacado de ollydbg
« en: 28 Noviembre 2013, 19:47 pm »

Código:
1   0040105F  |. E8 8A000000    CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
2   00401064  |. 8B1D 0C304000  MOV EBX,DWORD PTR DS:[40300C]
3   0040106A  |. 8B15 4B204000  MOV EDX,DWORD PTR DS:[40204B]
4   00401070  |. 3BDA           CMP EBX,EDX

Entiendo qué!
Linea #1 Es donde se ingresa el valor, en input.
Linea #2 Transfiere el dato DWORD PTR DS:[40300C] en EBX
Linea #3 Transfiere el dato DWORD PTR DS:[40204B] en EDX
Linea #4 Compara EBX con EDX.

Lo que quiero saber, es DWORD PTR DS:[40300C] y DWORD PTR DS:[40204B] que resultado tiene?
« Última modificación: 28 Noviembre 2013, 19:57 pm por @shellroot » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #1 en: 28 Noviembre 2013, 19:55 pm »

Es así, no?
En línea

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.614


Sueñas que sueñas


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #2 en: 28 Noviembre 2013, 20:12 pm »

Código:
1   0040105F  |. E8 8A000000    CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
2   00401064  |. 8B1D 0C304000  MOV EBX,DWORD PTR DS:[40300C]
3   0040106A  |. 8B15 4B204000  MOV EDX,DWORD PTR DS:[40204B]
4   00401070  |. 3BDA           CMP EBX,EDX

Entiendo qué!
Linea #1 Es donde se ingresa el valor, en input.
Linea #2 Transfiere el dato DWORD PTR DS:[40300C] en EBX
Linea #3 Transfiere el dato DWORD PTR DS:[40204B] en EDX
Linea #4 Compara EBX con EDX.

Lo que quiero saber, es DWORD PTR DS:[40300C] y DWORD PTR DS:[40204B] que resultado tiene?

No sé lo que quieres hacer pero si estás intentando ver el resultado de GetDlgItemTex no lo haces bien.

Mira, la API GetDlgItemText recupera el texto o título de un control y requiere 4 parámetros: GetDlgItemText(handle del diálogo que contiene el control, identificador del control, espacio -búfer- que tú quieres reservar para recuperar el texto, el tamaño máximo de ese texto);

Si quieres analizar una API tienes que analizar los 4 parámetros anteriores, para ver dónde es guardado.

Lo que tú dices es correcto excepto eso de Linea #1 Es donde se ingresa el valor, en input. que no sé qué quieres decir. Si quieres que te respondamos deberás poner más código anterior para ver qué hay en 40300c y 40204b.

Saludos
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #3 en: 28 Noviembre 2013, 20:15 pm »

Si estás con OllyDBG, podrás hacer un BreackPoint. Entonces, mirar en la memoria, que valores hay.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #4 en: 28 Noviembre 2013, 20:30 pm »

Explico un poco mejor... Tengo un crackme que resolvi sólo viendo como se comportaba por dentro -tanteo y error-.

Código
  1. 00401050  |. 6A 14          PUSH 14                                  ; /Count = 14 (20.)
  2. 00401052  |. 68 0C304000    PUSH Leccion_.0040300C                   ; |Buffer = Leccion_.0040300C
  3. 00401057  |. 68 EA030000    PUSH 3EA                                 ; |ControlID = 3EA (1002.)
  4. 0040105C  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]                ; |hWnd
  5. 0040105F  |. E8 8A000000    CALL <JMP.&user32.GetDlgItemTextA>       ; \GetDlgItemTextA
  6.  
  7. 00401064  |. 8B1D 0C304000  MOV EBX,DWORD PTR DS:[40300C]
  8. 0040106A  |. 8B15 4B204000  MOV EDX,DWORD PTR DS:[40204B]
  9. 00401070  |. 3BDA           CMP EBX,EDX
  10.  
  11. 00401072  |. 74 13          JE SHORT Leccion_.00401087
  12. 00401074  |. 6A 00          PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
  13. 00401076  |. 6A 00          PUSH 0                                   ; |Title = NULL
  14. 00401078  |. 68 35204000    PUSH Leccion_.00402035                   ; |Text = "Mal Muy MAL"
  15. 0040107D  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]                ; |hOwner
  16. 00401080  |. E8 6F000000    CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
  17.  
  18. 00401085  |. EB 14          JMP SHORT Leccion_.0040109B
  19. 00401087  |> 6A 00          PUSH 0                                   ; /Style = MB_OK|MB_APPLMODAL
  20. 00401089  |. 68 41204000    PUSH Leccion_.00402041                   ; |Title = "Bravo¡¡¡¡"
  21. 0040108E  |. 68 28204000    PUSH Leccion_.00402028                   ; |Text = "Muy BIEN¡¡¡¡"
  22. 00401093  |. FF75 08        PUSH DWORD PTR SS:[EBP+8]                ; |hOwner
  23. 00401096  |. E8 59000000    CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA

La Linea #9 es el condicional que decidirá a donde apunta. Me moví hasta la dirección 00401064 y 0040106A, en donde en tiempo de ejecución me muestra:
Código
  1. DS:[0040300C]=00000000 ; Esté sería el serial que ingreso
  2. DS:[0040204B]=38393839 ; Esté sería el serial correcto!

Lo que no logro entender es, -ya se que contenido tiene :p-, si realmente cuando ingreso 1 se convierte en 31, donde puedo ver que se hace esa "conversión"?
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.469


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Leer este code sacado de ollydbg
« Respuesta #5 en: 28 Noviembre 2013, 20:35 pm »

El char "1" tiene el valor ascii 0x31. Cuando escribes un "1" en memoria, lo que escribe es el valor 31 (en hexa).

La conversion esta implicita...  :P

Saludos!

EDIT:

Cuando comparas con 38393839, estas comparando con el string "9898" (imagino que conoces el "famoso" valor 989898... no?)
« Última modificación: 28 Noviembre 2013, 20:37 pm por MCKSys Argentina » En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.614


Sueñas que sueñas


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #6 en: 28 Noviembre 2013, 20:38 pm »

Es muy sencillo, GetDlgItemText obtiene el serial que tú has puesto en el textbox y lo deja en 40300C.

Ese serial se compara con el que hay en [40204B].

Citar
Lo que no logro entender es, -ya se que contenido tiene :p-, si realmente cuando ingreso 1 se convierte en 31, donde puedo ver que se hace esa "conversión"?
Pulsa con el botón derecho del ratón en
MOV EBX,DWORD PTR DS:[40300C]
y selecciona Follow in dump > Memory address
verás abajo en la ventana de dump esos 313131..

Haz lo mismo con MOV EDX,DWORD PTR DS:[40204B] para ver con qué se compara.

Es eso lo que quieres? como bien dice MCKSys Argentina el texto 1 se convierte en 31hex en memoria.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #7 en: 28 Noviembre 2013, 20:43 pm »

Oka entiendo correctamente!  :-*

(imagino que conoces el "famoso" valor 989898... no?)
Maldición no lo capto!

Siempre me ha interesado leer todos los post de MCKSys y de karmany, aunque no los entienda, por ahora... ajjaja :p
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.469


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Leer este code sacado de ollydbg
« Respuesta #8 en: 28 Noviembre 2013, 20:49 pm »

989898 en decimal en F1ACA (fiaca :P) en hexa...

Es el valor "de testeo" usado por Ricardo Narvaja en su introduccion a Olly...  ;)

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Leer este code sacado de ollydbg
« Respuesta #9 en: 28 Noviembre 2013, 21:06 pm »

Ahh si apenas lo lei hoy, ajja lo vi dentro del crackme LECCION 13 HARDCODED 1
Código
  1. 00401061  |. BA 08304000    MOV EDX,Leccion_.00403008                ;  ASCII "FIACA"
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Por que no me funciona este code? (Juego)
Scripting
esparta 0 2,057 Último mensaje 4 Noviembre 2007, 14:06 pm
por esparta
No me funciona este code (Encuesta)
Scripting
esparta 2 2,180 Último mensaje 4 Noviembre 2007, 15:34 pm
por esparta
El OllyDBg no me deja abrir este exe de 500kb (¿Compressed Code?) « 1 2 »
Ingeniería Inversa
olevlove 16 11,324 Último mensaje 9 Junio 2011, 00:19 am
por ganstarflowconsul
¿De donde ha sacado Tuenti este tipo de información?
Mensajería
OmarHack 2 5,692 Último mensaje 9 Octubre 2013, 11:26 am
por vangodp
como puedo leer el programa de un pic con code protect
Ingeniería Inversa
erm1234 0 2,622 Último mensaje 15 Octubre 2013, 12:42 pm
por erm1234
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines