Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Riki_89D en 30 Mayo 2010, 18:35 pm



Título: Buscar cadena UNICODE en un exe
Publicado por: Riki_89D en 30 Mayo 2010, 18:35 pm
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
  1. DWORD Bytes;
  2.  
  3. HANDLE File = CreateFile("Ar.exe",GENERIC_READ+GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0);
  4. int Size = GetFileSize(File,0);
  5. LPVOID Buffer[Size];
  6. ReadFile(File,Buffer,Size,&Bytes,0);
  7.  
  8.  

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
  1. for(int i=0;i< sizeof(Buffer);i++)
  2. {
  3. /* aqui que nose que hacer :S */
  4.  
  5. }
  6.  

alguna sugerencia?

saludos


Título: Re: Buscar cadena UNICODE en un exe
Publicado por: Horricreu en 30 Mayo 2010, 20:08 pm
La idea del for() es buena. Tienes que hacer un puntero al buffer e ir pasando con un bucle y guardarlo supongo.

Saludos :P


Título: Re: Buscar cadena UNICODE en un exe
Publicado por: Riki_89D en 30 Mayo 2010, 20:15 pm
Ya,estoi probando cosas pero no me sale del todo,por ejemplo quiero busar la cadena: Ver",seria asin:
Código
  1. char Letras[6] = {86,0,101,0,114};
  2. int inc = 0;
  3.  
  4. for(int i=0;i< sizeof(Buffer);i++)
  5. if(Buffer[inc] == Letra)
  6. {
  7. ...
  8. break;
  9.  
  10. }
  11. inc +=1;
  12. }
  13.  

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


Título: Re: Buscar cadena UNICODE en un exe
Publicado por: Horricreu en 30 Mayo 2010, 20:18 pm
Para comparar matrices puedes usar memcmp() (http://www.cplusplus.com/reference/clibrary/cstring/memcmp/).

Saludos :P


Título: Re: Buscar cadena UNICODE en un exe
Publicado por: Riki_89D en 30 Mayo 2010, 20:36 pm
El bucle me queda asin:
Código
  1. for(int i=0;i< sizeof(Buffer);i++)
  2. {
  3. if(memcmp(Buffer,Letras,5))
  4. {
  5.                MessageBox(0,"Ecnontrado",0,0);
  6.                break;
  7.                }
  8.  
  9. inc +=1;
  10. }
  11.  

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