我已经在Windows上安装了一个使用MinGW的C ++编译器。 我试图制作一个简单的程序:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
我把文件保存为try.cc
,然后在文件夹中运行了g++ try.cc -o some.exe
。它生成了some.exe
但我的杀毒软件(avast)认为它是恶意软件。虽然我觉得这可能是误报,但它明确指出它是特洛伊木马。
我从病毒库中删除了该文件,并将其上传到“https://www.virustotal.com/”
结果:
![https://istack.dev59.com/jC2oz.webp](https://istack.dev59.com/jC2oz.webp)
72个引擎中有24个检测到它是恶意软件,其中很多都是特洛伊木马。
这是否是误报?为什么会被检测为特洛伊木马?如果是,请问我如何避免每次创建新程序时都收到此警告?
编辑:
感谢大家提供的帮助,我使用了两个杀毒软件对计算机进行了全面扫描,一切看起来都很干净。我还对MinGW文件夹进行了扫描,也没有发现问题。
每次我创建新的C++程序时问题仍然存在。我尝试修改代码和名称,但是杀毒软件仍然将其检测为病毒。有趣的是,更改代码会改变杀毒软件报告的病毒类型。
我仍然不确定编译器是否干净,所以我不知道是否应该忽略它并运行程序。我从“https://osdn.net/projects/mingw/releases/”下载了MinGW。
如果有人知道如何完全确定生成的可执行文件不是病毒,而只是误报,请分享一下。
编辑2:
我想到了一个想法,如果编译器受到感染并添加了代码,那么我可能可以通过反汇编器来查看它,将可执行文件输入到它中。我在这里找到了一个c++反编译器“snowman”并将其用于文件。问题是原始可执行文件中的7行代码变成了5265行,有点难以理解。如果有人有关于逆向工程的经验,原始文件的链接在下面的评论中。
exe
只是碰巧与某些特洛伊木马共享相同的指纹。尝试使用g++ -O3 -g0 try.cc -o some.exe
命令,查看是否有所不同。 - Ted Lyngmo