著录项信息
专利名称 | 感染计算机病毒文件的追踪检测方法 |
申请号 | CN00101045.X | 申请日期 | 2000-01-11 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2001-07-18 | 公开/公告号 | CN1304089 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 神达电脑股份有限公司 | 申请人地址 | 台湾省***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 神达电脑股份有限公司 | 当前权利人 | 神达电脑股份有限公司 |
发明人 | 蔡俊男 |
代理机构 | 北京市柳沈律师事务所 | 代理人 | 黄敏 |
摘要
感染计算机病毒文件的追踪检测方法,在计算机系统的存储器中指定存储区,设定中央处理器中各相关寄存器、判断中央处理器有否除错状况、除错状态寄存器中的对应中断点条件是否设定。设定时,由堆栈中取触发除错状况指令地址,将该指令段及偏移地址标准化、建立存储器控制区块列表,对前述存储器控制区块列表扫描,找出涵盖前述标准化指令段及偏移地址程序。将该改变INT13h中断向量的程序名称及地址记录。对存储区中文件内容扫描,与已知病毒码对比,对比相同即警示使用者。
1.一种感染计算机病毒文件的追踪检测方法,检测企图改变计算机系 统的基本输入系统的INT13h中断向量地址的计算机病毒程序,该计算机系 统的中央处理器内部配置有控制寄存器、断点寄存器、除错控制寄存器、 除错状态寄存器,该检测方法包括下列步骤:
a.在该计算机系统的存储器中指定一存储区;
b.设定该中央处理器中各所述寄存器;
c.判断该中央处理器是否有除错状况产生,若无,则继续重复测试, 若有,则进一步判断中央处理器的除错状态寄存器中的对应中断点条件是 否被设定;
d.若该中央处理器的除错状态寄存器中的对应中断点条件已被设定, 则由存储器堆栈段中取得触发该除错状况的指令的区及偏移位置;
e.将该指令的段及偏移地址予以标准化;
f.建立一存储器控制区块列表;
g.对该存储器控制区块的列表进行扫描,以找出涵盖到前述标准化的 指令段及偏移地址的程序;
h.将该改变INT13h中断向量的程序名称及地址予以记录在步骤a中 所指定的存储区中;
i.对该存储区中的文件内容进行扫描,并与已知病毒码对比,若对比 出与已知病毒码相同的文件内容,即警示使用者。
2.如权利要求1所述的感染计算机病毒文件的追踪检测方法,其中步 骤b在设定该中央处理器中各相关寄存器的步骤包括:
b1.在中央处理器的任一个除错地址寄存器中设定一预定数值;
b2.在中央处理器的除错控制寄存器的读取/写入控制位中设定一预定 数值;
b3.在该除错控制寄存器的长度设定位中设定一预定数值。
3.如权利要求2所述的感染计算机病毒文件的追踪检测方法,其中步 骤b1在任一个除错地址寄存器中所设定的预定数值为十六进位数值数据 4Ch。
4.如权利要求2所述的感染计算机病毒文件的追踪检测方法,其中步 骤b2中,该中央处理器的除错控制寄存器的读取/写入控制位中所设定的 预定数值为01,其意味启动中央处理器在执行数据写入时的中断功能。
5.如权利要求2所述的感染计算机病毒文件的追踪检测方法,其中步 骤b3中,该中央处理器的除错控制寄存器的长度设定位中所设定的预定数 值为11,其是代表断点地址的存取长度值是四个字节。
6.如权利要求1所述的感染计算机病毒文件的追踪检测方法,其中步 骤f建立存储器控制区块列表是呼叫DOS操作系统中的INT21h/AH=52h功 能函数。
7.如权利要求1所述的感染计算机病毒文件的追踪检测方法,其中步 骤1中,若在对该存储区中的档案内容进行扫描及对比时,并未对比出与 已知病毒码相同的档案内容时,其还包括输出该档案内容,以作为日后未 知病毒的追踪检测。
技术领域
本发明涉及一种计算机病毒的检测方法,特别是指一种检测计算机系 统的基本输出入系统的INT13h中断向量地址是否被改变而判断文件是否感 染计算机病毒的方法。当本发明检测到任何企图改变计算机系统的基本输 出入系统BIOS的INT13h中断向量地址时,即可发出即时的病毒警告,以 适时警告使用者该计算机已感染到计算机病毒。
背景技术
计算机病毒可分为常驻型病毒与非常驻型病毒两种,不同的计算机病 毒都有其特有的病毒型态、传播途径,这些计算机病毒对一计算机系统而 言,都会造成不同程度的破坏。
当执行到一被感染有常驻型病毒的程序时,该病毒程序会将它自己常 驻在计算机系统的存储器之中,等到下一个程序要执行的时候,常驻在存 储器中的计算机病毒便会伺机去感染目前所要执行的程序。有些类型的计 算机病毒是由拦截计算机系统的中断向量来达到感染的目的。例如,在目 前已知的大部分计算机病毒会去修改基本输出入系统BIOS所提供的 INT03h、INT13h或INT21h中断向量,其最主要的目的就是达到感染的目的。 当计算机病毒程序拦截到该中断向量(例如INT13h)时,该病毒程序会改变 该中断向量的向量地址,并以一新的辅程序取代该中断向量的功能,并以 该新的辅程序作为病毒传布的途径。
中断向量INT13h的功能是控制硬盘及软盘的数据存取功能。此一中断 由寄存器AH中不同的函数值,可得到不同的磁盘I/O功能。例如当AH值 为03h时,其功能系为写入数据至磁盘的磁区,部分计算机病毒程序即常 利用这个功能函数来破坏磁盘的分割磁区(Partition Sector)或写入数据 至其它磁区。以例如当AH值为05h时,其功能为格式化硬盘,如果计算机 病毒是利用此项功能,则在病毒发作的时候会格式化(Format)硬盘。因此, 若无法有效检测计算机系统的病毒的话,则对于计算机的使用及数据的安 全性将会有极大的威胁。
发明内容
因此,本发明的主要目的是提供一种检测计算机病毒的方法,本发明 的方法可以在检测到任何企图改变INT13h的向量地址的动作时,即可发出 即时的病毒警告,以适时警告使用者该计算机可能已感染到计算机病毒。 本发明的方法也可用于日后未知病毒的追踪检测。
本发明的另一目的是提供一种检测感染有计算机病毒的文件的方法, 其结合了中央处理器中相关的控制寄存器、断点寄存器、除错控制寄存器、 除错状态寄存器等来执行病毒的检测。
为达到本发明的上述目的,本发明所提供的感染有计算机病毒文件的 追踪检测方法,是首先在该计算机系统的存储器中指定一存储区,然后设 定该中央处理器中各相关寄存器、判断该中央处理器是否有除错状况产生、 判断中央处理器的除错状态寄存器中的对应中断点条件是否被设定。当中 断点条件已被设定时,即由堆栈中取得触发该除错状况的指令地址,然后 将该指令段及偏移地址予以标准化、以及建立一存储器控制区块列表,并 对前述的存储器控制区块的列表进行扫描以找出任何涵盖到前述标准化的 指令段及偏移地址的程序。将该改变INT13h中断向量的程序名称及地址予 以记录。最后对该存储区中的文件内容进行扫描,若对比出与已知病毒码 相同的文件内容,即警告使用者,若未对比出与已知病毒码相同的文件内 容时,则可输出该文件内容,以作为日后未知病毒的追踪检测。
附图说明
本发明的其它目的及其进一步的病毒检测方法,将由以下的较佳实施 例说明结合附图,作进一步的说明,其中:
图1是显示一包括有中央处理器、输出入界面、磁盘装置、存储器的 典型个人计算机简化系统图;
图2是显示中央处理器中各主要寄存器的示意图;
图3是显示一Pentium级中央处理器内部相关寄存器的示意图;
图4是显示本发明病毒检测方法的流程图;
图5是接续图4的流程图。
具体实施方式
图1是显示一典型个人计算机系统中,包括有一中央处理器1、一输出 入界面3、一磁盘装置4、一存储器5间的简化系统示意图。该中央处理器 1经由系统区域总线2及输出入界面3而与磁盘装置4连接,而中央处理器 1则经由该系统总线2而与一存储器5相连接。其中该系统总线2是包括有 地址总线21、数据总线22、及控制总线23,以作为中央处理器2与各元件 间的数据、地址信号、及控制信号的传送路径。
在以下的实施例中,是以Intel公司Pentium级中央处理器作一较佳 实施例说明,且该磁盘装置4是可经由一IDE界面而与中央处理器1相连 接。
参照图2所示,其是显示一典型的中央处理器中各主要寄存器的示意 图。中央处理器内部的一般用途寄存器依其功能的不同,约略可分为通用 目的寄存器10(General Purpose Register)、状态及指令寄存器11(Status and Instruction Register)、段寄存器12(Segment Register)。其中该通 用目的寄存器10包括有数个十六位寄存器AX、BX、CX、DX、BP、SP、SI、 DI、以及数个八位的寄存器AH、AL、BH、BL、CH、CL、DH、DL。这些寄存 器一般是用来处理字节数据。而较先进的中央处理器在处理32位的数据时, 可以使用八个32位的通用目的寄存器EAX、EBX、ECX、EDX、EBP、ESP、ESI、 EDI。
状态及指令寄存器11包括有IP、FLAGS、EIP、EFLAGS寄存器,是用 来指定欲执行指令、以及指示在执行指令后的结果状态。
段寄存器12包括有程序段寄存器CS、堆栈段寄存器SS、数据段寄存 器DS、额外数据段寄存器ES、特征位段寄存器FS、通用段寄存器GS。这 些寄存器可用来决定存储器地址段的基底地址。
在Pentium级中央处理器内部尚包括有其它系统寄存器,这些系统寄 存器中,与本发明的病毒检测方法有关的寄存器示于图3中,其包括有控 制寄存器组13及除错寄存器组14。其中的控制寄存器组13中包括有数个 控制寄存器CR0~CR4,其中控制寄存器CR4的位定义中,共有位0至位6, 其中的位3乃为除错扩展功能(Debugging Extension)的设定位,当该位设 定为1时,乃启动输出入界面断点除错扩展功能,当该位设定为0时,乃 解除输出入界面断点除错扩展功能。
除错寄存器组14中包括有八个寄存器DR0~DR7,其中的DR0~DR3是 作为除错地址寄存器(Debug Address Resister),每一个除错地址寄存器 中含32位的断点线性地址(Breakpoint Linear Address)。DR6是作为除错 状态寄存器(Debug Status Register),其可在除错状况产生时,告知该除 错状况的条件。DR7是作为一除错控制寄存器(Debug Control Register), 其可用来致能或禁能断点功能、以及可用来设定断点条件。
每一个除错地址寄存器DR0~DR3皆有一些各自的控制位(在除错控制 寄存器DR7中),例如在DR7中的LEN位值决定了断点地址的存取长度,当 LEN=00时,其存取长度为一个字节,当LEN=01时其存取长度为二个字节, 当LEN=11时,其存取长度为四个字节。又,DR7中的R/W的位值决定在断 点地址上发生断点的原因,当R/W=00时与表示指令码存取,R/W=01时是 表示数据写入,当R/W=10时是表示I/O读取或写入,当R/W=11时是表 示数据读取与写入。
以下将同时参照图1所示的系统结构图、图2及图3所示的中央处理 器内部寄存器组结构及图4、图5所示的控制流程图,对本发明的病毒检测 方法作一详细说明如后。
在程序启始后,本发明首先在步骤100中,在该计算机系统的存储器 中指定一存储区,此一存储区可在后续的病毒检测程序中用来保存该改变 中断向量INT13h的程序的名称及其启始地址。
接着在步骤101中进行中央处理器中各相关寄存器的设定,此步骤中 包括:
1.在中央处理器的任一个除错地址寄存器(DR0~DR3)中设定十六进位数值数 据4Ch,该数值数据4Ch是用以指出INT13h中断向量于中断向量表中的存储 器地址所在(由于每个中断向量占4字节大小,此值即由13h×4而求得)。
2.在中央处理器的除错控制寄存器DR7的R/W位(读取/写入控制位)中设 定数值01,其意味启动中央处理器在执行数据写入时的中断功能。
3.在该除错控制寄存器DR7的LEN位(长度位)中设定数值11,其数值是代 表断点地址的存取长度值是四个字节。
在完成上述的相关寄存器数据设定之后,即执行步骤102,此一步骤是 判断是否有除错状况(Debug Exception)产生,若无,则继续重复测试,若 有,中央处理器会启始一中断向量INT01h的中断服务程序,并执行下一步 骤103,进一步判断中央处理器中除错状态寄存器DR6的状态,该除错状态 寄存器DR6可反映断点寄存器DR0-DR3的状态。
在步骤103中,判断中央处理器的除错状态寄存器DR6中的对应中断 点条件(Breakpoint Condition)是否被设定。若结果为否,则回到步骤102, 若结果为是,则进行下一步骤104。
在步骤104中,由存储器堆栈段(Stack Segment)中取得触发该除错状 况的指令的段及偏移地址(Segment&Offset)值。然后,在步骤105中, 将该指令的段及偏移地址予以标准化。
接着在步骤106中,建立一DOS的存储器控制区块(Memory Control Block,简称MCB)列表。建立该存储器控制区块列表的方式,首先需呼叫 DOS操作系统中的INT21h/AH=52h功能函数,在执行该INT21h/AH=52h功能 函数之后,可在存储器地址ES:[BX-2]取得第一个存储器控制区块的段地址 (16位),而由存储器控制区块所包含的区块拥有者的PSP(程序前置区)段 地址及区块长度等信息,可进一步取得当时在存储器中所有程序(Process) 的地址与名称。
在本发明的实施例中,该存储器控制区块的格式可为: 偏移地址 (Offset) 大小 (Size) 说明 (Description) 00h 1字节(Byte) 控制区块的型式(若该区块为最后一个,则其 数值为5Ah,否则其数值为4Dh)。 01h 1单字(Word) 控制区块拥有者的PSP(程序前置区)段地址。 03h 1单字(Word) 存储区块(Memory Block)的长度。 05h 3字节(bytes) 未使用。 08h 8字节(bytes) 区块拥有者的程序名称(Process Name)。
在图5所示的步骤107中,对前述的存储器控制区块的列表(MCB List) 进行扫描,以找出所在区域涵盖前述标准化后段及偏移地址的程序。
然后在步骤108中,将该改变INT13h中断向量的程序名称及地址予以 记录在步骤100中所指定的存储区中。再于步骤109中,对该存储区中的 文件内容进行扫描,并与已知病毒码进行对比。
对比的结果,若并未检测到相同于已知病毒码的话,步骤110,则执行 步骤111,将该文件的内容予以输出,以作为日后未知病毒的追踪检测。若 步骤110中的判别结果为是,则即时显示该计算机病毒的名称,以警示该 计算机已感染计算机病毒。
藉由以上的病毒检测方法以及利用中央处理器中相关的寄存器,使本发 明可以有效即时检测到任何企图写入至计算机系统的磁盘装置的计算机病毒。 一旦检测到已知的计算机病毒码后,即可发出一警告,以适时警告使用者,若 未对比到相符的已知计算机病毒时,则可以作为日后未知病毒的追踪检测。
因此,本发明所提供的计算机病毒检测方法,具有高度的产业利用价 值,可达到预期的功效。
法律信息
- 2009-03-11
专利权的终止(未缴年费专利权终止)
专利权的终止(未缴年费专利权终止)授权公告日:2005.2.2
- 2005-02-02
- 2001-07-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |