著录项信息
专利名称 | 一种用于检测和清除计算机病毒的方法和装置 |
申请号 | CN201210328695.7 | 申请日期 | 2012-09-06 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-01-09 | 公开/公告号 | CN102867144A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/56 | IPC分类号 | G;0;6;F;2;1;/;5;6查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号D座112室(德胜园区)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 周辉;徐传宇;李智鹏;唐杰 |
代理机构 | 北京市中伦律师事务所 | 代理人 | 程义贵;王桂玲 |
摘要
本发明公开了一种用于检测和清除计算机病毒的方法和装置。所述方法包括:利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括:基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。
1.一种用于检测和清除计算机病毒的方法(100),包括:
利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;
用于检测计算机病毒的检测处理,其包括:
-基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;
-将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;
-基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理,其中,所述每一种处理都具有唯一的全局唯一标识符,对于所述定位处理,在编译时通过其全局唯一标识符调用相应的参数解析处理来对所述定位处理进行转换;将所述定位处理与所述匹配处理分开执行。
2.如权利要求1所述的方法,其中所述脚本语言使用可扩展标记语言XML进行描述。
3.如权利要求1所述的方法,其中所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。
4.如权利要求1所述的方法,其中所述定位处理包括:根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。
5.如权利要求1所述的方法,其中所述多个病毒记录中的每个病毒记录具有各自的文件特征,
在所述基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理的步骤中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。
6.如权利要求1所述的方法,其中所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理:
利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;
利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;
利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;
利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及
利用所述待检测的文件的位置和长度的散列值,进行匹配处理。
7.如权利要求1所述的方法,其中所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理中的一种或多种。
8.如权利要求1所述的方法,其中所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。
9.如权利要求1-8中的任一项所述的方法,其中每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,
所述检测处理包括:对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。
10.如权利要求9所述的方法,其中对待检测的文件进行病毒清除处理的步骤包括:根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。
11.如权利要求10所述的方法,其中所述对所述含病毒文件进行病毒清除处理的步骤包括以下的一个或多个处理:
删除所述含病毒文件;
修改所述含病毒文件的入口点地址;
向所述含病毒文件的特定区域写入数据块;
在所述含病毒文件内复制数据块;
删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;
删除所述含病毒文件头部和/或尾部的特定大小的数据;
设置所述含病毒文件的大小。
12.一种用于检测和清除计算机病毒的装置(200),包括:
脚本编写和编译模块(201),用于利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;
检测模块(203),用于检测计算机病毒的检测处理,其包括:
-定位子模块(203a),用于基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;
-运算和逻辑控制子模块(203b),用于将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;
-匹配子模块(203c),用于基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及
清除模块(205),用于对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理,
其中,所述每一种处理都具有唯一的全局唯一标识符,对于所述定位处理,在编译时通过其全局唯一标识符调用相应的参数解析处理来对所述定位处理进行转换;所述定位子模块的定位处理与所述匹配子模块的匹配处理分开执行。
13.如权利要求12所述的装置,其中所述脚本语言使用可扩展标记语言XML进行描述。
14.如权利要求12所述的装置,其中所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。
15.如权利要求12所述的装置,其中所述定位处理包括:根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。
16.如权利要求12所述的装置,其中所述多个病毒记录中的每个病毒记录具有各自的文件特征,
所述定位子模块(203a)检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。
17.如权利要求12所述的装置,其中所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理:
利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;
利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;
利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;
利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及
利用所述待检测的文件的位置和长度的散列值,进行匹配处理。
18.如权利要求12所述的装置,其中所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理中的一种或多种。
19.如权利要求12所述的装置,其中所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。
20.如权利要求12-19中的任一项所述的装置,其中每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,
所述检测模块(203)对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。
21.如权利要求20所述的装置,其中所述清除模块(205)根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。
22.如权利要求21所述的装置,其中所述清除模块(205)执行以下的一个或多个处理:
删除所述含病毒文件;
修改所述含病毒文件的入口点地址;
向所述含病毒文件的特定区域写入数据块;
在所述含病毒文件内复制数据块;
删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;
删除所述含病毒文件头部和/或尾部的特定大小的数据;
设置所述含病毒文件的大小。
一种用于检测和清除计算机病毒的方法和装置\n技术领域\n[0001] 本发明涉及计算机安全,具体涉及一种用于检测和清除计算机病毒的方法和装置。\n背景技术\n[0002] 使用特征码扫描进行病毒样本识别是计算机反病毒最早使用的病毒查杀技术。计算机反病毒技术发展几十年来,虽然又出现了行为查杀等病毒查杀技术,但特征码扫描以其准确和稳定等特点,依然是目前主流计算机反病毒软件病毒识别所采用的主要技术,是目前反病毒技术中的基础技术。\n[0003] 特征码扫描是指采用事先提取的病毒特征对未知样本进行扫描和判断的方法。特征的提取是由人工分析或自动分析识别确定为病毒后,对病毒样本提取的二进制或其它特征,这种特征是该种病毒独有的、区别于其它病毒或正常文件的。查毒时,反病毒软件依次使用其病毒库中的特征对未知文件进行扫描,如果某一特征匹配成功,则表示该文件为该特征所代表的病毒,如果所有特征均未匹配,则认为该文件不是病毒,是正常文件。\n[0004] 特征码扫描从根本上说是一种特征识别判定技术,其不但可以用于扫描判定病毒,也可以用于扫描判定正常文件,目前在反病毒软件中也被广泛的用于正常样本的判定。\n特征码扫描技术具有准确、误报率低、实现技术简单的优点,其技术成熟,因此目前依然是反病毒技术中病毒识别的主要技术。但同时,特征码扫描技术也有明显的缺点,其对多态变形、加密的病毒的识别能力低,且不能识别未知病毒。\n[0005] 除特征码扫描外,目前反病毒中常用的病毒识别技术还有“行为查杀”技术,其基本原理是指对已运行的样本或在反病毒软件中可控环境中(常见为反病毒虚拟机)运行样本,通过记录和判定样本的运行行为来识别病毒。行为查杀技术具有能够查杀未知病毒的能力,但误报率高是其目前依然无法解决的最大缺点。\n[0006] 反病毒软件使用的杀毒技术,主要是指其对感染型病毒样本(被感染型病毒感染的正常文件)的清除能力,对于非感染型病毒,则简单的删除即可。感染型病毒的清除,目前主要采用使用的杀毒记录杀毒和硬编码杀毒两种方法。杀毒记录杀毒是指,在分析人员分析测试过后编写杀毒记录,查杀时判定病毒后执行对应的杀毒记录中的杀毒方法进行杀毒。杀毒记录中描述的是其杀毒引擎支持的杀毒方法(如修改程序入口、截取文件尾部等)及参数的组合。硬编码杀毒是指编写专门的程序代码进行杀毒,其应用于杀毒情况较复杂的情况,例如病毒专杀程序。\n[0007] 这里选择开源杀毒引擎ClamAV为例对于传统杀毒引擎进行分析。ClamAV杀毒引擎查杀方法主要包括以下几种:\n[0008] -MD5(Message Digest Algorithm 5,消息摘要算法第五版)特征:病毒分析员为病毒文件生成相应的MD5作为其特征。ClamAV引擎通过MD5作为其病毒特征;\n[0009] -基于PE(Portable Execute,可移植执行)文件节的MD5特征:病毒分析员将病毒PE文件的其中一个节作为其文件特征,将节数据生成相应的MD5作为其病毒特征。\n[0010] -代码特征:代码特征是非常传统的一种病毒特征提取方式。病毒分析员将PE文件中具有特殊含义的二进制数据作为病毒特征,通常选择病毒代码的二进制作数据为病毒特征。ClamAV的代码特征不仅是匹配二进制数据,还支持通配符,以及部分正则表达式,还支持基于文件格式的扩展匹配,支持逻辑化特征。\n[0011] -PE文件图标特征:Windows上的病毒经常将自己的图标伪装成非可移植执行文件的图标,于是ClamAV提供将图标作为病毒的特征。\n[0012] 以上特征都是基于ClamAV杀毒引擎体系构架。ClamAV杀毒引擎是以算法为基础的杀毒引擎,其核心的算法是B-M单模匹配算法以及A-C多模匹配算法。\n[0013] 由于传统杀毒引擎(如上述ClamAV)的结构是以算法为基础的,所以导致以下两个比较明显的问题:\n[0014] 1.病毒特征选取不灵活:这里的不灵活体现在两个方面,一方面是病毒分析员选取病毒特征不灵活,另一方面是病毒分析员扩展新的病毒特征不灵活;ClamAV不同的查杀方法之间是不提供逻辑关系的。比如使用PE文件节的MD5特征并不能够与代码特征结合起来使用。虽然代码特征提供一定的逻辑匹配的功能,但如果面对多态变形病毒,其逻辑匹配的功能仍然无法满足精确检测的需求。如常见的多态变形病毒vrut早期版本通过随机从两套加密算法中选取一套,并随机产生一个密钥对病毒体代码进行加密;而解密代码则通过一个多态引擎生成进行多态变换,使得vrut每次感染的文件其病毒体代码特征都完全不同。因此仅通过ClamAV代码特征所提供的逻辑匹配是无法对其进行精确查杀的。而如果要对这种以算法为基础的杀毒引擎扩展其病毒特征选取方法,由于其病毒特征选取方法与引擎偶合度过大,导致很难进行扩展。要么在原算法之外新增扫描过程,以效率为代价。\n如ClamAV新增MD5特征扫描就是在其代码特征扫描之前新增扫描过程;要么就是修改原引擎中的算法,ClamAV引擎中的A-C多模匹配算法就是经过改进的算法,以支持代码特征中简单的逻辑运算、通配符等。\n[0015] 2.检测病毒效率低下:对于杀毒引擎的检测效率,主要瓶颈在输入输出,如果能够有效的控制输入输出,则查毒的效率就会有极大的提高。但通过以上的过程,可以看到,ClamAV并没有针对输入输出进行优化。MD5特征决定必须对检测文件进行全文遍历。另外由于A-C多模算法在匹配之前需要建立状态机,而病毒库记录越大,则状态机建立的所需要的时间与空间就越多。\n发明内容\n[0016] 鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的用于检测和清除计算机病毒的方法以及相应的装置。\n[0017] 依据本发明的一个方面,提供了一种用于检测和清除计算机病毒的方法,包括:\n[0018] 利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;\n[0019] 用于检测计算机病毒的检测处理,其包括:\n[0020] -基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;\n[0021] -将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;\n[0022] -基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及\n[0023] 对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。\n[0024] 所述脚本语言使用可扩展标记语言XML进行描述。\n[0025] 所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。\n[0026] 所述定位处理包括:根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。\n[0027] 所述多个病毒记录中的每个病毒记录具有各自的文件特征,\n[0028] 在所述基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理的步骤中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。\n[0029] 所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理:\n[0030] 利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;\n[0031] 利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;\n[0032] 利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;\n[0033] 利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及\n[0034] 利用所述待检测的文件的位置和长度的散列值,进行匹配处理。\n[0035] 所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。\n[0036] 所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。\n[0037] 每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,\n[0038] 所述检测处理包括:对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。\n[0039] 对待检测的文件进行病毒清除处理的步骤包括:根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。\n[0040] 所述对所述含病毒文件进行病毒清除处理的步骤包括以下的一个或多个处理:\n[0041] 删除所述含病毒文件;\n[0042] 修改所述含病毒文件的入口点地址;\n[0043] 向所述含病毒文件的特定区域写入数据块;\n[0044] 在所述含病毒文件内复制数据块;\n[0045] 删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;\n[0046] 删除所述含病毒文件头部和/或尾部的特定大小的数据;\n[0047] 设置所述含病毒文件的大小。\n[0048] 根据本发明的另一方面,提供了一种用于检测和清除计算机病毒的装置,包括:\n[0049] 脚本编写和编译模块,用于利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;\n[0050] 检测模块,用于检测计算机病毒的检测处理,其包括:\n[0051] -定位子模块,用于基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;\n[0052] -运算和逻辑控制子模块,用于将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;\n[0053] -匹配子模块,用于基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及\n[0054] 清除模块,用于对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。\n[0055] 所述脚本语言使用可扩展标记语言XML进行描述。\n[0056] 所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。\n[0057] 所述定位处理包括:根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。\n[0058] 所述多个病毒记录中的每个病毒记录具有各自的文件特征,\n[0059] 所述定位子模块检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。\n[0060] 所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理:\n[0061] 利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;\n[0062] 利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;\n[0063] 利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行匹配处理;\n[0064] 利用可移植执行文件的导入函数信息和/或导出函数信息,进行匹配处理,所述导入函数信息包括导入模块和导入函数的数量和名称,所述导出函数信息包括导出模块和导出函数的数量和名称;以及\n[0065] 利用所述待检测的文件的位置和长度的散列值,进行匹配处理。\n[0066] 所述运算处理包括加、减、乘、除、逻辑与、逻辑或、移位、比较处理。\n[0067] 所述逻辑控制处理包括跳转处理和返回处理,其中所述跳转处理包括有条件跳转处理和非条件跳转处理,返回处理包括有条件返回处理和非条件返回处理。\n[0068] 每个病毒记录包含针对一种计算机病毒的、记录如何进行定位处理、运算处理和/或逻辑控制处理、以及匹配处理的多条检测信息、以及记录如何进行病毒清除处理的多条清除信息,\n[0069] 所述检测模块对于每个病毒记录,利用所述多条检测信息,对待检测的文件进行包括定位处理、运算处理和/或逻辑控制处理、以及匹配处理的检测处理,在所述检测处理中,如果所述多条检测信息中的每一条检测信息均被成功执行,则将所述待检测的文件判定为含病毒文件。\n[0070] 所述清除模块根据对应的病毒记录中的多条清除信息,对所述含病毒文件进行病毒清除处理。\n[0071] 所述清除模块执行以下的一个或多个处理:\n[0072] 删除所述含病毒文件;\n[0073] 修改所述含病毒文件的入口点地址;\n[0074] 向所述含病毒文件的特定区域写入数据块;\n[0075] 在所述含病毒文件内复制数据块;\n[0076] 删除所述含病毒文件的特定文件节,并对所述含病毒文件的格式进行调整;\n[0077] 删除所述含病毒文件头部和/或尾部的特定大小的数据;\n[0078] 设置所述含病毒文件的大小。\n[0079] 本发明提供了一种用于检测和清除计算机病毒的方法和装置,所述方法及装置可以在虚拟机中使用,可用于恶意软件(病毒)行为分析、查/杀毒、脱壳等领域。根据本发明的实施例,使用XML来描述脚本语言和病毒记录,便于管理和检索海量的病毒记录,同时可将脚本编译为二进制的病毒库文件,确保对病毒进行检测和清除时的高效率。本发明利用类似x86汇编指令的脚本描述病毒记录,以提供类似汇编的灵活控制能力以及高的行为抽象度。根据本发明的实施例的每个处理本身都相对简单,但由于架构足够灵活,可以编写出与汇编复杂度相当的病毒记录。本发明极大地提高了传统特征码查杀技术的灵活性和效率,提高了特征码查杀技术对于多态变形病毒、病毒家族查杀的适用性。本发明采用GUID作为处理的唯一描述,因而具有很强的扩展性,只要遵从一定的规范,即可增加新的处理,而并不会影响原来的检测和清除处理以及病毒记录。本发明中的大多数处理并不涉及到系统输入输出操作,部分处理只涉及到极少量的输入输出操作,所以检测和清除病毒的速度非常快。\n[0080] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。\n附图说明\n[0081] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:\n[0082] 图1是根据本发明的实施例的用于检测和清除计算机病毒的方法的流程图;以及[0083] 图2是根据本发明的实施例的用于检测和清除计算机病毒的装置的框图。\n具体实施方式\n[0084] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。\n[0085] 图1是根据本发明的实施例的用于检测和清除计算机病毒的方法的流程图。如图\n1所示,在用于检测和清除计算机病毒的方法100中,一开始,执行步骤S101:利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件。\n[0086] 根据本发明的实施例,所述脚本语言使用XML(eXtensible Markup Language,可扩展标记语言)进行描述。脚本的语句是由不同函数方法组成的,函数方法可以分为检测处理与病毒清除处理两大类。检测处理的主要目的是检测病毒,而病毒清除处理则会对已经确认为病毒的文件进行操作,以达到删除或清除病毒的目的。\n[0087] 根据本发明的实施例,将所述脚本语言编译成二进制的病毒库文件,在对病毒进行检测和清除时只需要读取该二进制的病毒库文件即可。所述脚本语言利用xml语言进行扫描。每一种处理拥有唯一的GUID(Globally Unique Identifier,全局唯一标识符),以保证各处理之间不会在调用处理的时候产生冲突。再使用xml的标签来扫描此处理的参数。例如:\n[0088]
法律信息
- 2022-04-12
专利权的转移
登记生效日: 2022.03.31
专利权人由北京奇虎科技有限公司变更为三六零数字安全科技集团有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100016 北京市朝阳区酒仙桥路甲10号3号楼15层17层1773
专利权人由北京奇智商务咨询有限公司 变更为空
- 2022-04-12
专利权人的姓名或者名称、地址的变更
专利权人由北京奇虎科技有限公司变更为北京奇虎科技有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100088 北京市西城区新街口外大街28号D座112室(德胜园区)
专利权人由奇智软件(北京)有限公司 变更为北京奇智商务咨询有限公司
- 2015-08-19
- 2013-02-27
实质审查的生效
IPC(主分类): G06F 21/56
专利申请号: 201210328695.7
申请日: 2012.09.06
- 2013-01-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-06-20
|
2006-07-21
| | |
2
| |
2011-02-16
|
2010-11-22
| | |
3
| |
2007-08-15
|
2006-04-14
| | |
4
| |
2007-03-28
|
2006-02-15
| | |
5
| |
2008-10-08
|
2008-04-22
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |