我正在编写一个程序来输入字符串并在字符串中输出替换字符,我可以编译一次,然后构建它使我的防病毒程序报告它是病毒(Gen:variant.graftor.74557)。
我的任何代码都会导致恶意被称为病毒吗
#include<stdio.h>
#include<string.h>
void altchar()
{
char a[50];
printf("Enter a string");
gets(a);
int i=0;
for(i=0;i<strlen(a);i+=2)
printf("%c",*(a+i));
}
int main()
{
altchar();
return 0;
}
其他c程序编译非常流畅,没有与我的AV冲突。
更新
我的AV对于gets()函数没有问题,而其他使用的程序可以顺利运行。
更新2:
顺便说一句,我可以只运行一次程序,然后将其移至隔离区。
输出没什么,编译器告诉我
进程返回1971248979(0x757EDF53)执行时间:-0.000 s
对于好奇的人,我使用Bitdefender Antivirus!
答案 0 :(得分:4)
检测到的“病毒”实际上是F-Secure generic trojan detector的占位符名称。它调查了可疑行为的程序。不幸的是,这种分析有时会产生误报。
也许您的无害代码与字节码级别上的某些已知恶意软件行为相匹配?尝试对代码进行一些小改动,看看问题是否消失。否则,您可以将您的程序(上面链接的分页信息)作为误报提交,以帮助他们改进数据库。
答案 1 :(得分:1)
反病毒软件的经典方法是从受感染的文件中获取几个字节(非常好选择的字节)并将其用作标识符字符串...它搜索可执行文件以及字节是否与来自某个字节的某些字节匹配可执行文件(此检查是打开(运行)可执行文件时执行的大部分时间,或执行完整系统扫描时),然后将其标记为病毒。
修复你的代码(根据评论),然后重新编译......看看会发生什么:)