почему антивирус нацелен на конкретные цифры?

Я пытался создать программу на с ++, когда заметил что-то странное: каждый раз, когда часть программы использовала число около 2048 (я думаю, что где-то выше 2001 и меньше 3000), она обнаруживается как подозрительный файл и отправляется в сундук » Avast!». изменение имени переменной, кажется, не имеет значения. Я делал структуру, чтобы добавить вещи к позже
это фрагмент этого. Я могу догадаться, откуда он получает обнаружение по тому, как он выглядит, но он никогда не беспокоит скомпилированный исполняемый файл, если у него нет определенного диапазона чисел
почему это может быть?

 int maxstep=2100;
int maaa[2100];
int curinst;

int main()
{
cout<<"Initializing maaa..."<<endl;

for(int i=0; i<maxstep; i++)
{
maaa[i]=0;
//cout<<"MEM:"<<i<<" "<<maaa[i]<<endl;
}
cout<<"starting core"<<endl;
int stepcnt=0;
for(;;)
{
if(stepcnt<maxstep)
{
curinst=maaa[stepcnt];

}
else
{
cout<<".";
stepcnt=0;
}
stepcnt++;
}

0

Решение

В защиту вирусного программного обеспечения этот код делает несколько вещей, которые кажутся странными. Если бы я оценивал программу по вероятности быть вирусом, код, который вы разместили, кажется довольно вероятным.

Для начала, вы объявили свои 3 основные переменные как глобальные переменные, а не в какой-либо локальной области видимости. Это необычно, но это может быть необходимо.

Затем вы записываете одинаковое значение (0) для каждого элемента массива. Если это было предназначено для инициализации массива, memset или же calloc было бы лучше использовать. Эта реализация делает много записей в глобальную память, каждая из которых, вероятно, является далеким хранилищем. Вирус сделал бы это, если бы он пытался испортить состояние программы.

Наконец, ваша программа входит в бесконечный цикл, в котором читает и пишет из глобальной памяти. Каждая из этих операций, вероятно, представляет собой дальнюю загрузку, за которой следует удаленный магазин. Если антивирусный сканер имеет какой-либо показатель для дальних загрузок и удаленных хранилищ в секунду, ваша программа будет превышать предел.

1

Другие решения

Других решений пока нет …