CN106909842A - 一种数据恢复方法及装置 - Google Patents

一种数据恢复方法及装置 Download PDF

Info

Publication number
CN106909842A
CN106909842A CN201510971476.4A CN201510971476A CN106909842A CN 106909842 A CN106909842 A CN 106909842A CN 201510971476 A CN201510971476 A CN 201510971476A CN 106909842 A CN106909842 A CN 106909842A
Authority
CN
China
Prior art keywords
script
detected
data
word
malicious
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.)
Granted
Application number
CN201510971476.4A
Other languages
English (en)
Other versions
CN106909842B (zh
Inventor
陈卓
杨康
唐海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
3600 Technology Group Co ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510971476.4A priority Critical patent/CN106909842B/zh
Publication of CN106909842A publication Critical patent/CN106909842A/zh
Application granted granted Critical
Publication of CN106909842B publication Critical patent/CN106909842B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种数据恢复方法,用于解决现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。该方法包括:对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。本申请还公开了一种数据恢复装置。

Description

一种数据恢复方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据恢复方法及装置。
背景技术
在互联网时代,计算机病毒极大地威胁着计算机的安全。计算机病毒传染性极强,计算机随时都有可能被计算机病毒感染,而且计算机病毒的破坏力极大,可能会导致计算机系统瘫痪、信息泄露等。
当计算机系统中的数据被计算机病毒感染后,被感染的数据一般会被修改,比如计算机病毒可能会在计算机数据中添加恶意代码,计算机病毒还可能会修改计算机注册表。当计算机病毒被杀毒软件清除后,被计算机病毒感染的数据仍然可能会对计算机的安全造成隐患。
发明内容
本申请实施例提供一种数据恢复方法,用于解决现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
本申请实施例还提供一种数据恢复装置,用于解决现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
本申请实施例采用下述技术方案:
一种数据恢复方法,包括:
对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
一种数据恢复装置,包括:
集合构建单元:用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
步骤确定单元:用于虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
数据恢复单元:用于根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
相对于现有技术中无法恢复被计算机病毒感染的数据造成的计算机安全隐患,本方案将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过对组合编码脚本集合中的脚本元素进行虚拟执行,确定恶意脚本感染数据的步骤,进而根据所述恶意脚本感染数据的步骤,查找并恢复被恶意脚本感染的数据为被恶意脚本感染前的原始数据,解决了现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种数据恢复方法的实现流程示意图;
图2为本申请实施例2提供的一种数据恢复方法的一种实现流程示意图;
图3为本申请实施例3提供的一种数据恢复装置的具体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
为解决现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题,本申请实施例1提供一种数据恢复方法。该方法的执行主体,可以但不限于为手机、平板电脑、个人电脑(Personal Computer,PC)等任何可以运行杀毒引擎的终端设备中的至少一种。此外,该方法的执行主体,也可以是杀毒引擎本身。
为便于描述,下文以该方法的执行主体为杀毒引擎为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为杀毒引擎只是一种示例性的说明,并不应理解为对该方法的限定。
该方法的实现流程示意图如图1所示,包括下述步骤:
步骤11:对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;
本申请实施例中,所述脚本可以是由脚本语言编写的以纯文本形式保存的程序,所述脚本可以控制计算机进行运算操作。所述脚本比如可以是利用JavaScript语言编写的JS脚本、利用Visual Basic Script语言编写的VBScript脚本等。所述编码为编写所述脚本的代码。
在实际应用中,在对被检测脚本的编码进行词语分析之前,可以预先确定被检测脚本的类型,然后利用与所述被检测脚本的类型相对应的脚本杀毒引擎对被检测脚本进行处理。
本申请实施例中所述的脚本杀毒引擎,为判断脚本是否为病毒脚本并进行病毒清理的程序。由于不同类型的脚本的编写语言不同,本申请实施例中,可以根据待检测脚本的类型,确定与所述待检测脚本的类型对应的脚本杀毒引擎进行处理。
在实际应用中,可以根据脚本的类型,设置与脚本的类型对应的脚本杀毒引擎。本申请实施例中的脚本杀毒引擎所处理的脚本的类型包括但不限于下述几种:JS(JavaScript)脚本、VBScript(Microsoft Visual Basic Script Editon)脚本、PHP(Hypertext Preprocessor)脚本和ASP(Active Server Page)脚本。
与所述脚本的类型相对应,所述脚本杀毒引擎包括但不限于下述几种:JS脚本杀毒引擎、VBScript脚本杀毒引擎、PHP脚本杀毒引擎和ASP脚本杀毒引擎。
本申请实施例中,脚本杀毒引擎对脚本的分析规则与脚本的类型有关,即脚本杀毒引擎可以根据与之对应的脚本的类型的脚本规范,对该类型脚本进行分析。所述脚本规范比如可以是脚本的编码规范。例如,JS脚本杀毒引擎可以根据JS脚本的脚本规范对JS脚本进行分析。
为了获取被检测脚本的编码,以便对被检测脚本进行分析,本申请实施例中,可以利用脚本编码获取引擎对脚本中的编码进行获取。例如,可以利用windows平台下的MS Script脚本引擎来实现对VBScript脚本代码的获取,MSScript脚本引擎可以通过运行VBScript脚本代码,进而提取VBScript脚本代码中的变量、函数等信息。
本申请实施例中,还可以通过特征函数捕获函数来获取被检测脚本的编码。具体地,可以预先设定特征函数、以及特征函数捕获函数与特征函数的对应关系;当被检测脚本调用特征函数时,将该特征函数替换为与该特征函数对应的特征函数捕获函数,例如,对于JavaScript脚本,可以采用Hook JS的方式进行替换,Hook指的是将一个函数的调用变成另一个函数的调用;利用特征函数捕获函数获得特征函数中的编码。
需要说明的是,在对被检测脚本的编码进行获取时,对于混淆加密的脚本,可以对混淆加密的脚本进行解混淆处理,获得混淆加密前的原始编码。所述混淆加密,指将编码中的各种元素(如变量,函数,类的名字)按照某种规则转换成其它名字进行表示,从而进行加密,使得阅读的人无法根据名字猜测其用途。
在实际应用中,由于不可执行编码一般不会对计算机中的数据带来危害,为了减少编码分析时的运算量,在获取脚本编码时,可以仅获取被检测脚本的可执行编码,并在后续步骤中仅针对可执行代码进行词语分析,以便减少词语分析时的运算量。
基于上述编码获取方法获取到被检测脚本的编码后,可以对被检测脚本的编码进行词语分析。所述词语分析包括词法分析、语法分析、表达式分析中的至少一种。
具体地,可以对被检测脚本进行词法分析,确定实际脚本中每个词语单元的单词类型集合。
所述词语单元的单词类型集合,为根据所述词语单元可能具备的单词类型构建的集合。所述单词类型集合中的元素为不同单词类型的单词。为了便于描述,在这里将单词类型集合中的元素称为单词类型元素。所述单词类型集合包括词语单元所对应的至少一个单词类型元素。所述词语单元的单词类型比如可以是关键字、标识符、数字、标点、运算符、注释、字符串、正则表达式等单词类型。例如,词语单元A可能具备的单词类型为关键字和标识符,则可以确定词语单元A的单词类型集合为{关键字A,标识符A}。
也可以对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素。所述语句单元的语句类型集合为根据所述语句单元可能的语句类型构建的集合。为了便于描述,在这里将语句类型集合中的单个语句类型的语句称为语句类型元素,所述语句单元的语句类型比如可以是块语句、空语句、变量语句、表达式语句、条件语句、遍历语句、返回语句、中断语句、异常语句、选择语句等语句类型。
还可以对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素。所述表达式单元的表达式类型集合为根据所述表达式单元可能的表达式类型构建的集合。为了便于描述,在这里将表达式类型集合中的单个表达式类型的表达式称为表达式类型元素,所述表达式单元的表达式类型比如可以是:赋值表达式、条件表达式、逻辑表达式、位运算表达式、关系表达式、移位表达式、数学运算表达式、后缀表达式、成员表达式、调用表达式、主表达式等表达式类型。
在对所述被检测脚本进行语法分析后,可以根据所述语法分析的结果,构建所述被检测脚本对应的组合编码脚本集合。
在实际应用中,可以仅根据单词类型集合和语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
具体的构建方式比如可以包括下述步骤:
从单词类型集合中选取一个单词类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、以及语句类型元素组合成一个组合编码脚本元素。
按照上述两个步骤,遍历所述单词类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素。
例如,获取到的被检测脚本的编码包含词语单元A和语句单元C。经过词语分析得出:词语单元A的可能的单词类型是关键字或标识符;语句单元C的语句类型可能是条件语句或选择语句。则确定词语单元A的单词类型集合为{关键字A,标识符A},语句类型单元C的语句类型集合为{条件语句C,选择语句C}。在构建所述被检测脚本的组合编码脚本元素时,从单词类型集合中选取一个单词类型元素“关键字A”,从语句类型集合中选取一个语句类型“条件语句C”,则可生成当生成虚拟脚本:词语单元A(关键字)和语句单元C(条件语句)。类似地,遍历单词类型集合和语句类型集合中的所以元素,构建组合编码脚本元素,将所有组合编码脚本元素组合成组合编码脚本集合,则所述组合编码脚本集合包括如下组合编码脚本元素:
词语单元A(关键字)和语句单元C(条件语句);
词语单元A(关键字)和语句单元C(选择语句);
词语单元A(标识符)和语句单元C(条件语句);
词语单元A(标识符)和语句单元C(条件语句)。
在实际应用中,可以根据单词类型集合、表达式类型集合和语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
具体的构建方式比如可以包括下述步骤:
从单词类型集合中选取一个单词类型元素,从表达式类型集合中选取一个表达式类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素。
按照上述两个步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素。
例如,获取到的被检测脚本的编码包含词语单元A、表达式单元B和语句单元C。经过词语分析得出:词语单元A的可能的单词类型是关键字或标识符;表达式单元B的表达式类型是赋值表达式或位运表达式;语句单元C的语句类型可能是条件语句或选择语句。则,与上述根据词语单元集合和语句单元集合构建组合编码脚本集合的方法类似,构建包含如下组合编码脚本元素的组合编码脚本集合:
词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(条件语句);
词语单元A(关键字)、表达式单元B(赋值表达式)和语句单元C(选择语句);
词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(条件语句);
词语单元A(关键字)、表达式单元B(位运算表达式)和语句单元C(选择语句);
词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(条件语句);
词语单元A(标识符)、表达式单元B(赋值表达式)和语句单元C(选择语句);
词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(条件语句);
词语单元A(标识符)、表达式单元B(位运算表达式)和语句单元C(选择语句)。
步骤12:虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
本申请实施例中,所述数据可以是计算机中的任何数据,比如计算机中存储的文件、操作系统注册表等等。当对所述组合编码脚本集合中的脚本元素进行虚拟执行时,所述数据也可以是虚拟机中的数据。
为了获取恶意脚本对不同类型的数据的恶意行为,在实际应用中,可以在虚拟机中设置各种类型的数据样本,供恶意脚本执行恶意操作。
本申请实施例中,恶意脚本对数据的感染比如可以是恶意脚本将自身的恶意代码通过修改宿主程序的某个入口指针的方式镶嵌到所述宿主程序中,也可以是恶意脚本将宿主程序变为自身的附属程序。被感染的数据将会被病毒程序利用,危害计算机的系统安全。恶意脚本也可能会对数据执行破坏操作,所述破坏操作比如可以是转移数据、删除数据等等。
本申请实施例中,可以通过对组合编码脚本集合中的每个脚本元素进行虚拟执行,并根据虚拟执行的结果,判断被检测脚本是否为恶意脚本。例如,当被检测脚本恶意改变虚拟机中的数据时,则可以确定被检测脚本为恶意脚本。
本申请实施例中,当确定被检测脚本为恶意脚本后,可以根据恶意脚本虚拟执行的过程,确定恶意脚本感染数据的步骤。具体地,在虚拟执行所述被检测脚本的过程中,可以对被检测脚本做动态跟踪,记录恶意脚本的具体执行步骤。
步骤13:根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
本申请实施例中,在将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据时,可以通过所述恶意脚本感染数据的步骤获得。
具体地,根据所述恶意脚本感染数据的步骤,可以获取被所述恶意脚本感染后的数据的特征。具体而言,可以通过恶意脚本感染数据的步骤,获取恶意脚本对数据的更改内容,并将所述更改内容作为被恶意脚本感染的数据的特征。例如,病毒脚本在某文件中嵌入了恶意代码,则可以将所述恶意代码作为被所述恶意脚本感染后的数据的特征。
本申请实施例中,在获取到被恶意脚本感染后的数据的特征后,可以根据所述特征,在计算机中查找包含所述特征的被病毒感染的数据。由于在计算机中查找具备某种特征的数据,已是比较成熟的现有技术,本说明书中对此不再进一步赘述。
本申请实施例中,在查找到被病毒感染的数据后,可以通过根据所述恶意脚本感染数据的步骤构建的逆向步骤来对数据进行恢复。所述逆向步骤是与恶意脚本感染数据的步骤相反的步骤,例如,如果恶意脚本感染数据的步骤为在某文件中嵌入了恶意代码,则所述逆向步骤为将所述恶意代码从所述文件中删除;如果恶意脚本恶意删除了某注册表数据,则所述逆向步骤为将被所述恶意脚本恶意删除的注册表数据进行恢复。
在实际应用中,可以对计算机操作系统的相关数据进行备份,以便所述计算机操作系统相关的数据在被病毒恶意破坏后,可以直接调用备份数据覆盖被破坏的数据,达到数据恢复的效果。所述计算机系统相关的数据比如可以是计算机的注册表、系统配置文件等。所述备份可以是在计算机本地进行备份,为了节省用户磁盘空间,所述备份也可以是在云端服务器中进行备份。
需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤11和步骤12的执行主体可以为设备1,步骤13的执行主体可以为设备2;又比如,步骤11的执行主体可以为设备1,步骤12和步骤13的执行主体可以为设备2;等等。
相对于现有技术中无法恢复被计算机病毒感染的数据造成的计算机安全隐患,本申请实施例1提供的方法,将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过对组合编码脚本集合中的脚本元素进行虚拟执行,确定恶意脚本感染数据的步骤,进而根据所述恶意脚本感染数据的步骤,查找并恢复被恶意脚本感染的数据为被恶意脚本感染前的原始数据,解决了现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
实施例2
本申请实施例2,主要介绍本申请实施例1提供的上述方法在实际中的一种应用方案。
在对该方案的实现方式进行详细介绍前,先对该方案的实施场景进行简单介绍:
计算机杀毒引擎检查计算机中是否有脚本病毒,并判断所述脚本病毒是否会感染计算机中的数据,如果所述病毒将数据感染,则将被感染的数据进行恢复。
基于上述实施场景,实施例2提供的数据恢复过程如图2所示,包括下述步骤:
步骤21:利用脚本编码获取引擎获取计算机中被检测脚本的编码;
步骤22:对所述被检测脚本的编码进行词语分析;
步骤23:根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;
步骤24:通过虚拟执行所述组合编码脚本集合中的组合编码脚本元素,确定出恶意更改数据的被检测脚本为脚本病毒;
步骤25:对所述脚本病毒的感染数据的步骤进行分析,发现该脚本病毒会将.doc格式的word文档文件变为.exe格式的可执行文件,并在所述可执行文件中添加恶意代码;
步骤26:将所述恶意代码作为查找特征,查找所述计算机中的.exe格式的文件中是否包含所述恶意代码,以便查找被所述脚本病毒感染的文件;
步骤27:根据脚本病毒感染数据的步骤,构建所述恶意脚本感染数据的步骤的逆向步骤,作为数据恢复的步骤;
步骤28:按照所述数据恢复的步骤,将查找到的计算机中包含恶意代码的.exe格式的文件恢复为.doc格式的word文档文件。
相对于现有技术中无法恢复被计算机病毒感染的数据造成的计算机安全隐患,本申请实施例2提供的方法,将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过对组合编码脚本集合中的脚本元素进行虚拟执行,确定恶意脚本感染数据的步骤,进而根据所述恶意脚本感染数据的步骤,查找并恢复被恶意脚本感染的数据为被恶意脚本感染前的原始数据,解决了现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
实施例3
为解决现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题,本申请实施例3提供一种数据恢复装置。该数据恢复装置的结构示意图如图3所示,主要包括下述功能单元:
集合构建单元31,用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
步骤确定单元32,用于虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
数据恢复单元33,用于根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
在一种实施方式中,所述数据恢复单元33,具体用于根据所述恶意脚本感染数据的步骤,获取被所述恶意脚本感染后的数据的特征;
根据所述恶意脚本感染数据的步骤,构建所述恶意脚本感染数据的步骤的逆向步骤;
根据所述被恶意脚本感染后的数据的特征,查找计算机中被病毒感染的数据;
按照所述逆向步骤,将查找到的计算机中被病毒感染的数据恢复为被恶意脚本感染前的原始数据。
在一种实施方式中,所述集合构建单元31,具体用于对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
在一种实施方式中,所述集合构建单元31,具体用于对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
根据所述单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
在一种实施方式中,所述集合构建单元31,具体用于从单词类型集合中选取一个单词类型元素,从表达式类型集合中选取一个表达式类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
在一种实施方式中,所述集合构建单元31,具体用于根据被检测脚本的类型,确定被检测脚本的词语分析引擎;利用所述词语分析引擎,对所述被检测脚本进行词语分析。
相对于现有技术中无法恢复被计算机病毒感染的数据造成的计算机安全隐患,本申请实施例3提供的装置,将被检测脚本的编码进行词语分析后,构建被检测脚本的组合编码脚本集合,通过对组合编码脚本集合中的脚本元素进行虚拟执行,确定恶意脚本感染数据的步骤,进而根据所述恶意脚本感染数据的步骤,查找并恢复被恶意脚本感染的数据为被恶意脚本感染前的原始数据,解决了现有技术中被计算机病毒感染的数据会导致计算机存在安全隐患的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据恢复方法,其特征在于,包括:
对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
2.如权利要求1所述的方法,其特征在于,根据所述恶意脚本感染数据的过程,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据,包括:
根据所述恶意脚本感染数据的步骤,获取被所述恶意脚本感染后的数据的特征;
根据所述恶意脚本感染数据的步骤,构建所述恶意脚本感染数据的步骤的逆向步骤;
根据所述被恶意脚本感染后的数据的特征,查找计算机中被病毒感染的数据;
按照所述逆向步骤,将查找到的计算机中被病毒感染的数据恢复为被恶意脚本感染前的原始数据。
3.如权利要求1所述的方法,其特征在于,对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合,包括:
对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
根据所述单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
5.如权利要求4所述的方法,其特征在于,根据单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
从单词类型集合中选取一个单词类型元素,从表达式类型集合中选取一个表达式类型元素,从词句类型集合中选取一个词句类型元素;
将选取的所述单词类型元素、表达式类型元素以及语句类型元素组合成一个组合编码脚本元素;
按照上述步骤,遍历所述单词类型集合、表达式类型集合、词句类型集合中的所有元素组合成组合编码脚本元素,利用所有组合编码脚本元素构成组合编码脚本集合。
6.如权利要求1所述的方法,其特征在于,对被检测脚本的编码进行词语分析,包括:
根据被检测脚本的类型,确定被检测脚本的词语分析引擎;
利用所述词语分析引擎,对所述被检测脚本进行词语分析。
7.一种数据恢复装置,其特征在于,包括:
集合构建单元:用于对被检测脚本的编码进行词语分析,根据所述词语分析的结果,构建所述被检测脚本的组合编码脚本集合;所述组合编码脚本集合包括所述被检测脚本编码所对应的至少一个脚本元素;
步骤确定单元:用于虚拟执行所述组合编码脚本集合中的脚本元素,根据脚本元素的虚拟执行过程,确定组合编码脚本集合中的恶意脚本感染数据的步骤;
数据恢复单元:用于根据所述恶意脚本感染数据的步骤,将被恶意脚本感染的数据恢复为被恶意脚本感染前的原始数据。
8.如权利要求7所述的方法,其特征在于:
所述数据恢复单元,具体用于根据所述恶意脚本感染数据的步骤,获取被所述恶意脚本感染后的数据的特征;
根据所述恶意脚本感染数据的步骤,构建所述恶意脚本感染数据的步骤的逆向步骤;
根据所述被恶意脚本感染后的数据的特征,查找计算机中被病毒感染的数据;
按照所述逆向步骤,将查找到的计算机中被病毒感染的数据恢复为被恶意脚本感染前的原始数据。
9.如权利要求7所述的方法,其特征在于:
所述集合构建单元,具体用于对所述被检测脚本进行词法分析,确定所述被检测脚本中每个词语单元的单词类型集合;所述单词类型集合包括所述词语单元所对应的至少一个单词类型元素;
对所述被检测脚本进行语法分析,确定所述被检测脚本中每个语句单元的语句类型集合;所述语句类型集合包括所述语句单元所对应的至少一个语句类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
10.如权利要求7所述的方法,其特征在于:
所述集合构建单元,具体用于对所述被检测脚本进行表达式分析,确定所述被检测脚本中每个表达式单元的表达式类型集合;所述表达式类型集合包括所述表达式单元所对应的至少一个表达式类型元素;
根据所述单词类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合,包括:
根据所述单词类型集合、表达式类型集合和所述语句类型集合,构建所述被检测脚本对应的组合编码脚本集合。
CN201510971476.4A 2015-12-22 2015-12-22 一种数据恢复方法及装置 Active CN106909842B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510971476.4A CN106909842B (zh) 2015-12-22 2015-12-22 一种数据恢复方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510971476.4A CN106909842B (zh) 2015-12-22 2015-12-22 一种数据恢复方法及装置

Publications (2)

Publication Number Publication Date
CN106909842A true CN106909842A (zh) 2017-06-30
CN106909842B CN106909842B (zh) 2021-01-29

Family

ID=59199653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510971476.4A Active CN106909842B (zh) 2015-12-22 2015-12-22 一种数据恢复方法及装置

Country Status (1)

Country Link
CN (1) CN106909842B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820419A (zh) * 2010-03-23 2010-09-01 北京大学 一种挂马网页中网页木马挂接点自动定位方法
CN105117303A (zh) * 2012-11-23 2015-12-02 华为技术有限公司 一种数据恢复的方法及设备
CN103559447B (zh) * 2013-11-15 2016-05-25 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820419A (zh) * 2010-03-23 2010-09-01 北京大学 一种挂马网页中网页木马挂接点自动定位方法
CN105117303A (zh) * 2012-11-23 2015-12-02 华为技术有限公司 一种数据恢复的方法及设备
CN103559447B (zh) * 2013-11-15 2016-05-25 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统

Also Published As

Publication number Publication date
CN106909842B (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
Mercaldo et al. Ransomware steals your phone. formal methods rescue it
CN108259494B (zh) 一种网络攻击检测方法及装置
Rathore et al. XSSClassifier: an efficient XSS attack detection approach based on machine learning classifier on SNSs
US9860270B2 (en) System and method for determining web pages modified with malicious code
US11188650B2 (en) Detection of malware using feature hashing
RU2679785C1 (ru) Система и способ классификации объектов
US10867038B2 (en) System and method of detecting malicious files with the use of elements of static analysis
EP3474177B1 (en) System and method of detecting malicious files using a trained machine learning model
RU2606564C1 (ru) Система и способ блокировки выполнения сценариев
CN108694042B (zh) 网页中的JavaScript代码解混淆方法
Van Der Merwe et al. Turning evil regexes harmless
US10152465B2 (en) Security-focused web application crawling
Gupta et al. A client‐server JavaScript code rewriting‐based framework to detect the XSS worms from online social network
Bird et al. Actions speak louder than words: Semi-supervised learning for browser fingerprinting detection
CN107122656A (zh) 一种通过自调试防止外部调试的方法和装置
Chai et al. Invoke-deobfuscation: AST-based and semantics-preserving deobfuscation for PowerShell scripts
CN111881446B (zh) 一种工业互联网恶意代码识别方法及装置
CN116167057B (zh) 基于关键代码语义检测的代码动态安全加载方法及装置
Ohm et al. Sok: Practical detection of software supply chain attacks
CN106909843A (zh) 一种计算机病毒的检测方法及装置
CN106909842A (zh) 一种数据恢复方法及装置
CN115168861A (zh) 数据安全验证方法、装置、设备及存储介质
Buono et al. Towards secure mobile learning. visual discovery of malware patterns in android apps
Kurniawan et al. Classification of web backdoor malware based on function call execution of static analysis
Gupta et al. POND: polishing the execution of nested context-familiar runtime dynamic parsing and sanitisation of XSS worms on online edge servers of fog computing

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220818

Address after: No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science and Technology Park, High-tech Zone, Binhai New District, Tianjin 300000

Patentee after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.