Código: Seleccionar todo
/**********************************
* Funcion ReemplazarOffset *
* Coder: Linkgl *
* Fecha: 14/01/11 *
* funcion-linkgl.blogspot.com *
* indetectables.net *
**********************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//Prototipo
int ReemplazarOffset(int pOffset,char nOffset, char * archivo);
//->uso
int main()
{
//vamos a cambiar el offset 8 por la letra w en el archivo hola.txt
if(ReemplazarOffset(8,'w',"hola.txt")==0)
printf("Offset reemplazado con exito");
return 0;
}
//funcion
int ReemplazarOffset(int pOffset,char nOffset, char * archivo)
{
FILE *fp;
char *buffer;
char *temp;
char *final;
int peso;
fp=fopen(archivo,"rb");
if(fp==NULL)
return -1;
fseek(fp,0,SEEK_END);
peso=ftell(fp);
rewind(fp);
final=(char *)malloc(peso);
temp=(char *)malloc(pOffset -1);
fread(temp,pOffset-1,1,fp);
fseek(fp,pOffset-1,SEEK_SET);
buffer=(char *)malloc(peso - (pOffset - 1));
fread(buffer,peso - (pOffset - 1),1,fp);
fclose(fp);
buffer[0]=nOffset;
strcat(final,temp);
strcat(final,buffer);
fp=fopen(archivo,"wb");
if(fp==NULL)
return -1;
fwrite(final,peso,1,fp);
fclose(fp);
free(temp);
free(buffer);
free(final);
return 0;
}