#include<stdio.h>
#include<conio.h>
union abc
{
int a;
int x;
float g;
};
struct pqr
{
int a;
int x;
float g;
} ;
void main()
{
union abc b;
struct pqr c;
clrscr();
b.a=10;
textbackground(2);
textcolor(6);
cprintf(" A = %d",b.a);
printf("\nUnion = %d",sizeof(b));
printf("\nStructure = %d",sizeof(c));
getch();
}
Я сохранил эту программу как virus.cpp. Я использую компилятор Turbo C для компиляции этой программы и запуска из Turbo C (Ctrl + F9).
Я использую Windows 7 и установил антивирусную систему Avira AntiVir.
Когда я пытался запустить вышеуказанную программу, она создает червя (DOS / Candy). Я считаю, что в программе нет ничего плохого.
альтернативный текст
Теперь вот что-то особенное. Выполните ту же программу со следующим отличием. Здесь единственная разница - это пространство между \n
:
#include<stdio.h>
#include<conio.h>
union abc
{
int a;
int x;
float g;
};
struct pqr
{
int a;
int x;
float g;
} ;
void main()
{
union abc b;
struct pqr c;
clrscr();
b.a=10;
textbackground(2);
textcolor(6);
cprintf(" A = %d",b.a);
printf("\n Union = %d",sizeof(b));
printf("\n Structure = %d",sizeof(c));
getch();
}
Разница только в \ n и пробеле. У меня вопрос, почему моя простая программа определяется как вирус?
Вот еще один пример кода, на этот раз для C ++:
#include<iostream.h>
#include<conio.h>
class A
{
int a,b;
public:
A()
{
a=0;b=0;
}
A(int x)
{a=x;
b=0;
}
A(int x,int y)
{
a=x;
b=y;
}
~A()
{
cout<<"All things are deleted.";
}
void get()
{
cout<<"\nA = "<<a;
cout<<"\nB = "<<b;
}
};
void main()
{
A a1(5,10);
clrscr();
a1.get();
getch();
}
Когда я запускаю эту программу, она выдает «Virus Warning» - даже это не вирус. Теперь трагедия в том, что вы удаляете деструкторы, но не обнаруживаете их как вирус.
Вот снимок экрана и похожий вопрос:
C Язык - \ n - создание вируса
альтернативный текст
Вопрос в том, как и почему?