巧用Foxpro低级文件函数检查文件型病毒

Author: 王红军 Date: 1997-01-01

  目前的管理信息系统MIS都缺少在程序运行中检查病毒的功能。针对这种情况,笔者用Foxpro 2.5的低级文件函数编写了一段程序,将这段程序放在主程序的最前面,使MIS一运行就首先执行它,达到查毒和预警的目的。
  其设计思路主要是针对文件型病毒而设计,首先用DEBUG程序建立一个只有一条INT 20指令(即什么也不做就退出)的小.COM文件,字节数为2个字节,然后用Foxpro的低级文件函数打开、读取该文件的字节数,并判断是否等于2,如不相等就说明你的计算机系统已经被病毒感染了。
  本文所附程序在DOS 3.30及以上操作系统,UCDOS 5.0软汉字系统,Foxpro 2.5 for DOS,VGA显示器上调试运行通过,有兴趣的读者可以将其加入到自己的程序中。
  源程序如下:
  set talk off
  handle=fopen("int20.com")   &&打开文件
  if handle=-1   &&文件打开失败
   return
  endif
  filesize=fseek(handle,0,2)   &&移动文件指针到尾部,获取文件长度
  if filesize<>2   &&判断文件长度是否发生变化
   =fclose(handle)
   wait "你的计算机系统已经感染了病毒!!" window
   return
  endif
  =fclose(handle)   &&关闭文件
  return
  INT20.COM文件的建立
  C>DEBUG
  -A100
  ****:100 INT 20
  ****:102 ^C
  -N INT20.COM
  -R CX
  CX 0000
  :2
  -W
  Writing 0002 bytes
  -Q
  C>