我的防病毒软件将此源的已编译“.exe”标识为病毒 “Gen:Variant:Graftor”。任何人都可以解释原因吗?
void main()
{
float x=3.0/7.0;
double y=3.0/7.0;
int a= (x==y);
}
答案 0 :(得分:2)
嗯,非托管/本机程序可能会带来安全风险,并且可能是您的防病毒软件标记了这一点。 Antiviruses使用启发式算法 - 所以算法是近似的,它们往往是在“尽力而为”的想法上工作,并且在防病毒的情况下,像你的样本一样“误报”比丢失实际的病毒更可取。
另一种可能性是编译程序的方式,有很多编译器优化,有些与安全性有关 - 所以你的程序随机化了内存的某些部分等等。也许防病毒看看C程序是如何编译的你的安全标志没有打开?嗯...
答案 1 :(得分:1)
关于通用检测
与更传统的检测(也称为签名或单文件检测)不同,通用检测不会识别唯一或单个的恶意程序。相反,通用检测会查找广泛适用的代码或行为特征,这些特征指示文件可能是恶意的,因此单个通用检测可以有效地识别数十个甚至数百个恶意软件。
这是误报。由于恶意软件和合法软件上使用的当前恶意软件和文件压缩/保护实用程序的复杂性,这些有时会出现在每个防病毒产品中。