Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Riki_89D en 16 Enero 2010, 19:40 pm



Título: Programa para saver Nombre de clase????
Publicado por: Riki_89D en 16 Enero 2010, 19:40 pm
Hola que tal,veran saven si existe algun programa que me diga el nombre d ela clase de los controles que tiene una ventana?????? los botones,los comobobx etc etc para despues modificarlos desde mi App,intete utilizar WnumWindows,EnumWindowsChild,GetCLassName i algunas mas pero no se como hacelor nuna utilize esas Api

lo que quiero por ejemplo es saver como se dice la clase de control Donde escribimos en el MSN (por ejemplo)

nse si me entendieron



salu2


Título: Re: Programa para saber Nombre de clase????
Publicado por: bizco en 17 Enero 2010, 05:08 am
spy++


Título: Re: Programa para saber Nombre de clase????
Publicado por: Riki_89D en 17 Enero 2010, 17:26 pm
Hola gracias por tu respuesta,utilize ese soft pero nose como aplicarlo ahora con las Api FindWindow y FindWindowEx,

ese programa me dice la clase como pro ejemplo Button RichEdit i tal i me da un
handle Con NUmero,como puedo yo modificar ese control sabiendo el Handle Que me da Spy++?? lo e probado i mira tengo este code:
Código
  1. .data
  2. Ven DB 'Windows Live Messenger',0
  3. Clase db 'Button',0
  4.  
  5. .data?
  6.  
  7. Buffer db 32 dup(?)
  8.  
  9. .code
  10. start:
  11. WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
  12. Local hand:HWND
  13. mov hand,8454538   ;Handle que me da el Spy++ :S
  14.  
  15.  
  16. invoke FindWindowEx,offset Ven,hand,offset Clase,0
  17. invoke GetWindowText,eax,OFFSET Buffer,SIZEOF Buffer
  18. invoke MessageBox,0,offset Buffer,0,0
  19.  
  20. WinMain endp
  21.  
  22. invoke ExitProcess,0
  23.  

pero nada no me funciona no me muestra el texto del boton :(




Título: Re: Programa para saber Nombre de clase????
Publicado por: Eternal Idol en 17 Enero 2010, 18:36 pm
TENES que leer la MSDN si queres trabajar con Windows:
http://msdn.microsoft.com/en-us/library/bb787605(VS.85).aspx

Ver por ejemplo EM_GETTEXTEX.


Título: Re: Programa para saber Nombre de clase????
Publicado por: Saint Iker en 18 Enero 2010, 15:26 pm
Te lo dejo en C que me da joda pasarlo a MASM.

Código:
#include <cstdio>
#include <cstdlib>
#include <windows.h>

#define MAX_CLASS 256
#define MAX_TEXT 2048
#define PROGRAM_STR "XXXXXXXXXXXXXXXXXXX"

BOOL CALLBACK EnumChildProc( HWND hWnd, LPARAM lParam)
{
char szClass[MAX_CLASS + 1];
char szText[MAX_TEXT + 1];
int iAux, iLen;

if (hWnd == NULL)
return FALSE;

memset( szText, 0x00, MAX_TEXT + 1);
memset( szClass, 0x00, MAX_CLASS + 1);

iLen = GetWindowText( hWnd, szText, MAX_TEXT);
iAux = GetClassName( hWnd, szClass, MAX_CLASS);

if (iAux <= 0 && iLen <= 0) {
printf("Unkownn Control Window Identifier[%X]\r\n", hWnd);
return TRUE;
}

printf("\tControl Class[%s], Text[%s]\r\n", szClass, szText);

EnumChildWindows( hWnd, EnumChildProc, NULL);

return TRUE;
}

BOOL CALLBACK EnumMainProc( HWND hWnd, LPARAM lParam)
{
char szText[MAX_TEXT + 1];
int iLen = 0;

if (hWnd == NULL)
return FALSE;

memset( szText, 0x00, MAX_TEXT + 1);

iLen = GetWindowText( hWnd, szText, MAX_TEXT);

if (iLen <= 0)
return TRUE;

if (stricmp( szText, PROGRAM_STR) != 0)
return TRUE;

EnumChildWindows( hWnd, EnumChildProc, NULL);

return TRUE;
}

int main( void )
{
EnumWindows( EnumMainProc, NULL);

return 0;
}

Salu2.

Att: Iker