C++ 防病毒软件如何知道不检测非恶意代码?

C++ 防病毒软件如何知道不检测非恶意代码?,c++,malware,antivirus,virus,malware-detection,C++,Malware,Antivirus,Virus,Malware Detection,假设我创建了一个文件压缩库,该库用于1000个(非恶意)程序。但是现在一个恶意软件开发人员决定创建一个恶意软件并使用我的库压缩一些文件 基于我对杀毒软件工作原理的一点了解,它从恶意软件中选择一组字节字符串并将其存储在数据库中。现在,当防病毒软件扫描具有这些字节字符串的程序时,它会提醒用户这是一个恶意软件 但是,如果防病毒程序选择了一个与我的库代码的一部分对应的字节字符串,这是否意味着我的库现在被检测为恶意软件(因此1000个非恶意程序现在被检测为恶意软件)?如果防病毒程序将广泛使用的代码标记为恶

假设我创建了一个文件压缩库,该库用于1000个(非恶意)程序。但是现在一个恶意软件开发人员决定创建一个恶意软件并使用我的库压缩一些文件

基于我对杀毒软件工作原理的一点了解,它从恶意软件中选择一组字节字符串并将其存储在数据库中。现在,当防病毒软件扫描具有这些字节字符串的程序时,它会提醒用户这是一个恶意软件


但是,如果防病毒程序选择了一个与我的库代码的一部分对应的字节字符串,这是否意味着我的库现在被检测为恶意软件(因此1000个非恶意程序现在被检测为恶意软件)?

如果防病毒程序将广泛使用的代码标记为恶意代码,那么是的,它会(错误地)检测大量程序是否为恶意软件。但恶意软件签名不是随机选择的;它们是由研究恶意软件以了解其功能和工作方式的人类分析人员开发的。这些分析人员非常小心地根据恶意软件实际特有的内容来构建签名,而不是基于有两种技术可以检测恶意软件,第一种是通过文件签名,例如卡巴斯基每天都会收到大量恶意代码,这些代码将由其专家分析,然后为每一个生成签名。因此,当一个文件被防病毒软件分析时,它会比较与数据库中的所有签名一起签名。然后将结果返回给用户。
第二种判断软件是否恶意的方法是使用数据挖掘技术。数据挖掘技术将软件的静态和动态分析结果作为输入,然后返回一个结果。在这种情况下,它可能返回假阳性结果,具体取决于防病毒软件。

如果您是合法库的作者,并且一些恶意软件人员会告诉我们e你的lib,然后AVs开始使用你的lib检测干净的程序,处理它的唯一方法是联系AV公司,告诉他们从你的lib中删除检测。他们可以检测恶意代码,而不是库代码。 查看每个AV公司网站上的投诉表格或联系其支持部门