杀毒软件是如何工作的?电脑杀毒的几种方式介绍( 七 )


病毒实时监控,其实就是一个文件监视器 。它会在文件打开,关闭,清除,写入等操作时检查文件是否是病毒携带者,如果是则根据用户的决定选择不同的处理方案,如清除病毒,禁止访问该文件,删除该文件或简单地忽略 。这样就可以有效地避免病毒在本地机器上的感染传播,因为可执行文件装入器在装入一个文件执行时首先会要求打开该文件,而这个请求又一定会被实时监控在第一时间截获到,它确保了每次执行的都是干净的不带毒的文件从而不给病毒以任何执行和发作的机会 。以上仅仅是病毒实时监控的主要工作过程,设计上还存在以下几个难点:
驱动程序的编写不同于普通用户态程序的写作,难度很大 。编写用户态程序时,你需要的仅仅就是调用一些熟知的API函数来完成特定目的,比如打开文件你只需调用CreateFile就可以了;但在驱动程序中,你将无法使用熟悉的CreateFile 。在Win NT/2000下,你可以使用ZwCreateFile 或NtCreateFile(Native API),但这些函数通常会要求运行在某个IRQL(中断请求级)上,如果你对中断请求级或延迟/异步过程调用中非分页/分页内存的概念不清楚,那么你的驱动将很容易导致蓝屏死机 。Ring0下的异常,将往往导致系统崩溃,因为它对于系统总是被信任的,所以没有相应处理代码去捕获这个异常 。在Win NT下对KeBugCheckEx的调用将导致蓝屏的出现,接着系统将进行转储并随后重启 。另外驱动程序的调试不如用户态程序那样方便,用象VC那样的调试器是不行的,你必须使用系统级调试器,如SoftIce,KD,TRW等 。
现今国内主要杀毒技术:
特征码技术:运用程序中某一段或几段64字节以下的代码作为判别程序病毒的主要依据,几乎所有国内杀毒软件都在用 。
复合特征码技术:下面给图,因为本人艺术细胞原因 所以点到为止,abcd 所有都在的情况下,木马可以被杀到,不管有几个a 或者几个b 。
虚拟机技术:卡巴运用的技术,它表现在穿壳能力的强大
行为查杀技术:根据某些病毒会在计算机里面的行为作为依据(如在注册表内增加什么键值),满足三个以上就视为木马或病毒 。
启发式杀毒技术:运用病毒特有的结构,来检测病毒(如nod32) 。
国内外部分杀毒软件的特点:
金山:超级垃圾的杀毒软件,花哨东西多得要死,实际杀毒功能却属于世界数一数二地弱,如果不想中木马,你最好别装 。它甚至连木马也杀不清 。
江民或KV:跟金山差不多,稍微比它好点,但是也比较垃圾,它的技术都是买来经过二次改造,没什么特色 。
瑞星:个人认为是国内是国内出的最强地杀毒,经过分析,它有三套毒库 。
瑞星的内存杀毒我们也搞不清楚内核机制,所以分析的只是现象:
1、普通的木马病毒(不常见的),瑞星不进行内存特征码定义,文件免杀了内存就免杀了
2、瑞星的右键快捷查杀和运行主程序查杀,效果不一样,右键不杀不代表运行主程序不杀,有些内存杀的木马病毒,修改了运行主程序查杀的特征码,内存就免杀了 。网络泛滥的木马病毒(如鸽子,密码神通,广外幽灵等),瑞星进行内存特征码定义,通常是多区段特征码定义,其中有些用免杀壳加密加花后,OD载入不杀,但运行后被杀 。这样看来感觉瑞星象是3套特征码定义,1是右键查杀,2是主程序运行查杀,3是内存查杀,我是这样分类的
针对上述现象,瑞星内存免杀我们通常这样做,OD分段定位,先NOP入口点区段,仍被杀则NOP其他区段,直到不杀,找出内存特征码进行修改 。(A B C代表的是病毒特征码,括号()表示可能不存在 。)

推荐阅读