病毒要进行传染,必然会留下痕迹。生物医学病毒如此,电脑病毒也是一样。检测电脑病毒,就要到病毒寄生场所去检查,发现异常情况,并进而验明“正身”,确认电脑病毒的存在。电脑病毒静态时存储于硬盘中,被激活时驻留在内存中,因此对电脑病毒的检测可以分为对硬盘的检测和对内存的检测。

  一般对硬盘进行病毒检测时,要求内存中不带病毒,因为某些电脑病毒会向检测者报告假情况。例如“4096”病毒在内存中时,查看被它感染的文件,不会发现该文件的长度已发生变化,而当在内存中没有病毒时,才会发现文件长度已经增lk了4096字节;又例如,“DIR2”病毒在内存中,用Debug程序查看被感染文件时,根本看不到“DIR2”病毒的代码,很多检测程序因此而漏过了被感染的文件;还有引导区型的“巴基斯坦智囊”病毒,当它活跃在内存中时,检查引导区就看不到病毒程序而只看到正常的引导扇区。因此,只有在要求确认某种病毒的类型和对其进行分析、研究时,才能在内存中带毒的情况下作检测工作。

  从原始的、未受病毒感染的DOS系统软盘启动,可以保证内存中不带病毒。启动必须是上电启动而不是按键盘上的“Alt+Ctrl+Del”三键的那种热启动,因为某些病毒可以通过截取键盘中断,将自己驻留在内存中。检测硬盘中的病毒,启动系统软盘的DOS版本号应该等于或高于硬盘内DOS系统的版本号。如果硬盘上使用了硬盘管理软件DM、ADM,硬盘压缩存储管理软件Stacker、DoubleSpace等,启动系统软盘时应把这些软件的驱动程序包括在软盘上,并把它们写入config.sys文件中,否则用系统软盘引导启动后,将不能访问硬盘上的所有分区,使躲藏在其中的病毒逃过检查。

  检测硬盘中的病毒可分成检测引导区型病毒和检测文件型病毒。这两种检测的原理上相同,但由于病毒的存储方式不同,检测方法还是有差别的。主要是基于下列四种方法:比较被检测对象与原始备份的比较法;利用病毒特征代码串进行查找的搜索法;搜索病毒体内特定位置的特征字识别法;运用反汇编技术分析被检测对象,确证是否为病毒的分析法。

  比较法

  这是用原始备份与被检测的引导扇区或被检测的文件进行比较的方法,可以用打印的代码清单(比如Debug的D命令输出格式)进行比较,也可用程序来进行比较(如DOS的DISKCOMP、COMP或PCTOOLS等其它软件)。比较法不需要专用的查病毒程序,只要用常规DOS软件和PCTOOLS等工具软件就可以进行,而且还可以发现那些尚不能被现有的杀毒软件发现的计算机病毒。因为病毒传播得很快,新病毒层出不穷,而目前还没有能查出一切病毒的通用程序,或通过代码分析,可以判定某个程序中是否含有病毒的查毒程序,所以只有靠比较法和分析法,或这两种方法相结合来发现新病毒。

  对硬盘的主引导区或对DOS的引导扇区作检查,用比较法能发现其中的程序源代码是否发生了变化。由于要进行比较,因此保留好原始备份是非常重要的。制作备份时必须在无电脑病毒的环境里进行,制作好的备份必须妥善保管,写好标签,贴好写保护。比较法的好处是简单、方便,不用专用软件;缺点是无法确认病毒的种类名称。另外,造成被检测程序与原始备份之间差别的原因尚需进一步验证,以查明是电脑病毒造成的,还是DOS数据被偶然原因,如突然停电、程序失控、恶意程序等破坏的。这些要用到以后讲的分析法,查看变化部分代码的性质,以此来确认是否存在病毒。

  搜索法

  这种方法主要是对每一种病毒含有的特定字符串进行扫描,如果在被检测对象内部发现了某一种特定字节串,就表明发现了该字节串所代表的病毒。国外称这种按搜索法工作的病毒扫描软件为“Scanner”。这种病毒扫描软件由两部分组成:一部分是病毒代码库,含有经过特别选定的各种电脑病毒的代码串;另一部分是利用该代码库进行扫描的扫描程序,病毒扫描程序能识别的电脑病毒的数目完全取决于病毒代码库内所含病毒种类的多少。

  病毒代码串的选择是非常重要的,短小的病毒代码只有一百多个字节,长的也只有10KB字节。一定要在仔细分析程序之后选出最具代表特性的,足以将该病毒区别于其它病毒和该病毒的其它变种的代码串。一般情况下,代码串是由连续若干个字节组成的,但是有些扫描软件采用的是可变长串,即在串中包含有一个到几个“模糊”字节。扫描软件遇到这种串时,只要除“模糊”字节之外的字串都能完好匹配,就也能够判别出病毒。另外,特征串还必须能将病毒与正常的非病毒程序区,不然就会出现“假报、误报”。特征字识别法

  这是基于特征串扫描法发展起来的一种方式,运行速度较快、误报频率较低。特征字识别法只须从病毒体内抽取很少的几个关键特征字,组成特征字库。由于需要处理的字节很少,又不必进行串匹配,因此大大加快了识别速度,当被处理的程序很大时,用这种办法比较合适。由于特征字识别法更注意电脑病毒的“程序活性”,因此减少了错报的可能性。使用基于特征串扫描法的查病毒软件方法与使用基于特征字识别法的查病毒软件方法是一样的,只要运行查毒程序,就能将已知的病毒检查出来。这两种方法的使用,都须要不断地对病毒库进行扩充,一旦捕捉到病毒,经过提取特征并加入到病毒库,就能使查病毒程序多检查出一种新病毒来。

  分析法

  这种方法一方面可以确认被观察的磁盘引导区和程序中是否含有病毒,另一方面可以辨认病毒的类型和种类,判定是否为一种新病毒,另外还可以搞清楚病毒体的大致结构,提取用于特征识别的字节串或特征字,增添到病毒代码库中供病毒扫描和识别程序使用。同时,详细地分析病毒代码,还有助于制定相应的反病毒方案。与前三种检测病毒的方法不同,使用分析法检测病毒,除了要具有相关的知识外,还需要使用Debug、Proview等分析工具程序和专用的试验用计算机。因为即使是很精通病毒的技术人员,使用性能完善的分析软件,也不能完全保证在短时间内将病毒代码分析清楚;而病毒则有可能在被分析阶段继续传染甚至发作,把软盘、硬盘内的数据完全毁坏掉,所以分析工作必须在专门的试验用PC机上进行,不怕其中的数据被破坏。

  不具备必要的条件,不要轻易开始分析工作。很多电脑病毒采用了自加密、抗跟踪等技术,使得分析病毒的工作经常是冗长枯燥的。特别是某些文件型病毒的源代码可达10KB以上,与系统的牵扯层次很深,使详细的剖析工作十分复杂。病毒检测的分析法是反病毒工作中不可或缺的重要技术,任何一个性能优良的反病毒系统的研制和开发都离不开专门人员对各种病毒详尽、认真的分析。

  分析法分为静态和动态两种。静态分析是指利用Debug等反汇编程序将病毒代码打印成反汇编后的程序清单进行分析,看病毒分成哪些模块,使用了哪些系统调用,采用了哪些技巧,如何将病毒感染文件的过程翻转为清除病毒、修复文件的过程,哪些代码可被用做特征码以及如何防御这种病毒等等。分析人员的素质越高,分析过程就越快,理解也就越深;动态分析则是指利用Debug等程序调试工具在内存带毒的情况下,对病毒作动态跟踪,观察病毒的具体工作过程,以进一步在静态分析的基础上理解病毒工作的原理。在病毒编码比较简单的情况下,动态分析不是必须的。但是,当病毒采用了较多的技术手段时,就必须使用动、静相结合的分析方法才能完成整个分析过程。

  综上所述,利用原始备份和被检测程序相比较的方法适合于不用专用软件,可以发现异常情况的场合,是一种简单、基本的病毒检测方法;扫描特征串和识别特性字的方法更适用于广大PC机用户使用,方便而又迅速;但对新出现的病毒会出现漏检的情况,须要与分析和比较法结合使用。

  通过采取技术上和管理上的措施,电脑病毒是完全可以防范的。

防毒技巧 从硬盘及内存中检测潜存病毒相关推荐

  1. C++内存泄露检测原理

    转自:http://hi.baidu.com/jasonlyy/item/9ca0cecf2c8f113a99b4981c 本文针对 linux 下的 C++ 程序的内存泄漏的检测方法及其实现进行探讨 ...

  2. OpenCV中的内存泄漏检测

    转自:http://chaishushan.blog.163.com/blog/static/130192897200911685559809/ 内存泄漏时程序开发中经常遇到的问题. 而且出现内存泄漏 ...

  3. 内存泄漏检测工具VLD在VS2010中的使用举例

    Visual LeakDetector(VLD)是一款用于Visual C++的免费的内存泄露检测工具.它的特点有:(1).它是免费开源的,采用LGPL协议:(2).它可以得到内存泄露点的调用堆栈,可 ...

  4. Android开发过程中内存泄露检测

    转自 http://blog.csdn.net/shimiso/article/details/44677041 一.内存泄露 内存泄漏会因为减少可用内存的数量从而降低计算机的性能.最终,在最糟糕的情 ...

  5. 【Tools】Linux下C和C++程序中内存泄露检测

    00. 目录 文章目录 00. 目录 01. 前言 02. valgrind安装 03. 使用未初始化的内存 04. 使用野指针 05. 动态内存越界访问 06. 分配空间后没有释放 07. 不匹配使 ...

  6. C++中基于Crt的内存泄漏检测

    尽管这个概念已经让人说滥了 ,还是想简单记录一下, 以备以后查询. #ifdef _DEBUG #define DEBUG_CLIENTBLOCK   new( _CLIENT_BLOCK, __FI ...

  7. VC++6.0中内存泄漏检测 转

    最近看了周星星 Blog 中的一篇文章:"VC++6.0中内存泄漏检测",受益匪浅,便运行其例子代码想看看 Output 窗口中的输出结果,可惜怎么弄其输出都不是预期的东西,郁闷了 ...

  8. 把内存中的数据传送到计算机硬盘称为,将内存中的数据传送到计算机硬盘的过程称为什么...

    将内存中的数据传送到计算机硬盘的过程称为写盘:写盘就是将一些想要长期保存的文件,比如影片.音乐.图片或文档刻在光盘上面作永久保存:写盘也叫刻录,一般需要安装刻录软件才能进行. 本文操作环境:Windo ...

  9. 在重启Linux系统中把内存,在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用()...

    在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用()由河北公务员考试网公务员行测试题栏目提供,更多关于国考银保监试题,河北公务员考试公务员行测试题的内容,请关注河北公务员考试网/河北人事考 ...

  10. 重新启动linux系统应使用 命令实现,在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用哪个命令...

    [导读]华图河南人事考试网同步华图教育发布:在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用哪个命令,详细信息请阅读下文!如有疑问请加[交流群汇总],更多资讯请关注河南华图微信公众号(hn ...

最新文章

  1. 赠书福利 | Tidio AI 趋势报告:约42%受访者能够接受机器人伴侣
  2. ​2012年至今,细数深度学习领域这些年取得的经典成果
  3. 安装php扩展phpredis
  4. git push 报错:you are not allowed to upload merges
  5. python moviepy 音量_python moviepy 视频剪辑代码
  6. python 快速排名发包_百度发包快排【SEO超快速排名系统】 - 「黑酷SEO」
  7. 麻雀搜索算法优化BP神经网络预测以及MATLAB代码实现
  8. 考勤统计,一张表查询每月的员工考勤数据
  9. webstorm 主题 配色
  10. Flutter开发App简介
  11. Matlab 和 Simulink 学习基础入门
  12. 【微信测试号实战——02】编写你独有的微信消息模板
  13. xp计算机组策略怎么打开,WinXP系统打开组策略的命令是什么?
  14. 元气森林海外负责人柳甄离职:是柳传志侄女 柳青堂姐妹
  15. Lect1_Intro_RL
  16. 【PM学习笔记】酸梅干超人 - 零基础学Figma学习笔记
  17. 有没有可以测试手速的软件,我的第一个Mac小程序 — 手速测试器
  18. 永久免费!吴恩达刚公布的深度学习课程上线网易云课堂
  19. python的永久存储——pickle‘泡菜’ ,‘腌制’天气查询脚本
  20. 网络安全工具使用集锦手册

热门文章

  1. 历届奥斯卡最佳影片奖(推荐经典电影)
  2. 使用MVC结构计算梯形面积
  3. 一张图快速了解23种设计模式
  4. 电动滑板车出口欧洲和北美认证要求
  5. CSDN拒绝好友的私信内容信息太弓虽了
  6. Daydream播放3D视频(视频左右分屏3D效果)
  7. 为什么要参加hadoop培训
  8. 从苏宁电器到卡巴斯基(第二部)第06篇:我在卡巴的日子 VI
  9. WIN7去掉快捷方式小箭头
  10. 破解PDF打开密码、复制限制