为什么这个短C代码被检测为病毒?

时间:2017-01-17 04:46:47

标签: c malware virus

我刚发现此代码被检测为带有某些防病毒程序的病毒。

#include <stdio.h>

char* func(char *str) {
    return str;
}

void main() {
    char *str = "What the hack\n";
    char *str2 = func(str);
    printf(str2);
}

VirusTotal扫描结果图片:

enter image description here

你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

问题:

您的程序是您编译的可执行文件。这意味着它没有任何背景。例如,如果它与verified publisher相关联,您的程序将会引发更少的标记。 See this post for some more detail on that.此外,您的应用无形地运行;也就是说,它不允许用户输入。 That is often a 'red flag' that will be detected by some antivirus programs.

<强>证明:

编译时,您的初始程序如下所示: as-is 但是,我改变了程序:

#include <stdio.h>

char* func(char *str) {
    return str;
}

void main() {
    char str[] = "What the heck\n";
    char *str2 = func(str);
    printf(str2);
}

程序看起来像这样(单词被改为heck并以不同方式初始化):

slightly altered program

请注意,它看起来完全相同。

现在,当我改变这样的程序时:

#include <stdio.h>

//char* func(char *str) {
//    return str;
//}

void main() {
    char str[] = "What the heck\n";
    //char *str2 = func(str);
    //printf(str2);
}

结果如下:

near-empty program