gpt4 book ai didi

c++ - 为什么AVG(antivirus)将Dev-C++生成的可执行文件检测为病毒?

转载 作者:可可西里 更新时间:2023-11-01 17:08:17 31 4
gpt4 key购买 nike

我创建了一个默认的Dev-C++项目,而不是通常的return 0;,而是return EXIT_SUCCESS;,并且在编译和运行它时,我的防病毒软件警告我该可执行文件是病毒。

我用Visual C++,Eclipse和Codeblocks尝试了相同的代码,他们都成功地编译了它……所以我在这里有些困惑。

—当其他类似的宏运行正常时,为什么AVG将return EXIT_SUCCESS;行作为Dev-C++生成的可执行文件检测为病毒?

最佳答案

AVG为什么将我的C++程序标记为病毒?

例如,这是AVG检测为病毒的C++程序:

#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
cout << "done";
return 0;
}

运行可执行文件,我得到带有以下文本的AVG弹出窗口:
AVG Resident Shield Alert
Threat detected!
File name: c:\Documents and Settings\eleschinski\Desktop\workspace\CppApplication_2\dist\Debug\MinGW-Windows\cppapplication_2.exe
Threat name: Trojan horse Agent3.CJAI (More Info)
Move to Vault (Reccommended)
Go to file
Ignore the threat

AVG的屏幕截图:

总结,这是怎么回事?

AVG防病毒程序是一种在计算机上运行的程序,该程序使用启发式方法和其他不精确的算法来识别哪些程序具有有害的恶意程序。 AVG将可执行文件的内容作为输入,并确定程序不安全。

防病毒编写者正在使用 Enumerating Badness策略来识别世界上的恶意软件,并且此举再次受到人们的欢迎,因为这是检测恶意软件问题的错误方法。枚举不良的一个问题是误报,这是您现在遇到的问题。

为更好地理解问题而采取的步骤:

步骤1. 首先,您要非常确定AVG正在提示哪个文件。为此,请转到AVG->“工具”菜单->“扫描文件”。选择在威胁窗口中定义的有问题的可执行文件或文件。 AVG将立即扫描文件,并建议将其添加到Vault中。在这一点上,您可以知道AVG认为仅此文件就是恶意软件。

步骤2。获得关于此恶意软件/病毒文件的第二意见,更好的是,获得50个独立的第二意见。转到网站 https://www.virustotal.com,您可以免费上传文件,该文件将由大约50个不同的防病毒程序进行分析,如果大多数人认为它是病毒,那么AVG做得很好。但是,如果只有少数杀毒软件将您的文件标记为恶意文件,则AVG可能会产生误报。

步骤3。要使AVG确信您的C++程序是安全的,一种简单的方法是在c++程序的开头添加c++语句: system("pause");,然后重新编译并重新运行。对于我来说,AVG随后会警告我,我单击“忽略”,然后无论如何我都可以运行它。另外,请尝试在主函数末尾使用“返回1”而不是“返回0”。它会让您运行它。如果这看起来很奇怪,那就是。通过使防病毒软件看到许多误报,病毒编写者比防病毒编写者更聪明。

步骤4. 查看是否可以将程序列入白名单。进入AVG中的“病毒库”。 AVG->“历史记录”菜单->“病毒库”。找到代表您有问题的C++程序的行项目,并将其从病毒库中释放,或将其列入白名单,然后重试。

解决方案:

选项1:确认病毒编写者正在赢得反病毒软件的 war 。隐藏事物要比调查所有事物并发现所有缺陷要容易得多。 AVG无法分辨合法病毒和您刚刚制作的某些c++程序之间的区别。获取新的防病毒软件,或获取不需要防病毒软件(linux)的操作系统,或完全不使用防病毒软件,并保留大量离线脱机备份。

选项2:告诉AVG停止分析扩展名为.EXE的文件。警告这将降低AVG保护您的计算机免受真实病毒/恶意软件的侵害。转到AVG控制台->工具->高级设置->防病毒-> Resident Shield->专家设置。您将看到一个带有标签的文本框:“始终扫描具有以下扩展名的文件”。从该文本框中删除 EXE;。保存并尝试重新运行您的程序。 AVG将不再提示您的something.exe可执行文件。

选项3:在您的C++程序中拨弄小工具,直到不再被标记为病毒为止。添加一些 #include库,但不包括其他库。无关紧要的更改可能会使AVG完全不同,从而确定您的文件是恶性的。

如果来自AVG的任何人有兴趣追查此错误,请为上面的 here is the false positive executable

关于c++ - 为什么AVG(antivirus)将Dev-C++生成的可执行文件检测为病毒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7987712/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com