【发布时间】:2021-02-22 10:07:30
【问题描述】:
我已经为带有 MinGW 的 windows 安装了 c++ 编译器。我试着做一个简单的程序:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
并将其保存为try.cc。之后我在文件夹中打开 cmd 并运行g++ try.cc -o some.exe。它生成了some.exe,但我的防病毒软件 (avast) 将其识别为恶意软件。我以为它可能是误报,但它明确表示它是木马。
我从病毒箱中删除了文件并将其上传到“https://www.virustotal.com/” 结果:
72 个引擎中有 24 个将其检测为恶意软件,其中很多是木马。
这是误报吗?为什么它会被检测为木马?如果是,我如何避免每次制作新程序时都收到此警告?
编辑:
感谢大家的帮助,我用 2 次防病毒软件对我的电脑进行了全面扫描,一切看起来都很干净。我还对 MinGW 文件夹进行了扫描,但什么也没有。
每次我编写一个新的 c++ 程序时,问题都会不断出现。我尝试修改代码和名称,但 AV 一直将其检测为病毒。有趣的是,更改代码会改变 av 报告的病毒类型。
我仍然不能 100% 确定编译器是干净的,所以我不知道是否应该忽略它并运行程序。我从“https://osdn.net/projects/mingw/releases/”下载了MinGW
如果有人知道如何完全确定创建的可执行文件不是病毒,只有误报,我会很高兴他们分享它。
编辑 2:
我突然想到,如果编译器被感染并且它正在添加代码,那么我可能能够通过反编译器/反汇编器看到它,并为其提供可执行文件。我下载了一个我在这里找到的 c++ 反编译器 "snowman" 并在文件上使用它。问题是代码从原始可执行文件中的 7 行变为 5265,并且有点难以理解。如果有人对逆向工程有一定的经验,原始文件的链接在下面的 cmets 中。
【问题讨论】:
-
除非您的工具链已被感染以使其产生木马,否则我不会担心。您
exe恰好与某些木马共享相同的指纹。看看g++ -O3 -g0 try.cc -o some.exe是否有所作为。 -
看起来像一个真正的肯定(多个不相关的引擎检测到它)。也许您免费下载了一些带有额外恶意软件的狡猾的 mingw 包。立即扫描您的计算机。
-
你到底是怎么安装mingw的?
-
Avast 不是开发机器上可用的产品。