我是计算机科学与工程专业的学生。我对操作系统的内部运作非常感兴趣。我对 Linux 内核和 x64 程序集有一定的了解。
我想了解一个杀毒程序的内部工作原理,然后为了学习目的也制作一个,最好是Linux平台。我用谷歌搜索了它,但无法得出任何好的结果。
谁能指出我需要的一些知识/技能资源,以及如何开始反病毒开发。
要做的第一件事是从 sourceforge 或 github 寻找开源防病毒项目,阅读文档,查看它们的结构和组件并跟踪它们的演变。
目前最有趣的项目之一是Clam AV,最后一个稳定版本是 0.97.8,您可以在Github Page中找到源代码和文档。
一个杀毒软件有很多组件,比如引擎、检测模块(签名vs启发式)、知识库和许多其他元素,所以我认为很难找到专注于整体杀毒开发的文档,而可以更容易找到特定组件的文档和教程。
例如,有一个关于防病毒引擎开发的有趣文档。即使是旧的(2002 年),它也提供了很多关于引擎的高级结构、他的组件以及他在一般和特定情况下的行为的信息。
关于技能:我认为在操作系统、机器学习算法、计算机安全和 OOP 语言方面拥有深厚的背景非常重要。在我看来,像杀毒软件这样的项目并不是微不足道的。