编译的C可执行文件被Windows defender检测为病毒

Compiled C executable is detected as a virus by windows defender

本文关键字:defender 检测 病毒 Windows 可执行文件 编译      更新时间:2023-10-16

我用命令行用MinGW编译器用C编译了一个简单的hello world程序。当它完成编译时,Windows defender弹出并检测到病毒(Trojan:Win32/Fuery.C!cl(。

#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Hello World");
return 0;
}

https://i.stack.imgur.com/qGUYo.jpg

我已经按照Windows Defender的建议对此采取了行动(已删除(,但是当我再次编译时,同样的事情发生了多次。

我已经下载了一个防病毒软件(Malwarebytes(并扫描了我的整个系统,它检测到一些注册表项错误,但不是这个。

我也尝试编译C++文件,但Windows Defender在那里没有检测到任何病毒。这只发生在我用 C 编译时。

我也尝试在VirusTotal上检查编译的可执行文件。 https://www.virustotal.com/gui/file/476d47215dad80db49c9fd508ab5e10e5aeb5b623248ca156830a28b70affe5f/detection

我尝试了CodeBlock的MinGW编译器,0引擎检测到它。(相同的 C 文件( https://www.virustotal.com/gui/file/8ba4b0fa24b1b6b69152acce2353fcca8447bbecbfc4e5ec48d33cc75d94f2f1/detection

编辑:我删除了C:/MinGW的路径变量,并添加了CodeBlock的MinGW编译器。然后,我使用命令行再次编译相同的C文件,并将.exe文件上传到VirusTotal。这次,检测到 0 个引擎。所以我得出的结论是,我安装的 MinGW 编译器正在制造这个问题。 https://www.virustotal.com/gui/file/34d383f6c09f897d8c9a44ed0e7850574320e50fdf439eeb1f06705fdcc95386/detection

我不知道为什么会这样。我的计算机中是否有影响我的 C 程序的恶意软件,或者这是错误检测?

没有恶意软件,它是误报。您的 MinGW 版本生成的可执行文件看起来与特定病毒非常相似。

为避免此问题,请将构建代码的目录添加到防病毒软件的排除列表中。

还可以考虑使用 mingw-w64 而不是 mingw.org 。

我遇到了同样的问题,编译器tdm gcc v9.2。

以下编译会触发警告(卡巴斯基(。

gcc temp.c -o temp.exe

以下不

gcc -O3 temp.c -o temp.exe

其中temp.c

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("mod %4d, %4d is %4dn", a, b, a%b);
return 0;
}

使用 g++ 的相同代码通过两个编译的测试。防病毒软件不会在其他地方检测到相同的病毒,而只会在temp.exe(第一次编译(中检测到相同的病毒。

我可能已经解决了我的问题。

这就是我所做的:我删除了 C:\MinGW 的 PATH 变量,并添加了 CodeBlock 的 MinGW 编译器(CodeBlocks/MinGW/bin(。我使用命令行编译相同的C文件,并将.exe上传到VirusTotal。没有引擎检测到此文件! https://www.virustotal.com/gui/file/34d383f6c09f897d8c9a44ed0e7850574320e50fdf439eeb1f06705fdcc95386/detection

所以我得出的结论是,MinGW是导致这个问题的编译器。我已经删除了它。

但是,我不太确定这个问题是否已完全解决。恶意软件仍然有可能影响我的可执行文件(或者可能不影响(。我不能确定。

如果有人有任何答案,请评论或回答

由于您编写了该程序并且您知道它实际上不是特洛伊木马,因此它显然是误报。您应该在 https://www.microsoft.com/wdsi/filesubmission 将文件提交给他们,以便他们找出触发误报的原因并修复它。(如果您编译的所有内容都发生这种情况,只需发送一个就足够了。同时,您应该为编译可执行文件的文件夹向Windows Defender添加排除项。

我在01-08-20(dd-mm-yy( 上安装 MinGW 后遇到了这个问题。 对我来说,它也是Windows Defender,希望暂时摆脱这种情况的方法是为编译输出将驻留的文件夹添加一个例外。 Microsoft网站说明了添加排除项的步骤:

  1. 转到"开始">设置>"更新和安全">"Windows 安全中心">"病毒和威胁防护"。
  2. 在"病毒和威胁防护设置"下,选择"管理设置",然后在"排除
  3. 项"下,选择"添加或删除排除项">

我也有类似的问题。我发现缺少以下dll:mingw32-libmingwex-dll。一旦我通过"MinGW安装包"安装它,我就不再有问题了。 我希望这可以帮助其他人。