Autor
|
Tema: Leer este code sacado de ollydbg (Leído 4,977 veces)
|
Shell Root
|
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 EBXLinea #3 Transfiere el dato DWORD PTR DS:[40204B] en EDXLinea #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
Mensajes: 3.412
ASMático
|
Es así, no?
|
|
|
En línea
|
|
|
|
karmany
|
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 EBXLinea #3 Transfiere el dato DWORD PTR DS:[40204B] en EDXLinea #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
Mensajes: 3.412
ASMático
|
Si estás con OllyDBG, podrás hacer un BreackPoint. Entonces, mirar en la memoria, que valores hay.
|
|
|
En línea
|
|
|
|
Shell Root
|
Explico un poco mejor... Tengo un crackme que resolvi sólo viendo como se comportaba por dentro -tanteo y error-. 00401050 |. 6A 14 PUSH 14 ; /Count = 14 (20.) 00401052 |. 68 0C304000 PUSH Leccion_.0040300C ; |Buffer = Leccion_.0040300C 00401057 |. 68 EA030000 PUSH 3EA ; |ControlID = 3EA (1002.) 0040105C |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hWnd 0040105F |. E8 8A000000 CALL <JMP.&user32.GetDlgItemTextA> ; \GetDlgItemTextA 00401064 |. 8B1D 0C304000 MOV EBX,DWORD PTR DS:[40300C] 0040106A |. 8B15 4B204000 MOV EDX,DWORD PTR DS:[40204B] 00401070 |. 3BDA CMP EBX,EDX 00401072 |. 74 13 JE SHORT Leccion_.00401087 00401074 |. 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL 00401076 |. 6A 00 PUSH 0 ; |Title = NULL 00401078 |. 68 35204000 PUSH Leccion_.00402035 ; |Text = "Mal Muy MAL" 0040107D |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hOwner 00401080 |. E8 6F000000 CALL <JMP.&user32.MessageBoxA> ; \MessageBoxA 00401085 |. EB 14 JMP SHORT Leccion_.0040109B 00401087 |> 6A 00 PUSH 0 ; /Style = MB_OK|MB_APPLMODAL 00401089 |. 68 41204000 PUSH Leccion_.00402041 ; |Title = "Bravo¡¡¡¡" 0040108E |. 68 28204000 PUSH Leccion_.00402028 ; |Text = "Muy BIEN¡¡¡¡" 00401093 |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |hOwner 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: DS:[0040300C]=00000000 ; Esté sería el serial que ingreso 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
|
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... 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
|
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]. 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
|
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
|
989898 en decimal en F1ACA (fiaca ) 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
|
Ahh si apenas lo lei hoy, ajja lo vi dentro del crackme LECCION 13 HARDCODED 1 00401061 |. BA 08304000 MOV EDX,Leccion_.00403008 ; ASCII "FIACA"
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Por que no me funciona este code? (Juego)
Scripting
|
esparta
|
0
|
2,248
|
4 Noviembre 2007, 14:06 pm
por esparta
|
|
|
No me funciona este code (Encuesta)
Scripting
|
esparta
|
2
|
2,455
|
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
|
9 Junio 2011, 00:19 am
por ganstarflowconsul
|
|
|
¿De donde ha sacado Tuenti este tipo de información?
Mensajería
|
OmarHack
|
2
|
5,903
|
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
|
15 Octubre 2013, 12:42 pm
por erm1234
|
|