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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  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,977 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.615


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.724


<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

Te vendería mi talento por poder dormir tranquilo.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


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.615


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.724


<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

Te vendería mi talento por poder dormir tranquilo.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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,248 Último mensaje 4 Noviembre 2007, 14:06 pm
por esparta
No me funciona este code (Encuesta)
Scripting
esparta 2 2,455 Ú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,946 Ú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,903 Ú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,845 Último mensaje 15 Octubre 2013, 12:42 pm
por erm1234
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines