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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  problema con Interfaz
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: problema con Interfaz  (Leído 8,264 veces)
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
problema con Interfaz
« en: 6 Junio 2014, 06:17 am »

hice este codigo y pretendo mostrar una cadena pero me sale error alguien me ayuda?

Código:

format PE GUI 4.0
entry start

include 'c:\FASM\INCLUDE\win32a.inc'

ID_CAPTION         = 101
ID_MESSAGE         = 102

section '.code' code readable executable

  start:
        invoke  GetModuleHandle,0
        invoke  DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0

proc DialogProc hwnddlg,msg,wparam,lparam
        cmp     [msg],WM_INITDIALOG
        je      .proceso
        cmp     [msg],WM_COMMAND
        je      .funcion
        cmp     [msg],WM_CLOSE
        je      .cerrar
        xor     eax,eax
        jmp     .finish

  .funcion:
        cmp     [wparam],BN_CLICKED shl 16 + IDCANCEL
        je      .cerrar
        cmp     [wparam],BN_CLICKED shl 16 + IDOK
        jne     .proceso

  .cerrar:
        invoke  EndDialog,[hwnddlg],0
  .proceso:



           invoke SetDlgItemText,[hwnddlg],ID_MESSAGE,'hola'



  .finish:
        ret
endp

section '.data' readable writeable

  flags dd ?
  caption rb 40h
  message rb 100h
  _outhandle    dd   ?
  _written      dd   ?
  buscado dd ?
  wfd        WIN32_FIND_DATA
  handle        dd   ?
  encontrado    dd   ?

;====================IMPORTS===============================================
section '.idata' import data readable writeable

  library kernel,'KERNEL32.DLL',\
          user,'USER32.DLL'

  import kernel,\
         AllocConsole, 'AllocConsole',\
         GetStdHandle, 'GetStdHandle',\
         WriteConsole, 'WriteConsoleA',\
         ReadConsole, 'ReadConsoleA',\
         ExitProcess, 'ExitProcess',\
          WriteFile,'WriteFile',\
          lstrlen,'lstrlen',\
          FindFirstFile,'FindFirstFileA',\
          FindNextFile,'FindNextFileA',\
          FindClose,'FindClose',\
         GetModuleHandle,'GetModuleHandleA',\
         lstrcat, 'lstrcat'.\

  import user,\
         DialogBoxParam,'DialogBoxParamA',\
         SetDlgItemText,'SetDlgItemTextA',\
         GetDlgItemText,'GetDlgItemTextA',\
         SendDlgItemMessage ,'SendDlgItemMessageW',\
         LoadIcon , 'LoadIconA',\
         SendMessage , 'SendMessageA',\
         AnimateWindow, 'AnimateWindow',\
         SetFocus , 'SetFocus',\
         GetDlgItemInt, 'GetDlgItemInt',\
         SetDlgItemInt, 'SetDlgItemInt',\
         wsprintf, 'wsprintfA',\
         MessageBox, 'MessageBoxA',\
         EndDialog,'EndDialog'

section '.rsrc' resource data readable

  directory RT_DIALOG,dialogs

  resource dialogs,\
           37,LANG_ENGLISH+SUBLANG_DEFAULT,creacion

  dialog creacion,'LISTADOR DE ARCHIVOS',70,70,190,175,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
    dialogitem 'STATIC','&DIRECTORIO:',-1,10,10,70,8,WS_VISIBLE
    dialogitem 'EDIT','',ID_CAPTION,10,20,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP
    dialogitem 'STATIC','&CONTENIDO:',-1,10,40,70,8,WS_VISIBLE
    dialogitem 'EDIT','',ID_MESSAGE,10,50,170,100,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL
    dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON
    dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
  enddialog       


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #1 en: 6 Junio 2014, 08:44 am »

Cuando tengas excepciones no controladas como es el caso usa el WinDbg para investigar. Aca podes ver rapidamente, extracto de comando kb:

000cfc04 00401060 007c05d4 00000066 616c6f68 USER32!SetDlgItemTextA+0x21
000cfc18 74dd62fa 007c05d4 00000110 002a22ac image00400000+0x1060

0:000> db 000cfc04
000cfc04  18 fc 0c 00 60 10 40 00-d4 05 7c 00 66 00 00 00  ....`.@...|.f...
000cfc14  68 6f 6c 61 44 fc 0c 00-fa 62 dd 74 d4 05 7c 00  holaD....b.t..|.
000cfc24  10 01 00 00 ac 22 2a 00-00 00 00 00 1a 10 40 00  ....."*.......@.
000cfc34  cd ab ba dc 01 00 00 00-01 00 00 00 1a 10 40 00  ..............@.
000cfc44  c0 fc 0c 00 df f9 df 74-1a 10 40 00 d4 05 7c 00  .......t..@...|.
000cfc54  10 01 00 00 ac 22 2a 00-00 00 00 00 b7 a9 a8 04  ....."*.........
000cfc64  00 00 00 00 10 01 00 00-80 30 b1 00 24 00 00 00  .........0..$...
000cfc74  01 00 00 00 00 00 00 00-00 00 00 00 30 00 00 00  ............0...

'hola' esta en la pila como tercer parametro, empujaste esos 4 caracteres cuando lo que necesitas empujar es un PUNTERO a una CADENA (serie de caracteres con su 0 terminador).

Despues tenes un stack overflow, procesas WM_INITDIALOG y al llamar a SetDlgItemText generas un WM_COMMAND, este lo procesas saltando de nuevo a .proceso ... y asi hasta que se agota la pila, no saltes a proceso desde .funcion y pensa de nuevo la logica del programa.

Aca algo al respecto:
https://groups.google.com/forum/#!topic/comp.lang.asm.x86/t3MPZkJ8kCc

Insisto: no se puede correr cuando no se sabe gatear ... tenes que empezar desde cero.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #2 en: 7 Junio 2014, 01:43 am »

este es mi avance lei la documentacion pero no logre que funciones
pero bueno seguire tu consejo y probare con WinDbg
Código:

format PE GUI 4.0
entry start

include 'c:\FASM\INCLUDE\win32a.inc'

ID_CAPTION         = 100
ID_MESSAGE         = 102

section '.code' code readable executable

  start:
        invoke  GetModuleHandle,0
        invoke  DialogBoxParam,eax,37,HWND_DESKTOP,DialogProc,0

proc DialogProc hwnddlg,msg,wparam,lparam
        cmp     [msg],WM_INITDIALOG
        je      .funcion
        cmp     [msg],WM_COMMAND
        je      .funcion
        cmp     [msg],WM_CLOSE
        je      .finish
        xor     eax,eax
        jmp     .cerrar

  .funcion:
        cmp     [wparam],BN_CLICKED shl 16 + IDOK
        jne     .proceso
        cmp     [wparam],BN_CLICKED shl 16 + IDCANCEL
        je      .finish

  .proceso:

           invoke SetDlgItemText,[hwnddlg],ID_MESSAGE,[prueba]

           jmp .cerrar
  .finish:
       invoke  EndDialog,[hwnddlg],0
  .cerrar:
        ret
endp

section '.data' readable writeable

  flags dd ?
  caption rb 40h
  message rb 100h
  _outhandle    dd   ?
  _written      dd   ?
  buscado dd ?
  wfd        WIN32_FIND_DATA
  handle        dd   ?
  encontrado    dd   ?
  prueba        dd  'hola',0

;====================IMPORTS===============================================
section '.idata' import data readable writeable

  library kernel,'KERNEL32.DLL',\
          user,'USER32.DLL'

  import kernel,\
         AllocConsole, 'AllocConsole',\
         GetStdHandle, 'GetStdHandle',\
         WriteConsole, 'WriteConsoleA',\
         ReadConsole, 'ReadConsoleA',\
         ExitProcess, 'ExitProcess',\
          WriteFile,'WriteFile',\
          lstrlen,'lstrlen',\
          FindFirstFile,'FindFirstFileA',\
          FindNextFile,'FindNextFileA',\
          FindClose,'FindClose',\
         GetModuleHandle,'GetModuleHandleA',\
         lstrcat, 'lstrcat'.\

  import user,\
         DialogBoxParam,'DialogBoxParamA',\
         SetDlgItemText,'SetDlgItemTextA',\
         GetDlgItemText,'GetDlgItemTextA',\
         SendDlgItemMessage ,'SendDlgItemMessageW',\
         SendMessage , 'SendMessageA',\
         AnimateWindow, 'AnimateWindow',\
         wsprintf, 'wsprintfA',\
         MessageBox, 'MessageBoxA',\
         EndDialog,'EndDialog'

section '.rsrc' resource data readable

  directory RT_DIALOG,dialogs

  resource dialogs,\
           37,LANG_ENGLISH+SUBLANG_DEFAULT,creacion

  dialog creacion,'LISTADOR DE ARCHIVOS',70,70,190,175,WS_CAPTION+WS_POPUP+WS_SYSMENU+DS_MODALFRAME
    dialogitem 'STATIC','&DIRECTORIO:',-1,10,10,70,8,WS_VISIBLE
    dialogitem 'EDIT','',ID_CAPTION,10,20,170,13,WS_VISIBLE+WS_BORDER+WS_TABSTOP
    dialogitem 'STATIC','&CONTENIDO:',-1,10,40,70,8,WS_VISIBLE
    dialogitem 'EDIT','',ID_MESSAGE,10,50,170,100,WS_VISIBLE+WS_BORDER+WS_TABSTOP+ES_AUTOHSCROLL
    dialogitem 'BUTTON','OK',IDOK,85,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_DEFPUSHBUTTON
    dialogitem 'BUTTON','C&ancel',IDCANCEL,135,150,45,15,WS_VISIBLE+WS_TABSTOP+BS_PUSHBUTTON
  enddialog    



COMO MOSTRAR VARIAS LINEAS EN DIALOG BOX

CUANDO INTENTO MOSTRAR VARIAS LINEAS SE SOBRE ESCRIBE UNO SOBRE OTRO AYUDA !!!


o tendria que concatenar para que sea una sola cadena?
« Última modificación: 7 Junio 2014, 11:08 am por Eternal Idol » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #3 en: 7 Junio 2014, 11:09 am »

No solucionaste ninguno de los problemas anteriores, el programa sigue generando dos excepciones no controladas.  Deberias hacerte cargo de eso antes de intentar mostrar mas de una linea en un EDIT, ese control muestra texto, asi que si, tenes que concatenar y usar saltos de linea.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #4 en: 8 Junio 2014, 00:40 am »

no existe alguna posibilidad de mostrar en dialog box sin concatenar todas las lineas?
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #5 en: 8 Junio 2014, 08:37 am »

Podrias usar otro control en lugar de EDIT, un LISTBOX por ejemplo. Esto no tiene nada que ver con assembly sino que es un uso elemental de la API de Windows.

Antes de volver a consultar repasa todos estos tutoriales:
http://win32assembly.programminghorizon.com/tutorials.html
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: problema con Interfaz
« Respuesta #6 en: 11 Junio 2014, 19:36 pm »

Yo te pase el mismo enlace DeviiAC, ahí tenes si o si la solución, y en español si así lo prefieres...  :rolleyes:

Saludos!
En línea

bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #7 en: 12 Junio 2014, 02:47 am »

gracias Vaagish y Eternal Idol por toda la ayuda!!!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: problema con Interfaz
« Respuesta #8 en: 12 Junio 2014, 11:11 am »

De nadas  ::)
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: problema con Interfaz
« Respuesta #9 en: 12 Junio 2014, 19:38 pm »

De nada! Suerte!!  ;D

Saludos!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema para Imprimir Interfaz en VB6.0
Programación Visual Basic
cybermatrix2005 1 1,866 Último mensaje 1 Marzo 2006, 11:24 am
por _Sergi_
Problema con interfaz de wireshark
GNU/Linux
SheKeL_C$ 8 17,440 Último mensaje 18 Octubre 2013, 21:53 pm
por ccrunch
BackTrack Problema con red wifi [Interfaz wlan0] « 1 2 »
GNU/Linux
Debci 14 16,029 Último mensaje 11 Agosto 2011, 20:22 pm
por Foxy Rider
Problema con Interfaz Humana HiD
Hardware
gamer12 6 5,890 Último mensaje 8 Diciembre 2010, 09:00 am
por flacc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines