CN112965789B - 一种虚拟机内存空间处理方法、装置、设备和介质 - Google Patents

一种虚拟机内存空间处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN112965789B
CN112965789B CN202110319401.3A CN202110319401A CN112965789B CN 112965789 B CN112965789 B CN 112965789B CN 202110319401 A CN202110319401 A CN 202110319401A CN 112965789 B CN112965789 B CN 112965789B
Authority
CN
China
Prior art keywords
memory space
physical memory
virtual machine
operating system
program
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
Application number
CN202110319401.3A
Other languages
English (en)
Other versions
CN112965789A (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.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group 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 Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN202110319401.3A priority Critical patent/CN112965789B/zh
Publication of CN112965789A publication Critical patent/CN112965789A/zh
Application granted granted Critical
Publication of CN112965789B publication Critical patent/CN112965789B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种虚拟机内存空间处理方法、装置、设备和介质,由于该方法中为了使恶意软件获取的客户物理内存空间的大小大于预设大小,总共为虚拟机分配了包括预设大小的第二客户物理内存空间和第一客户物理内存空间的客户物理内存空间,从而保证了分配的客户物理内存空间的大小大于预设大小;为了提高虚拟机的并发数量,生成只包含第一客户物理内存空间数据的快照文件,从而在接收到沙箱检测时,根据快照文件,只将第一客户物理内存空间的非全零数据加载到主机物理内存空间,从而保证了单个虚拟机占用的主机物理内存的大小小于客户物理内存的大小,从而提高了虚拟机的并发数量,减少了CPU资源的浪费。

Description

一种虚拟机内存空间处理方法、装置、设备和介质
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种虚拟机内存空间处理方法、装置、设备和介质。
背景技术
近年来,各类恶意软件层出不穷,为了检测恶意软件,现有技术采用沙箱检测技术,通过在虚拟机中运行软件并观察软件行为来判断程序是否为恶意软件。而恶意软件为了逃避检测,通常会采用识别自身是否运行在虚拟机中的方法,由于现有的真实运行机器的物理内存大于预设大小,例如预设大小为4GB,因此恶意软件为了识别自身是否在虚拟机中,获取自身所在客户系统的客户(guest)物理内存大小,如果客户物理内存小于预设大小,则恶意软件确定自身是在虚拟机中运行。
若为虚拟机分配大于预设大小的客户物理内存时,则会出现以下问题,即虚拟机客户系统可能会将客户物理内存的全部非全零数据加载到主机(host)物理内存,对于64位的Windows而言,一个虚拟机至少得分配4GB的主机物理内存,对于一个包括双至强(Xeon)20核中央处理器(Central Processing Unit,CPU)的真实运行机器,128GB的主机物理内存最多能并发32个虚拟机,再去掉其他用途的内存,并发数量可能不到20个,但20个并发数量的虚拟机无法占满全部的CPU资源,会导致CPU资源的浪费,因此需要增加虚拟机的并发数量,增大占用的CPU资源,减少CPU资源的浪费。现有技术中采用多个虚拟机之间内存共享的方式来降低虚拟机主机物理内存的占用,但单个虚拟机占用的主机物理内存并没有减少。
而为了欺骗恶意软件获取的客户物理内存大小,使恶意软件获取的客户物理内存大于预设大小,现有技术中采用的是挂钩应用编程接口函数(Application ProgrammingInterface hook,API hook)的方法来欺骗恶意软件获取物理内存的大小,即在某个API函数被调用时拦截,从而能够获得这个API函数调用的参数,并修改这个API函数的返回信息,甚至可以直接替代这个API函数的处理,拦截函数来实现API函数的逻辑。但是恶意软件获取物理内存大小的途径有很多种,很难做到全方位的防护。因此如何在恶意软件获取的客户物理内存大于预设大小的基础上,提高虚拟机的并发数量、减少CPU资源的浪费就成为亟待解决的技术问题。
发明内容
本发明提供了一种虚拟机内存处理方法、装置、设备和介质,用以解决如何在恶意软件获取的客户物理内存大于预设大小的基础上,提高虚拟机的并发数量、减少CPU资源的浪费的问题。
本发明提供了一种虚拟机内存处理方法,所述方法包括:
为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
生成包含所述第一客户物理内存空间数据的快照文件;
若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
进一步地,所述生成包含所述第一客户物理内存空间数据的快照文件包括:
对所述第二客户物理内存空间进行数据清零处理;
针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;
若否,则将该物理页的数据保存在快照文件中。
进一步地,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;
修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;
触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
进一步地,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;
根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
进一步地,所述为所述程序分配预设大小的内存空间作为所述第二客户物理内存空间包括:
确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;
若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
相应地,本发明提供了一种虚拟机内存处理装置,所述装置包括:
分配模块,用于为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
处理模块,用于生成包含所述第一客户物理内存空间数据的快照文件;若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
进一步地,所述处理模块,具体用于对所述第二客户物理内存空间进行数据清零处理;针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;若否,则将该物理页的数据保存在快照文件中。
进一步地,所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
进一步地,所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
进一步地,所述分配模块,具体用于确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
相应地,本发明提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行存储器中存储的计算机程序时实现上述虚拟机内存处理方法中任一所述方法的步骤。
相应地,本发明提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述虚拟机内存处理方法中任一所述方法的步骤。
本发明提供了一种虚拟机内存处理方法、装置、设备和介质,由于该方法中为了使恶意软件获取的客户物理内存空间的大小大于预设大小,总共为虚拟机分配了包括预设大小的第二客户物理内存空间和第一客户物理内存的客户物理内存,从而保证了分配的客户物理内存空间的大小大于预设大小,使得恶意软件获得的客户物理内存的大小也大小预设大小;同时为了提高虚拟机的并发数量,该方法中生成只包含第一客户物理内存空间数据的快照文件,从而在接收到沙箱检测时,根据快照文件,只将第一客户物理内存空间的非全零数据加载到主机物理内存空间,而不必将所有的客户物理内存空间的非全零数据加载到主机物理内存空间,从而保证了单个虚拟机占用的主机物理内存的大小小于客户物理内存的大小,从而提高了虚拟机的并发数量,减少了CPU资源的浪费。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟机内存空间处理方法的过程示意图;
图2为本发明实施例提供的一种虚拟机内存空间处理装置的结构示意图;
图3为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了在恶意软件获取的客户物理内存大于预设大小的基础上,提高虚拟机的并发数量、减少CPU资源的浪费,本发明实施例提供了一种虚拟机内存空间处理方法、装置、设备和介质。
实施例1:
图1为本发明实施例提供的一种虚拟机内存空间处理方法的过程示意图,该过程包括以下步骤:
S101:为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间。
本发明实施例提供的虚拟机内存空间处理方法应用于电子设备,其中该电子设备可以是手机、平板电脑、PC等智能终端设备、也可以是服务器,该服务器可以是本地服务器,也可以是云端服务器。
为了使恶意软件获取的客户物理内存大于预设大小,在本发明实施例中,该电子设备为虚拟机分配客户物理内存空间。其中该客户物理内存空间是指虚拟机客户系统所占用的内存空间,即虚拟机内部安装运行的系统所占用的内存空间。
为虚拟机分配客户物理内存空间,该客户物理内存空间包括第一客户物理内存空间以及预设大小的第二客户物理内存空间,其中该客户物理内存空间是预先为虚拟机分配的内存空间,该第一客户物理内存空间的大小是虚拟机的系统本身所需要的内存空间大小,为了避免被客户物理内存空间被进程占用,导致所有的客户物理内存空间的非全零数据加载到主机物理内存空间,减少了虚拟机的并发数量,在预先分配的客户物理内存空间中还包括有该预设大小的第二客户物理内存空间。
S102:生成包含所述第一客户物理内存空间数据的快照文件。
为了使虚拟机可以尽快恢复到准备沙箱检测时的状态,并提高虚拟机的并发数量,因此可以在虚拟机启动运行一段时间并准备进行沙箱检测前,生成包括第一客户物理内存空间数据的快照文件。
其中,快照是数据存储的某一时刻的状态记录,根据生成的快照文件,可以使虚拟机迅速恢复到准备沙箱检测前的状态。
S103:若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
若接收到沙箱检测请求时,为了使虚拟机准备进行沙箱检测,根据沙箱检测前预先生成的快照文件,加载快照文件即可恢复到虚拟机准备沙箱检测前的状态;由于快照文件中只包括第一客户物理内存空间的数据,因此只需要将第一客户物理内存空间的非全零数据加载到主机物理内存空间,其中,主机物理内存空间是指虚拟机自身占据真实运行机器的物理内存空间。
由于本发明实施例中为了使恶意软件获取的客户物理内存空间的大小大于预设大小,总共为虚拟机分配了包括预设大小的第二客户物理内存空间和第一客户物理内存空间的客户物理内存空间,从而保证了分配的客户物理内存空间的大小大于预设大小,使得恶意软件获得的客户物理内存的大小也大小预设大小;同时为了提高虚拟机的并发数量,该方法中生成只包含第一客户物理内存空间数据的快照文件,从而在接收到沙箱检测时,根据快照文件,只将第一客户物理内存空间的非全零数据加载到主机物理内存空间,而不必将所有的客户物理内存空间的非全零数据加载到主机物理内存空间,从而保证了单个虚拟机占用的主机物理内存的大小小于客户物理内存的大小,从而提高了虚拟机的并发数量,减少了CPU资源的浪费。
实施例2:
为了生成包括第一客户物理内存空间数据的快照文件,在上述实施例的基础上,在本发明实施例中,所述生成包含所述第一客户物理内存空间数据的快照文件包括:
对所述第二客户物理内存空间进行数据清零处理;
针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;
若否,则将该物理页的数据保存在快照文件中。
在本发明实施例中,由于在生成快照文件时,相当于在同一时刻采集虚拟机的所有数据,因此为了生成不包含第二客户物理内存空间数据、只包含第一客户物理内存空间数据,为虚拟机分配预设大小的第二客户物理内存空间后,还可以对第二客户物理内存空间进行数据清零处理。
具体的,对客户物理内存空间进行数据清零属于现有技术,本发明实施例对此不做赘述。
为了生成快照文件,在本发明实施例中,针对第一客户物理内存空间和第二客户物理内存空间的每个物理页,还要判断该物理页中的数据是否要保存在快照文件。
具体的,判断该物理页的数据是否为全零数据,若该物理页中的数据为全零数据,则说明该物理页的数据没有任何作用,则不必将该物理页中的数据保存在快照文件中,若该物理页中的数据不是全零数据,则将该物理页中的数据保存在快照文件中。
在本发明实施例中,由于对第二客户物理内存空间进行数据清零处理,因此第二客户物理内存空间中每个物理页的数据均为全零数据,而第一客户物理内存空间中存在数据均为全零数据的物理页、也存在数据不是全零数据的物理页,本发明实施例不必将第二客户物理内存空间的数据保存在快照文件中,相比于现有技术中的第二客户物理内存空间不清零,将第二客户物理内存空间和第一客户物理内存的数据均保存在快照文件,第二客户物理内存空间和第一客户物理内存的非全零数据加载到主机物理内存的方案,由于快照文件的大小较小,因此还提高了快照文件的加载效率。
实施例3:
为了实现为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间,在上述各实施例的基础上,在本发明实施例中,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;
修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;
触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
在本发明实施例中,由于虚拟机的操作系统启动时均会为虚拟机的操作系统分配客户物理内存空间,因此为了为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间,电子设备预先设置有物理内存空间分配函数的入口断点和出口断点。其中,该入口断点和出口断点均是gdb断点。
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的物理内存空间分配函数的入口断点和出口断点,启动虚拟机的操作系统后,在首次执行物理内存空间分配函数前,会触发物理内存空间分配函数的入口断点。
在入口断点触发后,为了向虚拟机分配预设大小的第二客户物理内存空间,首先修改物理内存空间分配函数的内存空间大小为预设大小,并开始执行修改后的物理内存空间分配函数,向虚拟机的操作系统分配预设大小的第二客户物理内存空间,分配结束后会触发物理内存空间分配函数的出口断点。
为了向虚拟机分配原本的第一客户物理内存空间,触发物理内存空间分配函数的出口断点后,还清除入口断点和出口断点,并开始重新进行原本的物理内存空间分配,即重新执行预先保存的修改前的内存空间分配函数,为虚拟机的操作系统分配第一客户物理内存空间,其中第一客户物理内存空间即为原本应分配的客户物理内存空间。
实施例4:
为了实现为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间,在上述各实施例的基础上,在本发明实施例中,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;
根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
在本发明实施例中,预先保存有操作系统,为了向操作系统分配客户物理内存空间,还保存有操作系统对于的物理内存空间分配函数,其中该物理内存空间分配函数可分配的客户物理内存空间的大小是函数参数预先设置好的。
启动操作系统后,开始执行物理内存空间分配函数,为虚拟机的操作系统分配第一客户物理内存空间,其中执行物理内存空间分配函数为操作系统分配物理内存空间的方法属于现有技术,本发明实施例在此不做赘述。
为了向虚拟机分配预设大小的第二客户物理内存空间,还预先保存有程序,其中该程序为驱动程序或用户态程序,启动该程序并在该程序运行时,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间。
在本发明实施例中,所述为所述程序分配预设大小的内存空间作为所述第二客户物理内存空间包括:
确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;
若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
由于向虚拟机分配第二客户物理内存空间时,虚拟机可能已运行一段时间,虚拟机中的内存空间成为不连续的内存空间,因此为了使为虚拟机分配的第二客户物理内存空间尽量连续,首先确定虚拟机内存空间中的连续内存空间。
由于连续内存空间中可能存在大小大于预设大小的连续内存空间,也可能连续内存空间的大小均小于预设大小。因此在连续内存空间的大小达到预设大小时,为虚拟机分配预设大小的第一目标连续内存空间,并将该第一目标连续内存空间作为第二客户物理内存空间。
在连续内存空间中可能不存在大小大于预设大小的连续内存空间时,为了使第二客户物理内存空间的大小尽量连续,采用折半分配方法进行多次分配。
例如,第二客户物理内存空间为1GB时,若不存在1GB连续内存空间时,则搜索512M的连续内存空间,若存在不少于2个的512M的连续内存空间,则分配任意2个512M的连续内存空间作为第二客户物理内存空间,若不存在512M的连续内存空间时,则搜索256M的连续内存空间,若存在不少于4个的256M的连续内存空间,则将任意4个256M的连续内存空间作为第二客户物理内存空间,若不存在256M的连续内存空间,则搜索128M的连续内存空间,若存在不少于8个连续内存空间,则将任意8个128M的连续内存空间作为第二客户物理内存空间,即通过折半的方法进行多次分配,直到连续内存空间的大小达到预设大小。
实施例5:
在上述各实施例的基础上,图2为本发明实施例提供的一种虚拟机内存空间处理装置的结构示意图,所述装置包括:
分配模块201,用于为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
处理模块202,用于生成包含所述第一客户物理内存空间数据的快照文件;若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
进一步地,所述处理模块,具体用于对所述第二客户物理内存空间进行数据清零处理;针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;若否,则将该物理页的数据保存在快照文件中。
进一步地,所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
进一步地,所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
进一步地,所述分配模块,具体用于确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
实施例6:
图3为本发明实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本发明实施例中还提供了一种电子设备,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信;
所述存储器303中存储有计算机程序,当所述程序被所述处理器301执行时,使得所述处理器301执行如下步骤:
为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
生成包含所述第一客户物理内存空间数据的快照文件;
若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
进一步地,所述处理器301具体用于所述生成包含所述第一客户物理内存空间数据的快照文件包括:
对所述第二客户物理内存空间进行数据清零处理;
针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;
若否,则将该物理页的数据保存在快照文件中。
进一步地,所述处理器301具体用于所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;
修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;
触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
进一步地,所述处理器301具体用于所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;
根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
进一步地,所述处理器301具体用于所述为所述程序分配预设大小的内存空间作为所述第二客户物理内存空间包括:
确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;
若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口302用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
实施例7:
在上述各实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行如下步骤:
为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
生成包含所述第一客户物理内存空间数据的快照文件;
若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间。
进一步地,所述生成包含所述第一客户物理内存空间数据的快照文件包括:
对所述第二客户物理内存空间进行数据清零处理;
针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;
若否,则将该物理页的数据保存在快照文件中。
进一步地,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;
修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;
触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
进一步地,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;
根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
进一步地,所述为所述程序分配预设大小的内存空间作为所述第二客户物理内存空间包括:
确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;
若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种虚拟机内存空间处理方法,其特征在于,所述方法包括:
为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
生成包含所述第一客户物理内存空间数据的快照文件;
若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间;
其中,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;
根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
2.根据权利要求1所述的方法,其特征在于,所述生成包含所述第一客户物理内存空间数据的快照文件包括:
对所述第二客户物理内存空间进行数据清零处理;
针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;
若否,则将该物理页的数据保存在快照文件中。
3.根据权利要求1所述的方法,其特征在于,所述为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间的过程包括:
根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;
修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;
触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
4.根据权利要求1所述的方法,其特征在于,所述为所述程序分配预设大小的内存空间作为所述第二客户物理内存空间包括:
确定连续内存空间,若所述连续内存空间的大小达到所述预设大小,则为所述程序分配预设大小的连续内存空间作为所述第二客户物理内存空间;
若所述连续内存空间的大小未达到所述预设大小,则采用折半分配方法进行多次分配,直到连续内存空间的大小达到所述预设大小。
5.一种虚拟机内存空间处理装置,其特征在于,所述装置包括:
分配模块,用于为虚拟机分配第一客户物理内存空间及预设大小的第二客户物理内存空间;
处理模块,用于生成包含所述第一客户物理内存空间数据的快照文件;若接收到沙箱检测请求,根据所述快照文件,将所述第一客户物理内存空间的非全零数据加载到主机物理内存空间;
所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数,启动所述操作系统后,执行所述物理内存空间分配函数为虚拟机的所述操作系统分配第一客户物理内存空间;根据预先保存的程序,启动所述程序,为虚拟机的所述程序分配预设大小的内存空间作为所述第二客户物理内存空间,其中所述程序为驱动程序或用户态程序。
6.根据权利要求5所述的装置,其特征在于,所述处理模块,具体用于对所述第二客户物理内存空间进行数据清零处理;针对所述第一客户物理内存空间和所述第二客户物理内存空间的每个物理页,判断该物理页的数据是否为全零数据;若否,则将该物理页的数据保存在快照文件中。
7.根据权利要求5所述的装置,其特征在于,所述分配模块,具体用于根据预先保存的操作系统、所述操作系统对应的物理内存空间分配函数、以及预先设置的所述物理内存空间分配函数的入口断点和出口断点,启动所述操作系统并触发所述入口断点;修改所述物理内存空间分配函数的内存空间大小为预设大小,执行修改后的所述内存空间分配函数,为虚拟机的所述操作系统分配预设大小的第二客户物理内存空间;触发所述出口断点,清除所述入口断点和所述出口断点,重新执行预先保存的修改前的所述内存空间分配函数,为虚拟机的所述操作系统分配第一客户物理内存空间。
8.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于执行所述存储器中存储的计算机程序实现如权利要求1-4中任一所述虚拟机内存空间处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述虚拟机内存空间处理方法的步骤。
CN202110319401.3A 2021-03-25 2021-03-25 一种虚拟机内存空间处理方法、装置、设备和介质 Active CN112965789B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110319401.3A CN112965789B (zh) 2021-03-25 2021-03-25 一种虚拟机内存空间处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110319401.3A CN112965789B (zh) 2021-03-25 2021-03-25 一种虚拟机内存空间处理方法、装置、设备和介质

Publications (2)

Publication Number Publication Date
CN112965789A CN112965789A (zh) 2021-06-15
CN112965789B true CN112965789B (zh) 2024-05-03

Family

ID=76278483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110319401.3A Active CN112965789B (zh) 2021-03-25 2021-03-25 一种虚拟机内存空间处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN112965789B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779074A (zh) * 2012-06-18 2012-11-14 中国人民解放军国防科学技术大学 基于内存空洞机制的虚拟机内存资源分配方法
US8364639B1 (en) * 2007-10-11 2013-01-29 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
CN103858113A (zh) * 2011-10-13 2014-06-11 国际商业机器公司 保护虚拟客户的内存
CN107273747A (zh) * 2017-05-22 2017-10-20 中国人民公安大学 勒索软件检测的方法
CN108319850A (zh) * 2017-01-16 2018-07-24 华为技术有限公司 沙箱检测的方法、沙箱系统和沙箱设备
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN109189546A (zh) * 2018-07-11 2019-01-11 新华三云计算技术有限公司 一种虚拟机在线快照的制作方法及装置
CN110704840A (zh) * 2019-09-10 2020-01-17 中国人民公安大学 一种基于卷积神经网络cnn的恶意软件检测方法
CN110968361A (zh) * 2019-11-04 2020-04-07 上海交通大学 隔离沙箱加载方法
US10628586B1 (en) * 2017-11-30 2020-04-21 Palo Alto Networks, Inc. Detecting malware via scanning for dynamically generated function pointers in memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135260B2 (en) * 2007-10-11 2015-09-15 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
US9721089B2 (en) * 2011-05-06 2017-08-01 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for efficient computer forensic analysis and data access control
US20140053272A1 (en) * 2012-08-20 2014-02-20 Sandor Lukacs Multilevel Introspection of Nested Virtual Machines
US20160299712A1 (en) * 2015-04-07 2016-10-13 Microsoft Technology Licensing, Llc Virtual Machines Backed by Host Virtual Memory

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364639B1 (en) * 2007-10-11 2013-01-29 Parallels IP Holdings GmbH Method and system for creation, analysis and navigation of virtual snapshots
CN103858113A (zh) * 2011-10-13 2014-06-11 国际商业机器公司 保护虚拟客户的内存
CN102779074A (zh) * 2012-06-18 2012-11-14 中国人民解放军国防科学技术大学 基于内存空洞机制的虚拟机内存资源分配方法
CN108319850A (zh) * 2017-01-16 2018-07-24 华为技术有限公司 沙箱检测的方法、沙箱系统和沙箱设备
CN107273747A (zh) * 2017-05-22 2017-10-20 中国人民公安大学 勒索软件检测的方法
US10628586B1 (en) * 2017-11-30 2020-04-21 Palo Alto Networks, Inc. Detecting malware via scanning for dynamically generated function pointers in memory
CN109189546A (zh) * 2018-07-11 2019-01-11 新华三云计算技术有限公司 一种虚拟机在线快照的制作方法及装置
CN109033839A (zh) * 2018-08-10 2018-12-18 天津理工大学 一种基于动态多特征的恶意软件检测方法
CN110704840A (zh) * 2019-09-10 2020-01-17 中国人民公安大学 一种基于卷积神经网络cnn的恶意软件检测方法
CN110968361A (zh) * 2019-11-04 2020-04-07 上海交通大学 隔离沙箱加载方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
On the Design of Virtual Machine Sandboxes for Distributed Computing in Wide-area Overlays of Virtual Workstations;David Isaac Wolinsky等;《Second International Workshop on Virtualization Technology in Distributed Computing》;第1-8页 *
基于搜索引擎的恶意对象发掘系统的设计与开发;《中国优秀硕士学位论文全文数据库信息科技辑》(第4期);第I138-158页 *

Also Published As

Publication number Publication date
CN112965789A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
EP2842041B1 (en) Data processing system and method for operating a data processing system
WO2016164155A1 (en) Coalition based memory management
CN109669877B (zh) 内存管理方法、装置、终端及存储介质
KR102254159B1 (ko) 운영체제 커널 메모리의 실시간 오류 검출 방법
CN111090521A (zh) 内存分配方法、装置、存储介质及电子设备
CN104461735A (zh) 一种虚拟化场景下分配cpu资源的方法和装置
CN113127314A (zh) 一种检测程序性能瓶颈的方法、装置及计算机设备
CN108459906B (zh) 一种vcpu线程的调度方法及装置
CN113741991B (zh) 提升ssd服务质量方法、装置、计算机设备和存储介质
CN112965789B (zh) 一种虚拟机内存空间处理方法、装置、设备和介质
CN111625358B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN105138388A (zh) 虚拟机监控方法及装置
CN107818034B (zh) 监测计算机设备中的进程的运行空间的方法以及装置
CN107168800A (zh) 一种内存分配方法及装置
CN115373964B (zh) 内存越界检测方法、装置、设备及介质
CN115905040B (zh) 计数器的处理方法、图形处理器、设备及存储介质
CN114253825A (zh) 内存泄漏检测方法、装置、计算机设备和存储介质
CN109446755B (zh) 内核钩子函数保护方法、装置、设备以及存储介质
CN112988355B (zh) 程序任务的调度方法、装置、终端设备及可读存储介质
CN114153759A (zh) 一种内存取证方法、装置及电子设备
CN111190658B (zh) 一种基于片内执行且在不具有MMU的SoC片上支持应用程序动态加载的系统
CN115454696A (zh) 一种内存泄漏检测的方法、装置及电子设备
US20080072009A1 (en) Apparatus and method for handling interrupt disabled section and page pinning apparatus and method
CN114356366B (zh) 一种虚拟机的沙箱引擎更新方法、装置、设备和介质
CN113220495A (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