Вирус Loudicrouz.J в визуальной студии 2017 - PullRequest
0 голосов
/ 04 апреля 2020

Я создавал простое консольное приложение на C ++ и делал панель загрузки с помощью Visual Studio 2017. Я обнаружил ошибку с сообщением о том, что мой код содержит потенциально ошибки или вирусы. Microsoft Security обнаруживает его как Torjan: Win32 / Loudicrouz.J (серьезный) .

Вот мой код:

#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <time.h>
#include <Windows.h>

using namespace std;

class loading_bar {
    int loading_percentage;
    int loading_per_increment;
public:
    loading_bar();
    void print_loading_bar();
    void delay(int);
};

void loading_bar::delay(int milliseconds)
{
    clock_t start = clock();
    while ((clock() - start) * 1000 / CLOCKS_PER_SEC < milliseconds) {

    }
}

loading_bar::loading_bar() {
    loading_percentage = 0;
    loading_per_increment = 1;
}

void loading_bar::print_loading_bar() {
    for (; loading_percentage < 50; loading_percentage++) {
        system("cls");
        cout << "\n\n\n\n";
        cout << "\t\t\t\t";
        cout << "--------------------------------------------------\n";
        cout << "\t\t\t\t";
        cout << "|";
        for (int i = 0; i < loading_percentage; i++) {
            cout << char(219);
        }
        for (int j = 49 - loading_percentage;j>0; j--) {
            cout << " ";
        }
        cout << "|\n";
        cout << "\t\t\t\t";
        cout << "--------------------------------------------------\n";
        delay(100 / loading_per_increment);
    }
}

Хотя мой код работает нормально, и я до сих пор не знаю, в чем причина этого вируса. Я не смог найти проблему, где это было вызвано.

1 Ответ

0 голосов
/ 04 апреля 2020

Метод delay() может быть виновником, когда вы ждете в l oop:

void loading_bar::delay(int milliseconds)
{
    clock_t start = clock();
    while ((clock() - start) * 1000 / CLOCKS_PER_SEC < milliseconds) {

    }
}

Замените его на Sleep() следующим образом:

void loading_bar::delay(int milliseconds)
{
    Sleep( milliseconds );
}

Скорее всего, ваш антивирус запускает ваш исполняемый файл в среде песочницы и наблюдает за его поведением, то есть вызовами API. Это ожидание в l oop запускает какое-то правило механизма антивирусного обнаружения, которое может быть подозрительным, поскольку код ожидает определенного времени для выполнения некоторых вредоносных действий. Использование функции Sleep() не вызывало ее, поэтому теперь оно разрешено. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...