识别病毒文件的方法及装置的制造方法

文档序号:8223825阅读:246来源:国知局
识别病毒文件的方法及装置的制造方法
【技术领域】
[0001]本发明涉及病毒文件的识别扫描领域,更为具体而言,涉及一种识别病毒文件的方法及装置。
【背景技术】
[0002]随着计算机网络的飞速发展,病毒文件也在以越来越快的速度进行传播和变异。其中,VB病毒(visual basic)是通过VB Script (VB脚本)程序编写而成的一种病毒,其脚本语言功能非常强大,它们利用Windows系统的开放性特点,通过调用一些现成的Windows对象、组件,可以直接对文件系统、注册表等进行控制,功能非常强大。并且,VB脚本病毒存在形形色色的加密方法,而且被加密的病毒通常无法通过格式判断,如果进行频繁的尝试性解密,会造成对计算机中无格式的数据文件计算量过大;如果诸如哈希之类一对一的识别方法,效率较低。
[0003]因此,面对当前加密的VB脚本病毒识别效率低,存在安全威胁的问题,亟需一种可有效识别该病毒文件的方法和装置。

【发明内容】

[0004]为了解决当前加密的VB脚本病毒识别效率低,存在安全威胁的问题,本发明的实施方式提供了一种识别病毒文件的方法及装置。
[0005]一方面,本发明实施方式提供了一种识别病毒文件的方法,所述方法包括:
[0006]当脚本宿主程序执行被加密的脚本文件时,通过调用系统函数进行自解密处理,并得到解密后的数据;
[0007]调用脚本病毒引擎对所述数据进行扫描,判断是否为病毒,如果是,则对所述脚本文件进行病毒报警。
[0008]相应的,本发明实施方式还提供了一种识别病毒文件的装置,所述装置包括:
[0009]调用解密模块,用于当脚本宿主程序执行被加密的脚本文件时,通过调用系统函数进行自解密处理,并得到解密后的数据;
[0010]病毒判断模块,用于调用脚本病毒引擎对所述数据进行扫描,判断是否为病毒,如果是,则向对所述脚本文件进行病毒报警。
[0011]实施本发明的各种实施方式具有以下有益效果:可有效地对加密病毒文件在其自解密过程中进行识别,从而提高了病毒识别效率,阻挡了病毒威胁。
【附图说明】
[0012]图1是根据本发明实施方式的识别病毒文件的方法的流程图;
[0013]图2是本发明的一种识别病毒文件的方法的实施例的流程图;
[0014]图3是根据本发明实施方式的识别病毒文件的装置的架构图;
[0015]图4示出了图3所示的调用解密模块100的框图。
【具体实施方式】
[0016]以下结合附图和【具体实施方式】对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或处理方式可以按各种不同配置进行组合和设计。
[0017]图1是根据本发明实施方式的识别病毒文件的方法的流程图;参见图1,所述方法包括:
[0018]SI,当脚本宿主程序执行被加密的脚本文件时,通过调用系统函数进行自解密处理,并得到解密后的数据,所述脚本宿主程序是指脚本文件所运行时依赖的对象,所述调用系统函数是指调用微软视窗操作系统文档化与文档化的接口,所述自解密处理是指微软视窗操作系统(windows系统)主动执行解密函数对加密数据进行的解密;其中,得到解密后的数据包括:在所述自解密处理之后,通过API hook(钩子)技术获得并提取所述解密后的数据,所述API hook技术是通过修改原有API执行流程,使其进入修改者的目的代码中执行非原有API流程,所述API是微软视窗操作系统提供的应用程序编程接口 ;所述自解密处理通过修改原有API执行过程,得到操作系统解密后的时机,获取操作系统解密后的数据;所述自解密处理包括:对所述解密后的脚本文件,判断其被执行解密标志(flag)是否被设置,如果否,则执行被修改API中被覆盖的代码后返回原程序执行被修改的API hook内存地址后面的代码;如果是,则得到所述解密后的数据,经过上述flag的判断,可知存在该标志则表示数据经过解密,不存在该标志表示数据不存在解密过程,故扫描的次数不同,前者效率更高,可使所述数据更加优化,提高数据处理效率。所述获取解密后的数据包括:获取解密后的数据,并对所述数据中的字符进行转码处理(例如:将所述字符串由Unicode编码转为ASCII编码),经过转码后的数据所匹配的数据相对较少,可更加便于进行病毒扫描。
[0019]S2,调用脚本病毒引擎对所述数据进行扫描,判断是否为病毒,如果是,则对脚本解析器执行的脚本文件进行病毒报警,如果不是,则执行被修改API中被覆盖的代码后返回原程序执行被修改的API hook内存地址后面的代码。
[0020]通过采用本发明的所述方法,可有效地对加密病毒文件在其自解密过程中进行识另IJ,从而提高了病毒识别效率,阻挡了病毒威胁。
[0021]图2是本发明的一种识别病毒文件的方法的实施例的流程图;参见图2,所述方法包括:
[0022]S10,当微软视窗操作系统中脚本宿主程序(wscript.exe,cscript.exe)执行时,通过API Hook技术对所有进程启动后装载的vbscript.dll内部调用“VbsExecute”、“Var::Pvargetvarval ”进行修改,所述内部调用是指微软视窗操作系统未导出或未文档化的API,所述修改类似于上述API hook技术,可使用X86CPU指令集jmp指令覆盖原程序部分字节,强行跳转到目的代码中运行,目的代码执行完成后运行执行被覆盖代码跳回原有程序代码运行,使得执行“VbsExecute”代码时执行步骤S30 ;执行“Var::Pvargetvarval”代码时执行步骤S20,vbscript.dll是微软视窗操作系统提供用作VBS脚本解析执行使用的动态库;
[0023]S20,当被修改的“Var::Pvargetvarval”被调用后,首先判断被执行标志是否被设置,即S21,判断其flag值是否为空,如果否,则执行S50返回原程序执行;如果是,则执行S22,获取返回的数据结构,以及执行S23,在数据结构中定位到被解密字符的地址,通过获取其字符长度,并将该字符串由Unicode编码转为ASCII编码,输出并执行S40 ;
[0024]S30,当被加密的脚本文件执行自解密过程就会进入API hook过程,从而进入被修改的“Vbs
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1