Answers:
病毒和防病毒技术与CS息息相关。您的问题使我想起了我最近读过的东西。这是Williamson&Shmoys所著《近似算法的设计》第6页的摘录。它证明了近似算法的(实际)重要性,并以病毒方面的著名集合覆盖问题为例:
设置封面问题用于开发可检测计算机病毒的防病毒产品。在这种情况下,期望找到在为计算机的引导扇区设计的病毒中出现的显着特征,从而使得这些特征在典型的计算机应用程序中不发生。然后,将这些功能合并到用于检测这些引导扇区病毒的另一种启发式方法中,即神经网络。设置覆盖问题的要素是已知的引导扇区病毒(当时约为150种)。每组对应于在这些病毒中出现的某些三字节序列,但在典型的计算机程序中不存在;大约有21,000个这样的序列。每个集合都包含所有引导扇区病毒,这些病毒在其中的某个位置具有相应的三字节序列。目的是找到少量这样的序列(比150小得多),这些序列对神经网络很有用。通过使用一种近似算法来解决该问题,发现了一小组序列,并且神经网络能够检测到许多以前未分析的引导扇区病毒。
不管是否令人惊讶,该示例表明至少AI和组合优化技术是有用的。读完这篇文章后,人们很容易相信CS的许多领域都可以在病毒及其检测中应用。为了更直接地回答您的问题,CS中的许多事物至少或间接地涉及病毒。
当使用理论结果来论证在实践中无法完成某些事情时,您应该小心。可能存在以下几种危险:
理论结果有不适用的假设,
理论上没有很好地模拟实践中的问题,
在实践中,解决方案不一定是完美的有用。
您尚未给出什么是病毒的正式定义,因此扩展有关琐碎练习的主张可能有助于理解您的真实意思。
防病毒软件所做的大部分工作是检测已知病毒(及其变体),这是通过将字符串(文件,内存等)与有限的字符串列表(病毒签名)进行比较来完成的。因此,我们需要定期更新防病毒软件的数据库。
还有其他功能可以根据潜在病毒的“行为”来检测它们,但是这些方法既不完整也不健全(并且不需要健全也不完整就可以使用)。到目前为止,设计防病毒软件似乎比计算机科学更多地属于计算机工程(尽管计算机科学和计算机工程密切相关)。
通常,这些研究将属于计算机科学的计算机安全性(以及更广泛的系统领域:计算机网络,操作系统等)的更广泛应用的部分,但是使用来自计算机科学其他部分(机器学习等)的思想是典型。
您可能需要检查“计算机病毒研究和防御的艺术”。