Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: krosty123 en 17 Septiembre 2010, 22:10 pm



Título: El for() no reconoce las marcas
Publicado por: krosty123 en 17 Septiembre 2010, 22:10 pm
Hola que tal, el problema es el siguiente, cuando el programa se ejecuta y hace un for en busca de unas marcas ( '*' y '°') este no las encuentra.
Depure el programa y lo que me salio fue: "Se ha producido una violacion de acceso a memoria", el contador i estaba en: "16444".
El codigo de busqueda es el siguiente:



Código:
for(int i=0;i<tamanio;i++)
  {
          if(buffer[i] == '*' && buffer[i+1] == '*')
          {
                exe1 = buffer+i+2;
                a = i+2;
                break;        
          }

Y el codigo donde se agregan las marcas es el siguiente:



Código:
void crearFichero(char* buffer1, int tamanio1, char* buffer2, int tamanio2)
{
  char info[1];
  char info2[1];
  info[0] = '*';
  info[1] = '*';
  info2[0] = '°';
  info2[1] = '°';
  CopyFile("main.exe","bindedm.exe",TRUE);
  ofstream escritura1("bindedm.exe", ofstream::binary | ofstream::app);
  escritura1.write(info, strlen(info));
  escritura1.write(buffer1, tamanio1);
  escritura1.write(info2, strlen(info2));
  escritura1.write(buffer2, tamanio2);
  escritura1.close();
}

Aver quien me da una mano.
Gracias


Título: Re: El for() no reconoce las marcas
Publicado por: kondrag_X1 en 17 Septiembre 2010, 23:35 pm
haber te da un error por qe la array se sale de tamaño en "buffer[i+1] == '*' " por que cuando llega al ultimo elemento tu le sumas uno en la posicion (i) y te sales fuera de la array. Lo que veo raro es que el error no sea array no found o algo parecido


Título: Re: El for() no reconoce las marcas
Publicado por: krosty123 en 18 Septiembre 2010, 00:05 am
Mmm no, probe poniendo solo if buffer == '*' y sale exactamente el mismo error, cuando i llega a 16.444 crashea.
Saludos