黑客X档案官方论坛's Archiver

Mulder 发表于 2008-4-17 22:18

想用WinFrom写一简单的杀毒软件.

我想写一个杀毒软件,不要求真的能杀毒,只要有那个意思就好,
拿C#写,不知道要涉及C#中的哪些技术呢?
还有杀毒软件的具体执行过程,运行逻辑是怎么样的?

我的猜想是这样:
扫描功能:
首先建立一个包含病毒名称的数据库,
然后用IO来对所有文件进行遍历,如果和病毒库中的相符就可以判断为病毒.
不解的是..这样我估计肯定会死机,
比如我有10000个病毒的名字,而我要扫描的盘里又有10000个文件.那么我不是要对比一亿次??



主动防御功能:
当对硬盘进行读写操作时.引发一个事件.
把写入或读出的文件和病毒库里比较.
这个可能还好...
不过不知道怎么样判断硬盘被读或被写了呢??


一般的杀毒软件大体上是 分为这2个功能,可是似乎都很难实现哦,,请各位赐教.
最好能简单的概括一下,怎么实现这些功能...

箫竹 发表于 2008-4-19 16:11

扫描功能实现应该是:获取样本,提取特征码(从代码节中取一段就好了呵呵),然后扫描时遍历文件,查找相关文件删除就好了
至于主动防御就是Hook API 拉,把一些病毒常用的API Hook起来,让病毒用不了就好啦

以上纯属个人观点,嘿嘿

Mulder 发表于 2008-4-26 20:35

提取特征码?怎么样的特征呢?我现在遇到的问题是,当判断是否为病毒时由于数据量太大到底运行效率低下..

希望有高人继续解答

箫竹 发表于 2008-4-27 15:38

按我的想法..你可以分情况扫描
比如当被扫描文件大小为0~50K的时候从数据库中扫描0~50的范围
50~100K的时候扫描50~100的范围..总之就是把病毒库分下类..这样
应该可以快一点

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.