CN108959925A - 一种恶意脚本的检测方法、装置、电子设备及存储介质 - Google Patents
一种恶意脚本的检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN108959925A CN108959925A CN201810650357.2A CN201810650357A CN108959925A CN 108959925 A CN108959925 A CN 108959925A CN 201810650357 A CN201810650357 A CN 201810650357A CN 108959925 A CN108959925 A CN 108959925A
- Authority
- CN
- China
- Prior art keywords
- scripted code
- script file
- simulation run
- file
- code
- 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.)
- Pending
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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/562—Static detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种恶意脚本的检测方法、装置、电子设备及存储介质,包括:将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。采用本发明实施例,可以提高恶意脚本检测的有效性。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种恶意脚本的检测方法、装置、电子设备及存储介质。
背景技术
JavaScript是一种常见的WEB脚本语言,JavaScript因其可以提供动态页面以及根据用户输入做出不同的响应的优点,而成为几乎所有的网站前端开发所选用的脚本语言,但也正因为可动态运行以完成特定功能的特点,JavaScript脚本文件常常成为恶意代码的源头,对用户终端的安全运行造成严重威胁。
现有的JavaScript脚本代码的检测技术包括静态扫描技术和沙箱技术。其中,一方面,静态扫描技术将目标JavaScript文件的脚本代码与已搜集到的病毒特征进行匹配,若匹配成功则确定目标JavaScript文件中包含恶意代码。然而,在JavaScript使用加密的情况下,静态扫描技术失效。另一方面,在沙箱技术中利用反病毒软件通过挂钩JavaScript的解析引擎中的核心函数,使得当JavaScript脚本运行至预设条件(比如解密操作完成)时被反病毒软件拦截并进行特征匹配,则可以避免脚本加密导致的检测的无效性,但由于JavaScript引擎版本众多,几乎无法得到一套能兼容所有引擎的沙箱,并且一旦遗漏某些重要的挂钩点,仍将造成沙箱逃逸现象,因此沙箱技术不仅实现过程复杂,而且恶意脚本检测有效性无法得到保证。
发明内容
本发明实施例提供一种恶意脚本的检测方法、装置、电子设备及存储介质。可以提高恶意脚本文件检测的有效性。
本发明第一方面提供了一种恶意脚本的检测方法,包括:
将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的变量值;
所述根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述变量值与病毒特征库中的病毒特征进行匹配;
当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的应用程序接口的运行参数;
所述根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述运行参数与病毒特征库中的病毒特征进行匹配;
当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码仿真运行时调用所述应用程序接口的行为链;
所述根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述行为链与病毒特征库中的病毒特征进行匹配;
当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述获取所述脚本代码的特征信息包括:
在所述脚本代码仿真运行过程中,记录所述应用程序接口的调用行为生成日志信息;
根据所述日志信息生成所述行为链。
其中,所述日志信息包括所述应用程序接口的标识信息和调用所述应用程序接口的调用时间;
所述根据所述日志信息生成所述行为链包括:
按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链。
其中,所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行包括:
当所述虚拟系统仿真运行的所述脚本代码的累积条数超过预设阈值时,停止仿真运行所述脚本代码。
其中,所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行之前,还包括:
确定所述目标脚本文件的文件格式是否为预设文件格式;
当所述文件格式为所述预设文件格式时,执行所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行的操作。
其中,所述获取所述脚本代码的特征信息包括:
当所述脚本代码中包含所述应用程序接口时,确定所述应用程序接口的函数类型;
当所述函数类型为无返回值型时,获取所述应用程序接口的输入参数作为所述运行参数。
相应地,本发明第二方面提供了一种恶意脚本的检测装置,包括:
仿真模块,用于将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
获取模块,用于在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
确定模块,用于根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的变量值;
所述确定模块还用于:
将所述变量值与病毒特征库中的病毒特征进行匹配;
当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的应用程序接口的运行参数;
所述确定模块还用于:
将所述运行参数与病毒特征库中的病毒特征进行匹配;
当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码仿真运行时调用所述应用程序接口的行为链;
所述确定模块还用于:
将所述行为链与病毒特征库中的病毒特征进行匹配;
当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述获取模块还用于:
在所述脚本代码仿真运行过程中,记录所述应用程序接口的调用行为生成日志信息;
根据所述日志信息生成所述行为链。
其中,所述日志信息包括所述应用程序接口的标识信息和调用所述应用程序接口的调用时间;
所述获取模块还用于:
按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链。
其中,所述仿真模块还用于:
当所述虚拟系统仿真运行的所述脚本代码的累积条数超过预设阈值时,停止仿真运行所述脚本代码。
其中,所述仿真模块还用于:
确定所述目标脚本文件的文件格式是否为预设文件格式;
当所述文件格式为所述预设文件格式时,执行所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行的操作。
其中,所述获取模块还用于:
当所述脚本代码中包含所述应用程序接口时,确定所述应用程序接口的函数类型;
当所述函数类型为无返回值型时,获取所述应用程序接口的输入参数作为所述运行参数。
相应地,本发明第三方面提供了一种电子设备,包括:处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。
相应地,本发明实施例提供了一种存储介质,其中,所述存储介质用于存储应用程序,所述应用程序用于在运行时执行本发明实施例第一方面公开的一种恶意脚本的检测方法。
相应地,本发明实施例提供了一种应用程序,其中,所述应用程序用于在运行时执行本发明实施例第一方面公开的一种恶意脚本的检测方法。
实施本发明实施例,首先将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;接着在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;然后根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。通过仿真运行脚本代码可以避免脚本加密导致测试失效、提高恶意脚本检测的有效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种恶意脚本的检测方法的流程示意图;
图2是本发明实施例提供的另一种恶意脚本的检测方法的流程示意图;
图3是本发明实施例提供的一种恶意脚本的检测装置的结构示意图;
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1是本发明实施例提供的一种恶意脚本的检测方法的流程示意图。如图所示,本发明实施例中的方法包括:
S101,将目标脚本文件中的脚本代码加载在虚拟系统中进行仿真运行。
具体实现中,可以首先建立虚拟系统,其中,可以从系统中分配一块内存空间作为虚拟系统的内存空间,并在该内存空间中加载脚本代码的解析机制以及仿真规则,例如,当目标脚本文件的一条脚本代码为实现读取系统中的文件A的功能的代码,则在虚拟系统仿真运行该脚本代码时,控制该脚本代码中的文件读取函数读取虚拟系统中预存的文件名为Simulation-file的文件。虚拟系统可以根据解析机制和仿真规则仿真运行脚本代码;接着将目标脚本文件加载到虚拟系统中,其中,虚拟系统可以从第一条代码开始逐条读取目标脚本文件中的脚本代码,直到所述目标脚本文件中的脚本代码全部被读取,其中,在读取每条脚本代码时,可以逐字节地读取,当读到语句结束符(如分号;)时,确定已经读取了一条脚本代码,接着从语句结束符后的第一个字节开始读取下一条脚本代码;然后虚拟系统按照脚本代码的读取顺序,逐条解析并仿真运行读取到的脚本代码,其中,可以首先利用解析机制解析脚本代码,然后根据解析结果确定该条脚本代码的语句类型并执行该条脚本代码中的表达式,其中,当脚本代码中包含变量(如数字变量、字符串变量和布尔变量等)时,首先从虚拟系统的内存空间中划分一块大小可变的存储空间,并用该变量的变量名标识该存储区域,然后将该变量的变量值写入该存储空间中,当脚本代码中包含应用程序接口(Application Programming Interface,API)时,首先确定所包含的API的函数类型,若该API的函数类型为有返回值型,则根据脚本代码的解析结果和仿真规则仿真运行该API,并将该API的返回值记录在日志信息中,若该API的函数类型为无返回值型,则提取该API的输入参数记录在日志信息,并不再对该API做其他的仿真运行操作。
例如:针对一条JavaScript格式的脚本代码var a=1+3,虚拟系统可以解析出该脚本代码的语句类型为变量声明语句,该脚本代码声明了变量名为a的变量,因此可以在虚拟系统的内存空间中划分一块大小可变的存储空间,并将该存储空间标记为a,接着解析得到该脚本代码的右值表达式1+2为加法表达式,计算该加法表达式得到计算结果为3,然后将计算结果3写入被标记为a的存储空间以完成该条脚本代码的仿真运行。
又如:针对一条JavaScript格式的脚本代码alter(“hello”),虚拟系统可以解析出该脚本代码中的alter为一个API,并且alter的函数类型为无返回值型,因此虚拟系统将该条脚本语句中alter的输入参数“hello”记录在日志信息中,并无需对alter(“hello”)做其他的仿真运行操作。
可选的,为了防止虚拟系统因仿真运行的脚本代码的条数过多、或运行的脚本代码陷入死循环而长时间失去响应,在每次进行仿真运行之前对虚拟系统进行初始化,设定虚拟系统执行脚本代码的条数的预设阈值。在仿真运行脚本代码时,虚拟系统可以记录仿真运行的脚本代码的累积条数,当累积条数超过预设阈值时,停止仿真运行脚本代码,其中,预设阈值可以为100、500等任意值。
可选的,在每次进行仿真运行之前对虚拟系统进行初始化,设定虚拟系统执行脚本代码的时长的预设阈值。在仿真运行脚本代码时,虚拟系统在仿真运行脚本代码时可以记录仿真运行脚本代码的累积时长,当累积时长超过预设阈值时,确定脚本代码陷入了死循环,则停止仿真运行脚本代码,其中,预设阈值可以为10分钟、15分钟等任意时间长度。
S102,在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息。
具体实现中,在脚本代码仿真运行过程中,可以监控脚本代码中的变量的变化,并根据变量名从虚拟系统的内存空间中获取对应的变量值,并将变量值作为脚本代码的特征信息。
可选的,在所述脚本代码仿真运行过程中,可以监控脚本代码中的API的运行参数。其中,当扫描到脚本代码中包含API接口时,可以首先确定所述应用程序接口的函数类型;然后若所述函数类型为无返回值型时,从日志信息中获取该API的输入参数作为该API的运行参数,若所述函数类型为有返回值型时,从日志信息中获取仿真运行该API时返回的参数作为该API的运行参数,并将运行参数作为脚本代码的特征信息。
例如:脚本代码为alter(“hello”),其中,alter为API接口,并且alter的函数类型为无返回值型,则获取该代码语句中alter的输入参数“hello”作为该条脚本代码的特征信息,其中,alter的输入参数“hello”被记录在日志信息中。
可选的,在所述脚本代码仿真运行过程中,可以记录API的调用行为生成日志信息;根据所述日志信息生成所述行为链,其中,所述日志信息包括API的标识信息和调用API的调用时间,按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链,并将行为链作为脚本代码的特征信息。
例如:如表1所示,在运行脚本文件的过程中记录到的日志信息包括4个API接口alter、parentNode、title以及doctype,其中,alter的调用时间2018-01-23-08:45:26、parentNode的调用时间2018-01-23-12:23:12、title的调用时间2018-01-23-14:15:56以及doctype的调用时间为2018-01-23-20:30:09。然后根据调用时间的先后顺序,将alter、parentNode、title以及doctype排列成字符串alter-parentNode-title-doctype,并将该字符串作为调用API的行为链。
表1.日志信息
API接口 | 调用时间 |
alter | 2018-01-23-08:45:26 |
parentNode | 2018-01-23-12:23:12 |
title | 2018-01-23-14:15:56 |
doctype | 2018-01-23-20:30:09 |
S103,根据所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
具体实现中,特征信息可以包括脚本代码中的变量值。在脚本代码仿真运行时,将所述变量值与病毒特征库中的病毒特征进行匹配,当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,变量值可以但不限于包括数字、字符和字符串中的至少一种,病毒特征库中包括至少一个被确定为病毒特征的变量值。
例如:首先获取到变量值为字符串“bhuou90dr”;然后将该变量值与病毒特征库中的每种病毒特征进行匹配,如表2所示,病毒特征库中包括4个被确定为病毒特征的变量值“sghdohip9”、“nhuh89w34f”、“bhuou90dr”以及“bhgyu812bj”。首先将“bhuou90dr”与“sghdohip9”进行匹配,确定它们不相同;接着将“bhuou90dr”与“nhuh89w34f”进行匹配,确定它们不相同;然后将“bhuou90dr”与“bhuou90dr”进行匹配,确定它们相同,从而确定目标脚本文件为恶意脚本文件。
表2.病毒特征库-1
病毒特征 |
sghdohip9 |
nhuh89w34f |
bhuou90dr |
bhgyu812bj |
可选的,特征信息可以包括脚本代码中的应用程序接口的运行参数。在脚本代码仿真运行时,将所述运行参数与病毒特征库中的病毒特征进行匹配,当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,运行参数可以但不限于包括数字、字符和字符串中的至少一种,病毒特征库中包括至少一个被确定为病毒特征的运行参数。
可选的,特征信息可以包括所述脚本代码仿真运行时调用所述应用程序接口的行为链。当目标脚本文件仿真运行结束后,首先将所述行为链与病毒特征库中的病毒特征进行匹配;然后当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,病毒特征库中包括至少一条被确定为病毒特征的行为链。
例如:首先获取到的行为链为alter-parentNode-title-doctype;然后将该行为链与病毒特征库中的每种病毒特征进行匹配,如表3所示,该病毒特征库中包含3条行为链confirm-createEvent-importNode-clientTop、images-nodeName-remove-location以及offsetTop-tagName-createEvent-clientTop。将alter-parentNode-title-doctype与病毒特征库中的3条行为链逐一进行匹配,确定alter-parentNode-title-doctype不与病毒特征库中任意一条行为链相同,因此确定目标脚本文件不为恶意脚本文件。
表3.病毒特征库-2
病毒特征 |
confirm-createEvent-importNode-clientTop |
images-nodeName-remove-location |
offsetTop-tagName-createEvent-clientTop |
可选的,特征信息可以包括脚本代码中的变量值、脚本代码中的API的运行参数以及所述脚本代码仿真运行时调用API的行为链中的至少两项。当其中至少一项特征信息与所述病毒特征库中的病毒特征相配时,确定目标脚本文件为恶意脚本文件。
例如:首先获取到变量值为“uij68vsdgy75”、行为链为images-nodeName-remove-location;然后将该变量值与病毒特征库中的每种病毒特征进行匹配,如表4所示,病毒特征库中包括3个变量值“47nji90jhg”、“nh90hkgy56”和“njhh6474”,还包括2条行为链images-nodeName-remove-location和confirm-createEvent-importNode-clientTop。首先将变量值“uij68vsdgy75”与病毒特征库中的3个变量值逐一进行匹配,确定“njhh6474”和“uij68vsdgy75”与“47nji90jhg”、“nh9-0hkgy56”均不相同;接着将images-nodeName-remove-location与病毒特征库中2条行为链逐一进行匹配,确定images-nodeName-remove-location与其中一条行为链相同,从而确定目标脚本文件为恶意脚本文件。
表4.病毒特征库-3
病毒特征 |
47nji90jhg |
nh90hkgy56 |
njhh6474 |
images-nodeName-remove-location |
confirm-createEvent-importNode-clientTop |
在本发明实施例中,首先将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;接着在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;然后根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。通过仿真运行脚本代码可以避免脚本加密导致检测失效、提高恶意脚本检测的有效性。
请参考图2,图2是本发明实施例提供的另一种恶意脚本的检测方法的流程示意图。如图所示,本发明实施例中的方法包括:
S201,确定目标文件的文件格式是否为预设文件格式。若是,则执行S202,若否,则终止与本步骤,并不再执行下述操作步骤。
具体实现中,预设文件格式包括至少一种文件格式,如JavaScript格式。其中,可以通过文件的扩展名来识别目标文件的文件格式,例如,JavaScript文件的扩展名为.js,还可以通过识别目标脚本文件中的脚本代码的编写格式和语法特征来识别目标脚本文件的文件格式。然后将目标脚本文件的文件格式与每种预设文件格式进行匹配,当该文件格式与其中一种预设文件格式相同时,确定该文件格式为预设文件格式。
S202,当所述文件格式为所述预设文件格式时,将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行。本步骤与上一实施例中的步骤S101相同,本步骤不再赘述。
S203,在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息。本步骤与上一实施例中的步骤S102相同,本步骤不再赘述。
S204,根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。本步骤与上一实施例中的步骤S103相同,本步骤不再赘述。
在本发明实施例中,首先将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;接着在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;然后根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。通过仿真运行脚本代码可以避免脚本加密导致检测失效、提高恶意脚本检测的有效性。
请参考图3,图3是本发明实施例提供的一种恶意脚本的检测装置的结构示意图。如图所示,本发明实施例包括:
仿真模块301,用于将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行。
具体实现中,可以首先建立虚拟系统,其中,可以从系统中分配一块内存空间作为虚拟系统的内存空间,并在该内存空间中加载脚本代码的解析机制以及仿真规则,例如,当目标脚本文件的一条脚本代码为实现读取系统中的文件A的功能的代码,则在虚拟系统仿真运行该脚本代码时,控制该脚本代码中的文件读取函数读取虚拟系统中预存的文件名为Simulation-file的文件,虚拟系统可以根据解析机制和仿真规则仿真运行脚本代码;接着将目标脚本文件加载到虚拟系统中,其中,虚拟系统可以从第一条代码开始逐条读取目标脚本文件中的脚本代码,直到所述目标脚本文件中的脚本代码全部被读取,其中,在读取每条脚本代码时,可以逐字节地读取,当读到语句结束符(如分号;)时,确定已经读取了一条脚本代码,然后从语句结束符后的第一个字节开始读取下一条脚本代码;然后虚拟系统按照脚本代码的读取顺序,逐条解析并仿真运行读取到的脚本代码,其中,可以首先利用解析机制解析脚本代码,然后根据解析结果确定该条脚本代码的语句类型并执行该条脚本代码中的表达式,其中,当脚本代码中包含变量(如数字变量、字符串变量和布尔变量等)时,首先从虚拟系统的内存空间中划分一块大小可变的存储空间,并用该变量的变量名标识该存储区域,然后将该变量的变量值写入该存储空间中,当脚本代码中包含应用程序接口(Application Programming Interface,API)时,首先确定所包含的API的函数类型,若该API的函数类型为有返回值型,仿真运行该API,并将该API的返回值记录在日志信息中,若该API的函数类型为无返回值型,提取该API的输入参数记录在日志信息,并不再对该API做其他的仿真运行操作。
可选的,为了防止虚拟系统因仿真运行的脚本代码的条数过多、或运行的脚本代码陷入死循环而长时间失去响应,在每次进行仿真运行之前对虚拟系统进行初始化,设定虚拟系统执行脚本代码的条数的预设阈值。在仿真运行脚本代码时,虚拟系统可以记录仿真运行的脚本代码的累积条数,当累积条数超过预设阈值时,停止仿真运行脚本代码,其中,预设阈值可以为100、500等任意值。
可选的,在每次进行仿真运行之前对虚拟系统进行初始化,设定虚拟系统执行脚本代码的时长的预设阈值。在仿真运行脚本代码时,虚拟系统在仿真运行脚本代码时可以记录仿真运行脚本代码的累积时长,当累积时长超过预设阈值时,确定脚本代码陷入了死循环,则停止仿真运行脚本代码,其中,预设阈值可以为10分钟、15分钟等任意时间长度。
可选的,仿真模块301还用于确定目标文件的文件格式是否为预设文件格式。若是,则执行将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行的操作,若否,则终止与本步骤,并不再执行其他操作步骤。
具体实现中,预设文件格式包括至少一种文件格式,如JavaScript格式。其中,可以通过文件的扩展名来识别目标文件的文件格式,例如,JavaScript文件的扩展名为.js,还可以通过识别目标脚本文件中的脚本代码的编写格式和语法特征来识别目标脚本文件的文件格式。然后将目标脚本文件的文件格式与每种预设文件格式进行匹配,当该文件格式与其中一种预设文件格式相同时,确定该文件格式为预设文件格式。
获取模块302,用于在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息。
具体实现中,在脚本代码仿真运行过程中,可以监控脚本代码中的变量的变化,并根据变量名从虚拟系统的内存空间中获取对应的变量值,并将变量值作为脚本代码的特征信息。
可选的,在所述脚本代码仿真运行过程中,可以监控脚本代码中的API的运行参数。其中,当扫描到脚本代码中包含API接口时,可以首先确定所述应用程序接口的函数类型;然后若所述函数类型为无返回值型时,从日志信息中获取该API的输入参数作为该API的运行参数,若所述函数类型为有返回值型时,从日志信息中获取仿真运行该API时返回的参数作为该API的运行参数,将运行参数作为脚本代码的特征信息。
可选的,在所述脚本代码仿真运行过程中,可以记录API的调用行为生成日志信息;根据所述日志信息生成所述行为链,其中,所述日志信息包括API的标识信息和调用API的调用时间,按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链,并将行为链作为脚本代码的特征信息。
确定模块303,用于根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
具体实现中,特征信息可以包括脚本代码中的变量值。在脚本代码仿真运行时,将所述变量值与病毒特征库中的病毒特征进行匹配,当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,变量值可以但不限于包括数字、字符和字符串中的至少一种,病毒特征库中包括至少一个被确定为病毒特征的变量值。
可选的,特征信息可以包括脚本代码中的应用程序接口的运行参数。在脚本代码仿真运行时,将所述运行参数与病毒特征库中的病毒特征进行匹配,当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,运行参数可以但不限于包括数字、字符和字符串中的至少一种,病毒特征库中包括至少一个被确定为病毒特征的运行参数。
可选的,特征信息可以包括所述脚本代码仿真运行时调用所述应用程序接口的行为链。当目标脚本文件仿真运行结束后,首先将所述行为链与病毒特征库中的病毒特征进行匹配;然后当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。其中,病毒特征库中包括至少一条被确定为病毒特征的行为链。
可选的,特征信息可以包括脚本代码中的变量值、脚本代码中的API的运行参数以及所述脚本代码仿真运行时调用API的行为链中的至少两项。当其中至少一项特征信息与所述病毒特征库中的病毒特征相配时,确定目标脚本文件为恶意脚本文件。
在本发明实施例中,首先将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;接着在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;然后根据所述脚本代码的特征信息,确定所述目标脚本文件是否为恶意脚本文件。通过仿真运行脚本代码可以避免脚本加密导致检测失效、提高恶意脚本检测的有效性。
请参考图4,图4是本发明实施例提出的一种电子设备的结构示意图。如图所示,该电子设备可以包括:至少一个处理器401,例如CPU,至少一个通信接口402,至少一个存储器403,至少一个总线404。其中,总线404用于实现这些组件之间的连接通信。其中,本发明实施例中电子设备的通信接口402是有线发送端口,也可以为无线设备,例如包括天线装置,用于与其他节点设备进行信令或数据的通信。存储器403可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器403可选的还可以是至少一个位于远离前述处理器401的存储装置。存储器403中存储一组程序代码,且处理器401用于调用存储器中存储的程序代码,用于执行以下操作:
将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的变量值;
处理器401还用于执行如下操作步骤:
将所述变量值与病毒特征库中的病毒特征进行匹配;
当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码中的应用程序接口的运行参数;
处理器401还用于执行如下操作步骤:
将所述运行参数与病毒特征库中的病毒特征进行匹配;
当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,所述特征信息包括所述脚本代码仿真运行时调用所述应用程序接口的行为链;
处理器401还用于执行如下操作步骤:
将所述行为链与病毒特征库中的病毒特征进行匹配;
当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
其中,处理器401还用于执行如下操作步骤:
在所述脚本代码仿真运行过程中,记录所述应用程序接口的调用行为生成日志信息;
根据所述日志信息生成所述行为链。
其中,所述日志信息包括所述应用程序接口的标识信息和调用所述应用程序接口的调用时间;
处理器401还用于执行如下操作步骤:
按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链。
其中,处理器401还用于执行如下操作步骤:
当所述虚拟系统仿真运行的所述脚本代码的累积条数超过预设阈值时,停止仿真运行所述脚本代码。
其中,处理器401还用于执行如下操作步骤:
确定所述目标脚本文件的文件格式是否为预设文件格式;
当所述文件格式为所述预设文件格式时,执行所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行的操作。
其中,处理器401还用于执行如下操作步骤:
当所述脚本代码中包含所述应用程序接口时,确定所述应用程序接口的函数类型;
当所述函数类型为无返回值型时,获取所述应用程序接口的输入参数作为所述运行参数。
需要说明的是,本发明实施例同时也提供了一种存储介质,该存储介质用于存储应用程序,该应用程序用于在运行时执行图1和图2所示的一种恶意脚本的检测方法中电子设备执行的操作。
需要说明的是,本发明实施例同时也提供了一种应用程序,该应用程序用于在运行时执行图1和图2所示的一种恶意脚本的检测方法中电子设备执行的操作。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种恶意脚本的检测方法,其特征在于,所述方法应用于电子设备,所述方法包括:
将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
2.如权利要求1所述的方法,其特征在于,所述特征信息包括所述脚本代码中的变量值;
所述根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述变量值与病毒特征库中的病毒特征进行匹配;
当所述变量值与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
3.如权利要求1所述的方法,其特征在于,所述特征信息包括所述脚本代码中的应用程序接口的运行参数;
所述根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述运行参数与病毒特征库中的病毒特征进行匹配;
当所述运行参数与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
4.如权利要求1所述的方法,其特征在于,所述特征信息包括所述脚本代码仿真运行时调用所述应用程序接口的行为链;
所述根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件包括:
将所述行为链与病毒特征库中的病毒特征进行匹配;
当所述行为链与所述病毒特征相匹配时,确定所述目标脚本文件为所述恶意脚本文件。
5.如权利要求4所述的方法,其特征在于,所述获取所述脚本代码的特征信息包括:
在所述脚本代码仿真运行过程中,记录所述应用程序接口的调用行为生成日志信息;
根据所述日志信息生成所述行为链。
6.如权利要求5所述的方法,其特征在于,所述日志信息包括所述应用程序接口的标识信息和调用所述应用程序接口的调用时间;
所述根据所述日志信息生成所述行为链包括:
按照所述调用时间的先后顺序,将所述标识信息排列成一串字符串作为所述行为链。
7.如权利要求1-6任一项所述的方法,其特征在于,所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行包括:
当所述虚拟系统仿真运行的所述脚本代码的累积条数超过预设阈值时,停止仿真运行所述脚本代码。
8.如权利要1所述的方法,其特征在于,所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行之前,还包括:
确定所述目标脚本文件的文件格式是否为预设文件格式;
当所述文件格式为所述预设文件格式时,执行所述将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行的操作。
9.如权利要求3所述的方法,其特征在于,所述获取所述脚本代码的特征信息包括:
当所述脚本代码中包含所述应用程序接口时,确定所述应用程序接口的函数类型;
当所述函数类型为无返回值型时,获取所述应用程序接口的输入参数作为所述运行参数。
10.一种恶意脚本的检测装置,其特征在于,所述装置包括:
仿真模块,用于将目标脚本文件中的脚本代码加载到虚拟系统中进行仿真运行;
获取模块,用于在所述脚本代码仿真运行过程中,扫描所述脚本代码,并获取所述脚本代码的特征信息;
确定模块,用于根据所述脚本代码的所述特征信息,确定所述目标脚本文件是否为恶意脚本文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810650357.2A CN108959925A (zh) | 2018-06-22 | 2018-06-22 | 一种恶意脚本的检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810650357.2A CN108959925A (zh) | 2018-06-22 | 2018-06-22 | 一种恶意脚本的检测方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108959925A true CN108959925A (zh) | 2018-12-07 |
Family
ID=64491908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810650357.2A Pending CN108959925A (zh) | 2018-06-22 | 2018-06-22 | 一种恶意脚本的检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959925A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086811A (zh) * | 2019-04-29 | 2019-08-02 | 深信服科技股份有限公司 | 一种恶意脚本检测方法及相关装置 |
CN110147671A (zh) * | 2019-05-29 | 2019-08-20 | 北京奇安信科技有限公司 | 一种程序内字符串提取方法及装置 |
CN111881449A (zh) * | 2020-07-31 | 2020-11-03 | 北京微步在线科技有限公司 | 恶意代码辅助分析方法及装置 |
CN112817811A (zh) * | 2020-12-31 | 2021-05-18 | 深圳市联影高端医疗装备创新研究院 | 扫描失败率的预测方法、装置、设备及存储介质 |
CN116204879A (zh) * | 2022-12-30 | 2023-06-02 | 之江实验室 | 恶意文件检测方法、装置、电子装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180344A1 (en) * | 2009-01-10 | 2010-07-15 | Kaspersky Labs ZAO | Systems and Methods For Malware Classification |
CN103150507A (zh) * | 2012-02-24 | 2013-06-12 | 卡巴斯基实验室封闭式股份公司 | 用于检测未知打包器和加密器的系统和方法 |
CN105144187A (zh) * | 2013-02-10 | 2015-12-09 | 配拨股份有限公司 | 提供预测的安全产品以及评分现有安全产品的方法与产品 |
CN106845227A (zh) * | 2016-12-27 | 2017-06-13 | 哈尔滨安天科技股份有限公司 | 一种基于ragel状态机的恶意脚本检测方法及系统 |
-
2018
- 2018-06-22 CN CN201810650357.2A patent/CN108959925A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180344A1 (en) * | 2009-01-10 | 2010-07-15 | Kaspersky Labs ZAO | Systems and Methods For Malware Classification |
CN103150507A (zh) * | 2012-02-24 | 2013-06-12 | 卡巴斯基实验室封闭式股份公司 | 用于检测未知打包器和加密器的系统和方法 |
CN105144187A (zh) * | 2013-02-10 | 2015-12-09 | 配拨股份有限公司 | 提供预测的安全产品以及评分现有安全产品的方法与产品 |
CN106845227A (zh) * | 2016-12-27 | 2017-06-13 | 哈尔滨安天科技股份有限公司 | 一种基于ragel状态机的恶意脚本检测方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086811A (zh) * | 2019-04-29 | 2019-08-02 | 深信服科技股份有限公司 | 一种恶意脚本检测方法及相关装置 |
CN110147671A (zh) * | 2019-05-29 | 2019-08-20 | 北京奇安信科技有限公司 | 一种程序内字符串提取方法及装置 |
CN111881449A (zh) * | 2020-07-31 | 2020-11-03 | 北京微步在线科技有限公司 | 恶意代码辅助分析方法及装置 |
CN112817811A (zh) * | 2020-12-31 | 2021-05-18 | 深圳市联影高端医疗装备创新研究院 | 扫描失败率的预测方法、装置、设备及存储介质 |
CN116204879A (zh) * | 2022-12-30 | 2023-06-02 | 之江实验室 | 恶意文件检测方法、装置、电子装置及存储介质 |
CN116204879B (zh) * | 2022-12-30 | 2023-12-05 | 之江实验室 | 恶意文件检测方法、装置、电子装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959925A (zh) | 一种恶意脚本的检测方法、装置、电子设备及存储介质 | |
Gupta et al. | Hunting for DOM-Based XSS vulnerabilities in mobile cloud-based online social network | |
US11601462B2 (en) | Systems and methods of intelligent and directed dynamic application security testing | |
EP2420931A1 (en) | Solving hybrid constraints to generate test cases for validating a software module | |
EP2420932A1 (en) | Solving hybrid constraints to validate a security software module for detecting injection attacks | |
US20170046141A1 (en) | Static Analysis And Reconstruction Of Deep Link Handling In Compiled Applications | |
EP2407887A1 (en) | Solving hybrid constraints to validate specification requirements of a software module | |
CN105653949B (zh) | 一种恶意程序检测方法及装置 | |
JP6162733B2 (ja) | コンピュータ環境における式の変換 | |
US10637881B2 (en) | Javascript security testing | |
Ugarte et al. | PowerDrive: accurate de-obfuscation and analysis of PowerShell malware | |
US10579799B2 (en) | System and method for execution of objects lacking rules of interpretation | |
CN104168250A (zh) | 基于cgi框架的业务流程控制方法及装置 | |
Bak et al. | Compiling graph programs to C | |
CN111753302A (zh) | 检测代码漏洞的方法、装置、计算机可读介质及电子设备 | |
CN109242561A (zh) | 抽奖模型构建方法、抽奖活动管理方法、装置和计算设备 | |
Sayed et al. | If-transpiler: Inlining of hybrid flow-sensitive security monitor for JavaScript | |
CN107426201A (zh) | 可执行文件的处理方法及装置、存储介质和处理器 | |
CN114880667A (zh) | 一种脚本检测方法及装置 | |
CN109271783A (zh) | 一种病毒拦截方法、装置及电子设备 | |
KR102344496B1 (ko) | 악성코드의 기능을 분석하는 방법 및 장치 | |
CN116775040B (zh) | 实现代码疫苗的插桩方法及基于代码疫苗的应用测试方法 | |
CN109828808A (zh) | 一种防拦截方法及相关设备 | |
US20220334858A1 (en) | Hybrid Membrane Environment Simulation for Javascript | |
CN112379922B (zh) | 一种程序比对方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191128 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Applicant after: Zhuhai Leopard Technology Co.,Ltd. Address before: 519070, No. 10, main building, No. six, science Road, Harbour Road, Tang Wan Town, Guangdong, Zhuhai, 601F Applicant before: Zhuhai Juntian Electronic Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181207 |