Buscar cadena UNICODE en un exe

Iniciado por Riki_89D, 30 Mayo 2010, 18:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Riki_89D

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:
Código (cpp) [Seleccionar]

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

Código (cpp) [Seleccionar]

for(int i=0;i< sizeof(Buffer);i++)
{
/* aqui que nose que hacer :S */

}


alguna sugerencia?

saludos

Horricreu

#1
La idea del for() es buena. Tienes que hacer un puntero al buffer e ir pasando con un bucle y guardarlo supongo.

Saludos :P

Riki_89D

Ya,estoi probando cosas pero no me sale del todo,por ejemplo quiero busar la cadena: Ver",seria asin:
Código (cpp) [Seleccionar]

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

Horricreu

#3
Para comparar matrices puedes usar memcmp().

Saludos :P

Riki_89D

El bucle me queda asin:
Código (cpp) [Seleccionar]

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 :(