CN108875363B - 一种加速虚拟执行的方法、装置、电子设备及存储介质 - Google Patents
一种加速虚拟执行的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN108875363B CN108875363B CN201711498890.3A CN201711498890A CN108875363B CN 108875363 B CN108875363 B CN 108875363B CN 201711498890 A CN201711498890 A CN 201711498890A CN 108875363 B CN108875363 B CN 108875363B
- Authority
- CN
- China
- Prior art keywords
- instruction sequence
- instruction
- matching
- virtual
- sequence
- 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
Images
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明的实施例公开一种加速虚拟执行的方法、装置、电子设备及存储介质,涉及计算机安全领域,能够提高现有技术中虚拟执行的效率。本发明实施例提供一种加速虚拟执行的方法,包括:每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索;当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
Description
技术领域
本发明涉及计算机安全领域,尤其涉及一种加速虚拟执行的方法、装置、电子设备及存储介质。
背景技术
沙箱(Sandboxie),又名沙盘,是一种按照安全策略限制程序行为的执行环境,它允许用户在沙箱环境中运行程序,运行所产生的变化可以随后删除。通过在沙箱环境中运行程序,可以检测程序中是否存在恶意行为,当发现程序中存在恶意行为时可以发出告警。
针对恶意软件的变形、混淆等逃避检测的手段,沙箱***使用动态虚拟执行的手段可以对其进行比较有效地检测。但是动态虚拟执行也存在着如虚拟执行速度慢的固有缺陷,其与传统的反病毒引擎相比,检测效率较低。
发明内容
有鉴于此,本发明实施例提供一种加速虚拟执行的方法、装置、电子设备及存储介质,能够提高虚拟执行的效率。
第一方面,本发明实施例提供一种加速虚拟执行的方法,包括:每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,所述第一指令序列为需要物理CPU运算的指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系;当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
结合第一方面,在第一方面的第一种实施方式中,所述方法,包括:当匹配不成功时,调用所述物理CPU执行所述第一指令序列。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述方法,还包括:
当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
结合第一方面、第一方面的第一种或第二种实施方式,在第一方面的第三种实施方式中,所述将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,包括:翻译调用API对应的函数以生成虚拟指令序列;将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
结合第一方面的第三种实施方式,在第一方面的第四种实施方式中,所述将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成,包括:每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
结合第一方面的第三种实施方式,在第一方面的第五种可能的实现方式中,所述将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成之后,还包括:清空所述缓冲区。
第二方面,本发明实施例提供一种加速虚拟执行的装置,包括:
匹配单元,用于每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,所述第一指令序列为需要物理CPU运算的指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系;
获取单元,用于当所述匹配单元匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;
执行单元,用于根据所述获取单元获取的执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
结合第二方面,在第二方面的第一种实施方式中,所述执行单元,还用于当匹配不成功时,调用所述物理CPU执行所述第一指令序列。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述装置,还包括:
录入单元,用于当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
结合第二方面、第二发明后面的第一种或第二种实施方式,在第二方面的第三种实施方式中,所述匹配单元,包括:
翻译模块,用于翻译调用API对应的函数以生成虚拟指令序列;
匹配模块,用于将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
结合第二方面的第三种实施方式,在第二方面的第四种实施方式中,所述匹配模块,具体用于:
每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;
若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
结合第二方面的第三种实施方式,在第二方面的第五种实施方式中,所述装置,还包括:
清空模块,匹配完成之后清空所述缓冲区。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的加速虚拟执行的方法。
第四方面,本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
本发明实施例提供的一种加速虚拟执行的方法、装置、电子设备及存储介质,每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。这样就可以直接跳过物理CPU的真正执行直接得到执行结果,从而节省物理CPU运行指令的时间,达到加速一些耗时的操作(如样本的延时等待操作)的目的,提高了未知样本虚拟执行的速度,一定程度上对抗了恶意样本通过耗时操作对抗虚拟机动态检测的行为,提高了动态检出效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的加速虚拟执行的方法的示意图;
图2为本发明的实施例提供的加速虚拟执行的方法中匹配过程的示意图一;
图3为本发明的实施例提供的加速虚拟执行的方法中匹配过程的示意图二;
图4为本发明又一实施例的提供的加速虚拟执行的方法的示意图;
图5为本发明的实施例提供的加速虚拟执行的装置的示意图一;
图6为本发明的实施例提供的加速虚拟执行的装置的示意图二;
图7为本发明实施例提供的加速虚拟执行的装置中匹配单元的示意图;
图8为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本实施例提供一种加速虚拟执行的方法,以解决现有技术中动态虚拟执行检测效率较低的问题。
图1为本发明的实施例提供的加速虚拟执行的方法的示意图,如图1所示,本实施例的应用于动态虚拟执行中。
动态虚拟执行指使用软件仿真器建立虚拟的硬件、操作***、应用软件环境,然后将被检测对象置于其中并将其运行起来;同时行为检测器基于同步或者异步方式,对仿真器中样本的***调用信息进行监测及数据分析,从而识别出其恶意行为。通常步骤如下:
1.运行仿真器,创建并启动虚拟环境。具体包括硬件环境(包括CPU、内存、网卡等)和软件环境(操作***和应用软件等)。将待检测样本置入上述虚拟环境并运行。
2.样本执行。此阶段,为了达成特定动作,待检测样本会向虚拟操作***请求一系列API请求,最终转化为机器指令序列发送给虚拟CPU。此阶段,内置于虚拟环境的行为检测器监控代理会对样本的动作如API请求调用进行记录。
3.仿真器管理程序完成对虚拟机指令序列(虚拟机的机器指令序列)向宿主机指令序列的翻译及执行。上述虚拟机机器指令序列将被仿真器管理程序接收,并被翻译为宿主机对应的指令序列在物理CPU上执行。
4.重复2`3过程,当样本运行完成后,行为检测器对记录的API调用序列进行分析,输出危险及可疑行为、及判定结论。
本发明实施例通过对步骤3的改进,达到加速虚拟执行的目的。在该步骤中,本发明实施例通过使用指令匹配器对仿真器管理程序接收到的二进制指令进行模式匹配。基于已有的指令知识库进行模式匹配,若命中,则直接返回结果,免于实际耗时的运算。具体的:
本发明实施例提供的加速虚拟执行的方法,包括:
步骤101、每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索。
在本实施例中,所述第一指令序列为需要物理CPU运算的指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系;所述第一指令序列中的指令与所述指令知识库中的指令类型一致,可以是虚拟指令序列也可以是物理指令序列。为了进一步提速,可以优选虚拟指令序列。所述目标指令序列为已知的恶意对抗代码对应的指令流,即恶意样本中对抗动态检测的代码对应的指令流。
步骤102、当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果。
步骤103、根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
本发明实施例提供的一种加速虚拟执行的方法,每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。这样就可以直接跳过物理CPU的真正执行直接得到执行结果,从而节省物理CPU运行指令的时间,达到加速一些耗时的操作(如样本的延时等待操作)的目的,提高了未知样本虚拟执行的速度,一定程度上对抗了恶意样本通过耗时操作对抗虚拟机动态检测的行为,提高了动态检出效率。
在一实施例中,所述将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,包括:翻译调用API对应的函数以生成虚拟指令序列;将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
在本实施例中,以第一指令序列为虚拟指令序列为例进行说明,所述将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成,其具体实现方式可以是:每调用一次API触发一次匹配,确定缓冲区中的第一指令序列是否为指令知识库中某一目标指令序列的首部部分,或者所述第一指令序列中是否包含完全包含指令知识库中的某一目标指令序列,又或者所述第一指令序列是否与指令知识库中的某一目标指令序列完全一致,当符合上述任一判断条件时,匹配成功,否则不成功。以API调用为匹配触发,颗粒度较粗,为了进一步提高精准度,其具体实现方式可以是:每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
示例性的,如图2所示,所述指令知识库中包括5条目标指令序列,分别为:
目标指令序列1:A1 A2 A3 A4 A5
目标指令序列2:A1 B2 B3 B4 B5
目标指令序列3:C1 C2 C3 A4 A5 A6
目标指令序列4:A1 A2 B3 A4 A5
目标指令序列4:C1 B2 A3 A4
匹配的过程包括:
步骤一、将虚拟指令序列的排序第一的指令A1加入缓冲区,并进行匹配,定位到目标指令序列:目标指令序列1、目标指令序列2以及目标指令序列4。指令A1为缓冲区中的第一指令序列,且指令A1属于定位的目标指令序列中的首部部分。首部部分指的是,从所述目标指令序列的第一条指令开始依序排列的与所述第一指令序列位数一致的指令内容。
步骤二、将指令A1的下一条指令A2加入缓冲区,并进行匹配,定位到目标指令序列:目标指令序列1及目标指令序列4。指令A1A2为缓冲区中的第一指令序列,且指令A1A2属于定位的目标指令序列中的首部部分。
步骤三、将指令A2的下一条指令A3加入缓冲区,并进行匹配,定位到目标指令序列:目标指令序列1。指令A1A2A3为缓冲区中的第一指令序列,且指令A1A2A3属于定位的目标指令序列中的首部部分。
步骤四、按照上述方式,依次再加入A4、A5直至所述第一指令序列与定位的目标指令序列完全一致,此时匹配完成且匹配成功。
又或者,示例性的,如图3所示,其指令知识库中的目标指令序列与上述示例一致,此处不再赘述。
匹配的过程中,步骤一到步骤三与上述示例一致,此处不再赘述。
步骤四、将指令A3的下一条指令C4加入缓冲区,并进行匹配,发现第一指令序列与定位的目标指令序列中出现不同指令,匹配完成且匹配不成功。此时,需要调用物理CPU执行所述第一指令序列。
在一实施例中,为了进一步的使得指令知识库更全面覆盖恶意对抗代码对应的指令流,所述方法还包括:
当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流时,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
图4为本发明又一实施例提供的加速虚拟执行的方法的流程图,如图4所示,本实施例的方法可以包括:
步骤401、获取预设的指令知识库。
所述指令知识库中包括多条目标指令序列以及与其执行结果的对应关系,所述目标指令序列可以是虚拟指令序列(虚拟CPU执行的指令组成的序列)也可以是物理指令序列(物理CPU执行的指令组成的序列)。本实施例中以虚拟指令序列为例进行详细说明。所述目标指令序列为在恶意代码检测和分析场景中常见的CPU指令序列(如样本在虚拟***中发出延时等待操作所对应的指令序列为无效地“NOP”操作等),所述执行结果为执行所述目标指令序列后其对寄存器的操作,所述寄存器包括栈寄存器。
步骤402、每次调用应用程序的调用接口API时,翻译调用API对应的函数以生成虚拟指令序列。
步骤403、将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。若匹配成功,执行步骤404;否则执行步骤406。
具体的,每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
步骤404、当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果。
步骤405、根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
步骤406、当匹配不成功时,调用所述物理CPU执行所述第一指令序列。
在本实施例中,所述调用所述物理CPU执行所述第一指令序列,具体包括:翻译所述第一指令序列以生成与所述第一指令序列对应的物理指令序列,将所述物理指令序列发送给所述物理CPU,以使得所述物理CPU执行所述第一指令序列对应的操作。
步骤407、当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
步骤408、清空所述缓冲区。
在本实施例中,所述缓冲区的清空发生在匹配完成之后,也可以是下一次新的匹配开始,向缓冲区写入全新的第一指令序列之前执行,此处不做细节限定,所述步骤408均发生在所述步骤405或步骤407之后。
本发明实施例提供的一种加速虚拟执行的方法,每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,当匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。这样就可以直接跳过物理CPU的真正执行直接得到执行结果,通过在对应指令被物理CPU真正执行前的跳过处理,从而节省物理CPU运行指令的时间,达到加速一些耗时的操作(如样本的延时等待操作)的目的,提高了未知样本虚拟执行的速度,一定程度上对抗了恶意样本通过耗时操作对抗虚拟机动态检测的行为,提高了动态检出效率。
图5为本发明实施例提供的一种加速虚拟执行的装置结构示意图,如图5所示,本实施例的加速虚拟执行的装置可以包括:
匹配单元51,用于每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,所述第一指令序列为需要物理CPU运算的指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系。
获取单元52,用于当所述匹配单元匹配成功时,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;
执行单元53,用于根据所述获取单元获取的执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步的,所述执行单元51还用于当匹配不成功时,调用所述物理CPU执行所述第一指令序列。
可选的,本发明实施例提供的另一种加速虚拟执行的装置,如图6所示,在图5所示的装置的基础上还包括:录入单元61,用于当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
在一实施例中,如图7所示,所述匹配单元51,包括:
翻译模块511,用于翻译调用API对应的函数以生成虚拟指令序列;
匹配模块512,用于将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
可选的,所述匹配模块512,具体用于:每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
可选的,所述如图6所示的加速虚拟执行的装置,还包括:清空模块62,用于匹配完成之后清空所述缓冲区。
本实施例的装置,可以用于执行图1-4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明实施例还提供一种电子设备,图8为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-4所示实施例的流程,如图8所示,上述电子设备可以包括:壳体81、处理器82、存储器83、电路板84和电源电路85,其中,电路板84安置在壳体81围成的空间内部,处理器82和存储器83设置在电路板84上;电源电路85,用于为上述电子设备的各个电路或器件供电;存储器83用于存储可执行程序代码;处理器82通过读取存储器83中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的加速虚拟执行的方法。
处理器82对上述步骤的具体执行过程以及处理器82通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-4所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本发明的实施例还提供一种应用程序,所述应用程序被执行以实现本发明任一实施例提供的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种加速虚拟执行的方法,其特征在于,应用于沙箱***中,包括:
每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,所述第一指令序列为需要物理CPU运算的虚拟指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系,所述目标指令序列为已知的恶意对抗代码对应的指令流;
当匹配成功时,直接跳过物理CPU执行,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;
根据所述执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器;
所述方法还包括:当匹配不成功时,调用所述物理CPU执行所述第一指令序列;
当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
2.根据权利要求1所述的方法,其特征在于,所述将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,包括:
翻译调用API对应的函数以生成虚拟指令序列;
将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
3.根据权利要求2所述的方法,其特征在于,所述将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成,包括:
每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;
若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
4.根据权利要求3所述的方法,其特征在于,所述将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成之后,还包括:
清空所述缓冲区。
5.一种加速虚拟执行的装置,其特征在于,应用于沙箱***中,包括:
匹配单元,用于每次调用应用程序的调用接口API时,将第一指令序列与指令知识库中的目标指令序列进行模式匹配搜索,所述第一指令序列为需要物理CPU运算的虚拟指令序列,所述指令知识库中保存有目标指令序列与执行结果的对应关系,所述目标指令序列为已知的恶意对抗代码对应的指令流;
获取单元,用于当所述匹配单元匹配成功时,直接跳过物理CPU执行,根据所述目标指令序列与执行结果的对应关系,获取与所述第一指令序列对应的执行结果;
执行单元,用于根据所述获取单元获取的执行结果,直接修改根据所述第一指令序列操作发生变化的寄存器;
所述执行单元,还用于当匹配不成功时,调用所述物理CPU执行所述第一指令序列;
还包括:录入单元,用于当所述第一指令序列匹配不成功且所述第一指令序列为恶意对抗代码对应的指令流,将所述第一指令序列以及与所述第一指令序列对应的执行结果的对应关系录入所述指令知识库中。
6.根据权利要求5所述的装置,其特征在于,所述匹配单元,包括:
翻译模块,用于翻译调用API对应的函数以生成虚拟指令序列;
匹配模块,用于将所述虚拟指令序列中的指令按序逐条加入缓冲区以形成第一指令序列直至匹配完成。
7.根据权利要求6所述的装置,其特征在于,所述匹配模块,具体用于:
每加入一条指令时将缓冲区中更新的第一指令序列与所述指令知识库中的目标指令序列进行匹配;
若所述第一指令序列属于定位的目标指令序列中的首部部分,则将所述虚拟指令序列中的下一条指令加入所述缓冲区,直至所述第一指令序列与定位的目标指令序列完全一致,或所述第一指令序列与定位的目标指令序列中出现不同指令。
8.根据权利要求6所述的装置,其特征在于,还包括:
清空模块,用于匹配完成之后清空所述缓冲区。
9.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行权利要求1-4任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1-4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498890.3A CN108875363B (zh) | 2017-12-29 | 2017-12-29 | 一种加速虚拟执行的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711498890.3A CN108875363B (zh) | 2017-12-29 | 2017-12-29 | 一种加速虚拟执行的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875363A CN108875363A (zh) | 2018-11-23 |
CN108875363B true CN108875363B (zh) | 2021-04-30 |
Family
ID=64325823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711498890.3A Active CN108875363B (zh) | 2017-12-29 | 2017-12-29 | 一种加速虚拟执行的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108875363B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580042B (zh) * | 2019-09-30 | 2024-02-02 | 奇安信安全技术(珠海)有限公司 | 恶意程序的对抗方法及装置、存储介质、计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184127A (zh) * | 2011-05-20 | 2011-09-14 | 北京北大众志微***科技有限责任公司 | 一种实现处理器预执行的方法及相应的装置 |
CN102339371A (zh) * | 2011-09-14 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种检测恶意程序的方法、装置及虚拟机 |
CN104516726A (zh) * | 2013-09-27 | 2015-04-15 | 联想(北京)有限公司 | 一种指令处理的方法及装置 |
CN105653954A (zh) * | 2015-12-25 | 2016-06-08 | 北京神州绿盟信息安全科技股份有限公司 | 一种检测恶意代码的方法及装置 |
-
2017
- 2017-12-29 CN CN201711498890.3A patent/CN108875363B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184127A (zh) * | 2011-05-20 | 2011-09-14 | 北京北大众志微***科技有限责任公司 | 一种实现处理器预执行的方法及相应的装置 |
CN102339371A (zh) * | 2011-09-14 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种检测恶意程序的方法、装置及虚拟机 |
CN104516726A (zh) * | 2013-09-27 | 2015-04-15 | 联想(北京)有限公司 | 一种指令处理的方法及装置 |
CN105653954A (zh) * | 2015-12-25 | 2016-06-08 | 北京神州绿盟信息安全科技股份有限公司 | 一种检测恶意代码的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108875363A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111030986B (zh) | 一种攻击组织溯源分析的方法、装置及存储介质 | |
CN108804918B (zh) | 安全性防御方法、装置、电子设备及存储介质 | |
CN111062027A (zh) | 防止bad HID设备入侵的方法、装置、电子设备及存储介质 | |
US20170150214A1 (en) | Method and apparatus for data processing | |
CN110688319B (zh) | 应用保活能力测试方法及相关装置 | |
CN114282212A (zh) | 流氓软件识别方法、装置、电子设备及存储介质 | |
CN108875363B (zh) | 一种加速虚拟执行的方法、装置、电子设备及存储介质 | |
CN108874462B (zh) | 一种浏览器行为获取方法、装置、存储介质及电子设备 | |
CN110611675A (zh) | 向量级检测规则生成方法、装置、电子设备及存储介质 | |
CN111062035A (zh) | 一种勒索软件检测方法、装置、电子设备及存储介质 | |
CN113779576A (zh) | 一种可执行文件感染病毒的识别方法、装置及电子设备 | |
CN114357454A (zh) | 二进制可执行文件依赖库分析方法、装置、电子设备及存储介质 | |
CN113987489A (zh) | 一种网络未知威胁的检测方法、装置、电子设备及存储介质 | |
CN114692150A (zh) | 一种基于沙箱环境的恶意代码分析方法、装置及相关设备 | |
CN116775202A (zh) | 模糊测试方法、装置、介质、电子设备及计算机程序产品 | |
CN108875371B (zh) | 一种沙箱分析方法、装置、电子设备及存储介质 | |
CN111695116A (zh) | 基于Linux***内核层Rootkit的取证方法与装置 | |
CN112395594A (zh) | 指令执行序列的处理方法、装置及设备 | |
WO2017028729A1 (zh) | 确定应用程序是否为正版应用程序的方法、装置及电子设备 | |
CN114168953A (zh) | 一种恶意代码检测方法、装置、电子设备及存储介质 | |
CN111797393B (zh) | 基于gpu恶意挖矿行为的检测方法与装置 | |
CN112214765A (zh) | 一种病毒查杀方法、装置、电子设备及存储介质 | |
CN110866250A (zh) | 一种病毒防御方法、装置及电子设备 | |
CN115378628A (zh) | 基于沙箱的恶意样本检测方法、***、主机、电子设备及存储介质 | |
CN114036518A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |