Hola que tal ?
veran intento buscar una cadena que esta en unicode i que esta dentro de un ejecutable,loo que yo e echo es lo sigueinte:
DWORD Bytes;
HANDLE File = CreateFile("Ar.exe",GENERIC_READ+GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
int Size = GetFileSize(File,0);
LPVOID Buffer[Size];
ReadFile(File,Buffer,Size,&Bytes,0);
Bueno eso me lee el erchivo y me guarda el contenitdo en Buffer,pero como ago ahora para buscar en el buffer una palabra que esta en unicode?,mi idea era con un bucle For buscar los numeros corespondientes a los caracteres,pero nose como plantearlo exactamente :S
for(int i=0;i< sizeof(Buffer);i++)
{
/* aqui que nose que hacer :S */
}
alguna sugerencia?
saludos
La idea del for() es buena. Tienes que hacer un puntero al buffer e ir pasando con un bucle y guardarlo supongo.
Saludos :P
Ya,estoi probando cosas pero no me sale del todo,por ejemplo quiero busar la cadena: Ver",seria asin:
char Letras[6] = {86,0,101,0,114};
int inc = 0;
for(int i=0;i< sizeof(Buffer);i++)
if(Buffer[inc] == Letra)
{
...
break;
}
inc +=1;
}
pero nose como puedo comparar Todo el ARRAY letra con Buffer[inc] es deci comparar todos los parametros del array no solo el primero que seria la primera letra "V"
saluts
Para comparar matrices puedes usar memcmp() (http://www.cplusplus.com/reference/clibrary/cstring/memcmp/).
Saludos :P
El bucle me queda asin:
for(int i=0;i< sizeof(Buffer);i++)
{
if(memcmp(Buffer,Letras,5))
{
MessageBox(0,"Ecnontrado",0,0);
break;
}
inc +=1;
}
pero tiene que estar mal,por que si me lo encuentra pero si cambio el priemr valor de array Letra me lo encunetra igual i no puede ser,ose en vez de "Ver" si le quito la V i pnogo otro caracter,por ejemplo la L seria "Ler" en ves de "Ver" i me lo "Encuentra" igual osea que esta mal,ya nse que hacer :(