c++导致病毒错误

C++ causing VIRUS errors?

本文关键字:错误 病毒 c++      更新时间:2023-10-16

看完这篇文章,你可能会说我疯了,但我真的希望你相信我。为了了解可能导致内存泄漏或其他错误的情况,我编写了以下代码并尝试在我的pc上编译,

#include <iostream>
using namespace std;
class game
{
   int x;
   public : 
   char *s;
   char read();
   char manipulation();
};
char game :: read()
{
   char string[100];
   cout<<"Enter name ";
   cin>>string;
   s = string;
   cout<<"Name is "<<&s<<endl;
}
int main()
{ 
   game games,games1;
  // games.read();
   cout<<"Name is "<<games.s<<endl;
   return 0;
}

如果我在主程序中执行games.read(),我的杀毒软件BITDEFENDER显示以下错误,"BITDEFENDER在c:/c++/inline.exe中检测到受感染的项目。"病毒名称:Gen:Variant.Graftor.51542。为保护您,文件已消毒"

inline.cpp是我的程序名。如果我删除那行"games.read()",它编译得很好。指针是否在某处导致内存泄漏?

您的杀毒程序刚刚发现了一个免费后使用的漏洞。

string本地数组。
read()退出后不能使用

如果你的系统声称你的代码是病毒,那么你没有什么可担心的,因为你正在失去理智;你不是。

病毒扫描程序将查找与病毒一致的行为模式并报告它们。它们并不完美,非病毒行为有时看起来像病毒。

例如,典型的病毒策略是使用无效的指针写来运行任意代码。最早的一种病毒就使用了这种方法,现在它仍然是一种常见的策略(我记得不久前有一个IE更新来解决这个问题)。因此,如果你有一个指针错误(正如前面的海报所指出的),那么它可能看起来像一个病毒。