为什么防病毒软件似乎针对特定的数字? 当我注意到一些奇怪的事情时,我试图在C++中编写一个程序:每次程序的一部分使用一个接近2048的数字(我认为在2001以上,小于3000),它被检测为可疑文件,并通过“avAST!”发送到胸腔。更改变量名似乎没有什么区别。我正在制作一个结构,以便以后添加内容 这是它的一个片段。从外观上看,我可以猜出它是从哪里得到检测的,但除非它有一个特定的数字范围,否则它永远不会影响已编译的可执行文件 为什么会这样 int maxstep=2100; int maaa[2100]; int curinst; int main() { cout<<"Initializing maaa..."<<endl; for(int i=0; i<maxstep; i++) { maaa[i]=0; //cout<<"MEM:"<<i<<" "<<maaa[i]<<endl; } cout<<"starting core"<<endl; int stepcnt=0; for(;;) { if(stepcnt<maxstep) { curinst=maaa[stepcnt]; } else { cout<<"."; stepcnt=0; } stepcnt++; } int maxstep=2100; int maaa[2100]; int curinst; int main() { cout

为什么防病毒软件似乎针对特定的数字? 当我注意到一些奇怪的事情时,我试图在C++中编写一个程序:每次程序的一部分使用一个接近2048的数字(我认为在2001以上,小于3000),它被检测为可疑文件,并通过“avAST!”发送到胸腔。更改变量名似乎没有什么区别。我正在制作一个结构,以便以后添加内容 这是它的一个片段。从外观上看,我可以猜出它是从哪里得到检测的,但除非它有一个特定的数字范围,否则它永远不会影响已编译的可执行文件 为什么会这样 int maxstep=2100; int maaa[2100]; int curinst; int main() { cout<<"Initializing maaa..."<<endl; for(int i=0; i<maxstep; i++) { maaa[i]=0; //cout<<"MEM:"<<i<<" "<<maaa[i]<<endl; } cout<<"starting core"<<endl; int stepcnt=0; for(;;) { if(stepcnt<maxstep) { curinst=maaa[stepcnt]; } else { cout<<"."; stepcnt=0; } stepcnt++; } int maxstep=2100; int maaa[2100]; int curinst; int main() { cout,c++,antivirus,C++,Antivirus,在病毒软件的防御中,这段代码确实做了一些看起来很奇怪的事情。如果我根据一个程序被病毒感染的可能性来评分,那么你发布的代码看起来很有可能 首先,您将3个主要变量声明为全局变量,不在任何局部范围内。这很少见,但可能是必要的 然后写入相同的值(0)到数组的每个元素。如果这是为了初始化数组,则最好使用memset或calloc。此实现会向全局内存中写入大量内容,每个内容可能都是远程存储。如果病毒试图破坏程序状态,则会这样做 最后,您的程序进入一个无限循环,在这个循环中,从全局内存进行读取和写入。这些操作

在病毒软件的防御中,这段代码确实做了一些看起来很奇怪的事情。如果我根据一个程序被病毒感染的可能性来评分,那么你发布的代码看起来很有可能

首先,您将3个主要变量声明为全局变量,不在任何局部范围内。这很少见,但可能是必要的

然后写入相同的值(0)到数组的每个元素。如果这是为了初始化数组,则最好使用
memset
calloc
。此实现会向全局内存中写入大量内容,每个内容可能都是远程存储。如果病毒试图破坏程序状态,则会这样做


最后,您的程序进入一个无限循环,在这个循环中,从全局内存进行读取和写入。这些操作中的每一个都可能是一个远负载,然后是一个远存储。如果病毒扫描程序对远负载和每秒远存储有任何类型的度量,那么您的程序将远远超出限制。

这不是如何解决程序错误的问题amming问题。这是一个关于功能失调的杀毒软件的问题。具体来说,这是关于Avast!的问题,可能应该提交给他们的客户服务部门。这是程序开始运行的时候,还是在编译之后?“远存储”,“远加载”,哦,天哪,我从16位时间以来就没有听到过。内存通道。。。(是的,我在这里有点讽刺,自从20年前左右受保护的公寓地址成为常态以来,这些东西已经不存在了……)无论如何,很高兴在这里看到一些老前辈。:)你是对的。这些操作在很多年前就消失了,这里并不是特别的问题。我在这里引用它们只是为了作为一个“可以”的例子正在发生,而不是字面上的情况。编译器和病毒软件的内部可能会以不同的方式对待访问全局文件,但我不知道它可能使用的具体指令。哦,别把我太当真了,只要提到“远”和“近”就行了“只要C++开始,OP的代码就没有什么问题,但我不太了解反病毒,因为我不使用Windows。整个事情只是一个玩笑。”没有冒犯。像你自己一样,我更惊讶地听到其他人记得“旧方法”。你相信我仍然保持16位Windows代码吗?:请注意,不是我的,但仍然…让我每隔一天都哭一次,特别是因为我们的新开发充分利用了C++11.xD的强大功能