Loudicrouz.J 2017 年 visual studio 病毒

Loudicrouz.J virus in visual studio 2017

我正在制作一个简单的基于控制台的 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);
    }
}

虽然我的代码工作正常,但我仍然不知道这个病毒背后的原因是什么。我找不到问题的根源。

delay() 方法可能是您在循环中等待的罪魁祸首:

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 调用。循环中的等待触发了反病毒检测机制的一些规则,这可能是可疑的,因为代码正在等待特定的时间来执行一些恶意的东西。使用 Sleep() 函数没有触发它,所以现在它已经解决了。希望对您有所帮助!