CN101965553A - 虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法 - Google Patents
虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法 Download PDFInfo
- Publication number
- CN101965553A CN101965553A CN2008801259694A CN200880125969A CN101965553A CN 101965553 A CN101965553 A CN 101965553A CN 2008801259694 A CN2008801259694 A CN 2008801259694A CN 200880125969 A CN200880125969 A CN 200880125969A CN 101965553 A CN101965553 A CN 101965553A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual applications
- applications
- module
- application 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种虚拟应用程序系统、存储设备、虚拟应用程序的执行方法及虚拟环境的保护方法。所述虚拟应用程序系统包括:运行控制模块,所述运行控制模块用于运行虚拟应用程序;以及虚拟环境保护模块,所述虚拟环境保护模块由所述运行控制模块加载,并且所述虚拟环境保护模块被设置为阻止未经许可的应用程序访问所述虚拟应用程序所访问的虚拟环境。因此,可以使所述虚拟环境避免被主机应用程序等访问,并且可以保证采用虚拟应用程序的任务的独立性和安全性。
Description
技术领域
本发明涉及一种虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法,更具体地,涉及一种虚拟应用程序系统及其相关技术,该技术能够保护用于运行虚拟应用程序的环境,并且保证使用虚拟应用程序的任务的独立性和安全性。
背景技术
近来,随着计算机任务环境通过数字技术的发展和超高速互联网服务的普及得到改善,由人工执行的多种任务被计算机任务替代。例如,从商业的角度来看,用户可以使用Word或Worksheet等工具将目标文件编辑为各种格式,从而能够提高速度和商业效率。
通常,为了执行所需的计算机任务,用户可以在主机中安装应用程序,执行该应用程序,然后使用该相应的应用程序所提供的各种功能来写入数字信息。这里,应用程序使用包括在主机中的主机资源。例如,应用程序可以访问主机的文件系统和注册表,从而执行数据的读取和写入任务。
然而,上述传统的情形的问题在于,它不支持任务的移动。例如,在用户使用主机中特定的应用程序执行任务,然后中止任务,随后想要使用另一主机中的任务数据继续执行该任务时,必须在相应的主机中安装可以支持该任务的应用程序。如果不安装可以支持该任务的应用程序,则用户必须获得安装CD或文件并且安装相应的应用程序。
因此,近来研究各种技术以解决该问题。代表性的研究之一是虚拟应用程序创建技术。虚拟应用程序创建技术是指一种通过虚拟化和封装应用程序来创建统一的可移植的程序的技术。就是说,使应用程序可移植。市场上可获得的虚拟应用程序创建工具包括Thinstall、Autolt Macro Script、Auto Batch File等。
然而,上述传统技术的问题在于,由于在创建虚拟应用程序时,传统技术通过采用Freescan和Postscan的图像比较算法来执行封装,因此传统技术在封装时准确性低且出错率高。就是说,上述传统技术不能创建包含用户所需的应用程序的完整的软件,而仅创建它的相关对象。此外,为了创建虚拟应用程序必须执行过多的步骤,并且这些步骤的过程也是复杂的。
另外,传统技术的缺点在于,当使用虚拟应用程序执行任务时,它们易受安全威胁攻击,而且,其问题在于,在执行任务之后,该任务的痕迹留在主机中。例如,通常,其它应用程序可以容易地访问虚拟应用程序所使用的主机资源(例如,文件系统或注册表),并且,即使在任务完成后,该任务的痕迹也会留在所述文件系统、注册表等中。
如上所述,传统技术的问题在于,它们不能充分满足虚拟应用程序的独立性和安全性的需要。因此,急需能够解决所述问题的虚拟化和虚拟应用程序的相关技术。
发明内容
技术问题
因此,本发明是考虑到上述问题而提出的,并且本发明的一个目的是提供一种虚拟应用程序系统,其能够通过阻止未经许可的应用程序(例如,主机应用程序)访问运行虚拟应用程序的虚拟环境来保证安全性。
本发明的另一目的是提供一种虚拟应用程序系统,其能够在与主机环境隔离的虚拟环境中安装和运行虚拟应用程序。
本发明的又一目的是提供一种便携式存储设备,其能够运行虚拟应用程序,在所述便携式存储设备中,当虚拟应用程序与主机一起工作时可以保证独立性和安全性。
本发明的再一目的是提供一种虚拟应用程序的运行方法,其能够在独立和安全的环境中运行虚拟应用程序。
本发明的又再一目的是提供一种虚拟环境保护方法,其能够保护用于运行虚拟应用程序的虚拟环境不受外界影响。
技术方案
为了达到上述目的,根据本发明的一个方面,提供一种虚拟应用程序系统。所述虚拟应用程序系统包括:运行控制模块,所述运行控制模块用于运行虚拟应用程序;以及虚拟环境保护模块,所述虚拟环境保护模块由运行控制模块加载,并且所述虚拟环境保护模块被设置用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟环境。
虚拟环境保护模块可将被许可访问虚拟环境的应用程序的独特ID信息存储在表格中,并且,如果特定的应用程序试图访问虚拟环境,则虚拟环境保护模块判断所述特定应用程序的独特ID信息是否存在于所述表格中。
这里,独特ID信息可包括由相应的应用程序创建的进程ID和消息摘要中的至少一个。如果独特ID信息是进程ID,则虚拟环境保护模块可将被许可访问虚拟环境的应用程序所产生的进程的进程ID存储在进程ID表格中。如果特定的应用程序产生的进程试图访问虚拟环境,则虚拟环境保护模块可以判断所产生的进程的进程ID是否存在于进程ID表格中。
如果特定应用程序的独特ID信息存在于表格中,则虚拟环境保护模块会允许所述特定应用程序访问虚拟环境。如果特定应用程序的独特ID信息不在表格中,则虚拟环境保护模块不允许所述特定应用程序访问虚拟环境。此外,虚拟环境保护模块可以从运行控制模块和虚拟应用程序中的至少一个接收被许可访问虚拟环境的应用程序的独特ID信息。
被许可访问虚拟环境的应用程序可包括所述虚拟应用程序和所述运行控制模块中的至少一个。
虚拟环境保护模块可包括:虚拟文件系统保护模块,所述虚拟文件系统保护模块用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟文件系统;以及虚拟注册表保护模块,所述虚拟注册表保护模块用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟注册表。
同时,虚拟应用程序系统可进一步包括虚拟应用程序内存保护模块,所述虚拟应用程序内存保护模块用来阻止未经许可的应用程序访问虚拟应用程序所使用的内存区域。虚拟环境保护模块和虚拟应用程序内存保护模块可都被设置为在内核模式下操作的驱动程序的形式。
虚拟应用程序内存保护模块可以将被许可访问虚拟应用程序所使用的内存区域的应用程序的独特ID信息存储在表格中。如果特定的应用程序试图访问所述内存区域,则虚拟应用程序内存保护模块可以判断所述特定的应用程序的独特ID信息是否存在于表格中。此外,虚拟应用程序内存保护模块可以阻止应用程序访问物理内存。
虚拟应用程序系统可进一步包括:虚拟化模块,所述虚拟化模块对操作系统的应用程序接口(API)进行处理,从而使得API符合虚拟环境;以及虚拟应用程序安装模块,所述虚拟应用程序安装模块利用虚拟化模块将虚拟环境设置在指定的安装位置并且将虚拟应用程序安装在所述虚拟环境中。
虚拟化模块可以包括:文件系统虚拟化模块,当虚拟应用程序调用到文件系统的访问API时,所述文件系统虚拟化模块将到文件系统的访问路径转换为到虚拟文件系统的访问路径;以及注册表虚拟化模块,当虚拟应用程序调用到注册表的访问API时,所述注册表虚拟化模块将到注册表的访问路径转换为到虚拟注册表的访问路径。
虚拟应用程序安装模块可将虚拟化模块加入安装虚拟应用程序的安装进程中,并且,运行控制模块可将虚拟化模块加入虚拟应用程序的运行进程中。
为了达到上述目的,根据本发明的另一方面,提供一种虚拟应用程序系统。虚拟应用程序系统包括:虚拟化模块,当进程调用到主机环境的访问API时,所述虚拟化模块能够将到主机环境的访问路径转换为到虚拟环境的访问路径;虚拟应用程序安装模块,所述虚拟应用程序安装模块将虚拟环境设置在指定的位置中并且利用虚拟化模块将虚拟应用程序安装在虚拟环境中;以及运行控制模块,所述运行控制模块利用虚拟化模块在与主机环境相独立和隔离的虚拟环境中运行虚拟应用程序。
虚拟应用程序安装模块可以从用户处接收待虚拟化的应用程序的安装文件的安装位置和位置信息,并且虚拟应用程序安装模块通过将虚拟化模块加入待虚拟化的应用程序的安装进程而将虚拟应用程序安装在安装位置。此外,运行控制模块可以将虚拟化模块加入虚拟应用程序的运行进程中。
虚拟应用程序系统可进一步包括虚拟环境保护模块,所述虚拟环境保护模块用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟环境。
虚拟环境可以包括虚拟文件系统和虚拟注册表。虚拟环境保护模块可以包括:虚拟文件系统保护模块,所述虚拟文件系统保护模块用于阻止未经许可的应用程序访问虚拟文件系统;以及虚拟注册表保护模块,所述虚拟注册表保护模块用于阻止未经许可的应用程序访问虚拟注册表。
为了达到上述目的,根据本发明的又一方面,提供一种存储设备。与主机系统一起操作的便携式存储设备包括:虚拟环境,所述虚拟环境与主机系统的主机环境隔离;虚拟应用程序,所述虚拟应用程序访问虚拟环境;以及虚拟应用程序系统,所述虚拟应用程序系统在虚拟环境中运行虚拟应用程序并且阻止未经许可的应用程序访问虚拟环境。
同时,为了达到上述目的,根据本发明的再一方面,提供一种虚拟应用程序的运行方法。所述方法包括以下步骤:加载用于保护虚拟环境的保护模块;将可以访问虚拟环境的虚拟应用程序的独特ID信息传输到保护模块;以及运行虚拟应用程序。
保护模块可包括下述者中的至少一个:虚拟文件系统保护模块,所述虚拟文件系统保护模块用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟文件系统;虚拟注册表保护模块,所述虚拟注册表保护模块用来阻止未经许可的应用程序访问虚拟应用程序所访问的虚拟注册表;以及虚拟应用程序内存保护模块,所述虚拟应用程序内存保护模块用来阻止未经许可的应用程序访问虚拟应用程序所使用的内存区域或者阻止应用程序访问物理内存。
同时,为了达到上述目的,根据本发明的又再一方面,提供一种虚拟环境的保护方法。所述方法包括下述步骤:以表格的形式存储可以访问虚拟环境的虚拟应用程序的独特ID信息;如果应用程序试图访问该虚拟环境,则判断应用程序的独特ID信息是否在表格中;以及如果判断的结果是应用程序的独特ID信息被确定为不在表格中,则阻止应用程序访问虚拟环境;如果判断结果是应用程序的独特ID信息被确定为在表格中,则允许应用程序访问虚拟环境。独特ID信息可包括相应的应用程序所创建的进程ID和消息摘要中的至少一个。
有益效果
如上所述,根据本发明,可以在与主机环境隔离的虚拟环境中安装和运行虚拟应用程序,并且可以保护在其中运行有虚拟应用程序的虚拟环境防止未经许可的访问。因此,当执行需要高独立性和安全性的数字任务时,可以简单地利用虚拟应用程序。
附图说明
图1是示出根据本发明优选实施例的虚拟应用程序系统的结构的方框图;
图2是示出虚拟应用程序系统的虚拟应用程序安装模块的操作的流程图;
图3是示出虚拟应用程序系统的运行控制模块的操作流程的流程图;
图4是示出虚拟应用程序访问虚拟文件系统、虚拟注册表等的实例的示例性图;
图5是示出虚拟文件系统保护模块、虚拟注册表保护模块以及虚拟应用程序内存保护模块保护虚拟环境和内存的实例的示例性图;
图6是示出包括在虚拟应用程序系统中的虚拟文件系统保护模块的操作流程的流程图;
图7是示出包括在虚拟应用程序系统中的虚拟注册表保护模块的操作流程的流程图;
图8是示出包括在虚拟应用程序系统中的虚拟应用程序内存保护模块的操作流程的流程图;以及
图9是示出包括在虚拟应用程序系统100中并且被设置用来阻止访问物理内存的虚拟应用程序内存保护模块的操作的流程图。
<附图中主要部分的附图标记的说明>
10:虚拟应用程序安装模块
20:虚拟化模块
22:文件系统虚拟化模块
24:注册表虚拟化模块
30:虚拟环境保护模块
32:虚拟文件系统保护模块
34:虚拟注册表保护模块
40:虚拟应用程序内存保护模块
50:运行控制模块
100:虚拟应用程序系统
具体实施例
下面将参照附图详细描述本发明的优选实施例,从而本领域技术人员可以容易地实施本发明。在本发明的优选实施例中,特定的技术术语用于明确内容。然而,应该理解,本发明不限于特定的术语,并且每个特定的术语都包括以相同的方式起作用从而完成相同目的的技术同义词。
图1是示出根据本发明优选实施例的虚拟应用程序系统的结构的方框图。
如图1所示,虚拟应用程序系统100可包括虚拟应用程序安装模块10、虚拟化模块20、虚拟环境保护模块30、虚拟应用程序内存保护模块40、运行控制模块50。
虚拟应用程序安装模块10的功能是将虚拟环境设置在指定的安装位置并且在虚拟环境中虚拟化和安装应用程序。例如,虚拟应用程序安装模块10可以接收来自用户的关于虚拟应用程序将要安装在何处的安装位置信息以及关于待虚拟化的应用程序的安装文件的位置的信息,然后,通过将虚拟化模块20加入应用程序的安装进程中来在相应的安装位置虚拟化和安装应用程序。
安装位置可包括:便携式外部存储设备,诸如USB内存卡或者CD;主机的存储空间(例如,硬盘);或者通过通信网络操作的远程计算机的存储空间。虚拟应用程序安装模块10可以将虚拟环境(例如,虚拟文件系统和虚拟注册表)设置在该安装位置并且将虚拟应用程序安装在虚拟环境中。所安装的虚拟应用程序在所述虚拟环境中独立地运行。这里,因为,可以防止从外部(例如,主机应用程序和其它计算机的应用程序)访问虚拟环境,因此虚拟环境可以保证安全性。
虚拟化模块20可以用于虚拟化虚拟应用程序的安装或运行。虚拟化模块20可包括动态排列库(dynamic ranking library),所述动态排列库具有许多可以将操作系统的本机应用程序接口重定向到虚拟环境的功能模块(例如,函数)。例如,虚拟化模块20可以表示为与“nt.dll”(即Windows库文件)相对应的“Vm.dll”(即动态排列库文件)。
通过虚拟应用程序安装模块10或运行控制模块50将虚拟化模块20加入到虚拟应用程序的安装进程或运行进程中。如果进程调用到主机环境(例如,文件系统或注册表)的访问API,则虚拟化模块20可以将访问路径转换为到虚拟环境(例如,虚拟文件系统或虚拟注册表),从而可以在虚拟环境中运行相应的进程。例如,当安装或运行虚拟应用程序时,如果调用“ntdll.dll”(即Windows的本机库)的特定的NTDLL函数(即Windows的本机API),则虚拟化模块20可执行虚拟化进程,从而使得被调用的Windows本机API可以在虚拟环境中运行相应的函数。
虚拟化模块20可包括文件系统虚拟化模块22和注册表虚拟化模块24。文件系统虚拟化模块22和注册表虚拟化模块24可以是包括许多功能模块的库文件。可以在用户模式下操作文件系统虚拟化模块22和注册表虚拟化模块24。
如果虚拟应用程序调用文件系统的访问API,则文件系统虚拟化模块22可以将用于此调用的访问路径改变为虚拟文件系统(例如,在虚拟环境中定义的目录环境)的路径,并且调用相应的API。此文件系统虚拟化模块22可以将内核的文件系统划分为仅虚拟应用程序可以访问的虚拟文件系统和主机应用程序可以访问的主机文件系统。
如果虚拟应用程序调用注册表的访问API,则注册表虚拟化模块24可以将用于此调用的访问路径改变为虚拟注册表的路径,并且调用相应的API。此注册表虚拟化模块24可以将内核的注册表划分为仅虚拟应用程序可以访问的虚拟注册表和主机应用程序也可以访问的主机注册表。
虚拟环境保护模块30用于阻止未经许可的应用程序(例如,主机应用程序)访问虚拟环境。例如,虚拟环境保护模块30可以用于阻止不属于虚拟应用程序或运行控制模块50的应用程序访问虚拟文件系统或虚拟注册表。
虚拟环境保护模块30可包括虚拟文件系统保护模块32和虚拟注册表保护模块34。虚拟文件系统保护模块32和虚拟注册表保护模块34可以实现为内核模式下的驱动程序(例如,微型过滤器)的形式。
虚拟文件系统保护模块32用于阻止不属于可以访问虚拟文件系统的经许可的应用程序(例如,虚拟应用程序或运行控制模块50)的应用程序(例如,主机应用程序)访问虚拟文件系统。例如,虚拟文件系统保护模块32可以从特定的实体(例如,运行控制模块50或虚拟应用程序)接收虚拟文件系统的路径信息和可以通过相应的路径访问虚拟文件系统的应用程序(例如,虚拟应用程序或运行控制模块50)的独特ID信息。如果应用程序试图访问虚拟文件系统中的文件,则虚拟文件系统保护模块32会分析相应的应用程序的独特ID信息,并且,如果分析结果是相应的应用程序不是被许可访问文件的应用程序,则阻止相应的应用程序访问相应的文件。
虚拟注册表保护模块34用于阻止不属于被许可访问虚拟注册表的应用程序的未经许可的应用程序(例如,主机应用程序)访问虚拟注册表。例如,虚拟注册表保护模块34可以从运行控制模块50或虚拟应用程序接收虚拟注册表的路径信息和可以通过相应的路径访问虚拟注册表的应用程序(例如,虚拟应用程序或运行控制模块50)的独特ID信息。如果应用程序试图访问虚拟注册表中的键,则虚拟注册表保护模块34会分析相应的应用程序的独特ID信息,并且,如果分析结果是相应的应用程序不是被许可访问键的应用程序,则阻止相应的应用程序访问相应的键。
虚拟应用程序内存保护模块40用于阻止不属于经许可的应用程序(例如,虚拟应用程序或运行控制模块50)的应用程序(例如,主机应用程序)访问虚拟应用程序所使用的内存区域。例如,虚拟应用程序内存保护模块40可以从运行控制模块50或虚拟应用程序接收被许可访问虚拟应用程序所使用的内存区域的应用程序的独特ID信息。如果应用程序试图访问内存区域,则虚拟应用程序内存保护模块40可以分析相应的应用程序的独特ID信息,并且,如果分析结果是相应的应用程序不是被许可访问内存区域的应用程序,则阻止相应的应用程序访问内存区域。这里,内存区域可以是逻辑内存。就是说,虚拟应用程序内存保护模块40可以用于保护虚拟应用程序所使用的逻辑内存区域。
虚拟应用程序内存保护模块40还可以阻止应用程序访问物理内存。它可以防止特定的应用程序直接访问物理内存并且防止从物理内存中导出信息(例如,黑客入侵)。虚拟应用程序内存保护模块40可以实现为内核模式下的驱动程序(例如,微型过滤器)的形式。
运行控制模块50用于操作虚拟环境保护模块30、虚拟应用程序内存保护模块40等,并且运行控制模块50运行虚拟应用程序。例如,运行控制模块50可以在内核模式阶段加载虚拟环境保护模块30和虚拟应用程序内存保护模块40并且提供操作虚拟环境保护模块30和虚拟应用程序内存保护模块40所必需的信息。此外,运行控制模块50可以运行虚拟应用程序。当相应的虚拟应用程序运行时,运行控制模块50可以将虚拟化模块20加入进程,从而在虚拟环境(例如,虚拟文件系统和虚拟注册表)中运行相应的进程。
运行控制模块50以应用程序之一的形式存在并且可以提供运行虚拟应用程序所必需的补充功能(例如,使得用户可以容易地执行虚拟应用程序的用户界面功能)。例如,运行控制模块50可以提供所安装的虚拟应用程序的列表,从而使得用户可以从相应的列表中选择所需的虚拟应用程序。
以上概要性地描述了虚拟应用程序系统100的模块设置。
下面详细描述虚拟应用程序系统100的每个模块的操作及其实施例。
首先,虚拟应用程序安装模块10可以是具有运行文件(例如,*.exe格式)的应用程序。这种虚拟应用程序安装模块10形成运行图标,并且当用户点击相应的图标时可以进行操作。在这种情况下,虚拟应用程序安装模块10还可以执行安装虚拟应用程序系统100的功能。例如,虚拟化模块20、虚拟环境保护模块30、虚拟应用程序内存保护模块40、运行控制模块50等可以形成为一个压缩文件的形式,虚拟应用程序安装模块10可以通过在特定的位置(可以是预先选定的或者由用户选择)解压缩所述压缩文件来安装虚拟应用程序系统100。
同时,虚拟应用程序安装模块10可以实现为运行控制模块50的功能之一。例如,能够运行虚拟应用程序安装模块10的项目可包括在运行控制模块50所提供的菜单中,并且,当用户选择相应的项目时,虚拟应用程序安装模块10可以进行操作。如上所述,虚拟应用程序安装模块10可以根据其实施环境而以各种形式实现。在此描述中,以前面的情形(虚拟应用程序安装模块10作为独立的应用程序存在的情况)作为实例。然而,应该注意,本发明不限于上述情况。
图2是示出虚拟应用程序系统的虚拟应用程序安装模块10的操作的流程图。
参照图2,首先,虚拟应用程序安装模块10接收来自用户的虚拟应用程序将要被安装的安装位置信息(步骤S1)。这里,安装位置可以是将要设置虚拟环境的地方。例如,虚拟应用程序安装模块10可以为用户提供目录选择窗口。如果用户通过目录选择窗口选择所需的目录(即,虚拟应用程序的根目录)作为安装位置,则虚拟应用程序安装模块10可以存储相应目录的信息。安装位置可以包括诸如USB内存卡或CD的便携式外部存储设备、主机的存储空间或远程计算机的存储空间等。
虚拟应用程序安装模块10接收来自用户的待虚拟化的应用程序的安装文件的位置信息(步骤S2)。这里,位置信息可以是存在于主机等中的应用程序安装文件的位置信息(即,路径信息,通过该路径可以访问安装文件)。例如,虚拟应用程序安装模块10可以为用户提供文件选择窗口。如果用户通过文件选择窗口选择所需的应用程序的安装文件,则虚拟应用程序安装模块10可以存储相应安装文件的位置信息。
接着,虚拟应用程序安装模块10将虚拟化模块20加入待虚拟化的应用程序的安装进程中(步骤S3),然后使得应用程序的安装进程可以运行(步骤S4)。如果在应用程序所运行的安装进程中调用文件系统或注册表的访问API,则虚拟化模块20将相应的访问重定向到虚拟路径,然后API访问虚拟文件系统和虚拟注册表并且运行函数。因此,虚拟化的应用程序(即,虚拟应用程序)被安装在安装位置(步骤S5)。
运行控制模块50可以运行如上安装的虚拟应用程序。运行控制模块50可以是以运行文件(例如,*.exe)的形式操作的应用程序。运行控制模块50可以形成运行图标。为了执行虚拟应用程序,用户可以通过诸如点击的行为,例如,点击运行控制模块50的图标,来运行运行控制模块50。运行控制模块50可以按照根据诸如通过点击虚拟应用程序的图标等行为来操作的方式运作。如上所述,运行控制模块50可以根据其实施环境而以各种形式实现。在此描述中,以前面的情形(运行控制模块50作为应用程序而存在的情形)作为实例。然而,应该注意,本发明不限于上述情形。
图3是示出虚拟应用程序系统100的运行控制模块50的操作流程的流程图。
参照图3,首先,运行控制模块50加载虚拟环境保护模块30和虚拟应用程序内存保护模块40(步骤S11),然后将虚拟环境(即,保护目标)的路径信息传输到虚拟环境保护模块30(步骤S12)。例如,运行控制模块50可以加载虚拟文件系统和虚拟注册表保护模块34,并且可以将虚拟文件系统的路径信息和虚拟注册表的路径信息分别传输到虚拟文件系统和虚拟注册表保护模块34。
运行控制模块50还将其(即,运行控制模块50)独特ID信息传输到虚拟环境保护模块30的虚拟文件系统保护模块32和虚拟注册表保护模块34以及虚拟应用程序内存保护模块40(步骤S13)。这里,独特ID信息可以包括通过相应的应用程序创建的进程ID、消息摘要等。虚拟环境保护模块30和虚拟应用程序内存保护模块40可以以特定的形式(例如,表格形式)存储和管理从运行控制模块50接收的独特ID信息。
同时,运行控制模块50可以执行对于执行虚拟应用程序必要的用户界面功能。例如,运行控制模块50可以创建表示虚拟应用程序的驱动的图标并且在特定的位置(例如,任务栏)显示所述图标。如果用户选择所述图标,则运行控制模块50可以提供特定形式的菜单(例如,任务栏弹出菜单)。所述菜单包括已安装的虚拟应用程序的列表。因此,用户可以通过运行控制模块50所提供的菜单选择所需的虚拟应用程序(步骤S14)。
当用户选择虚拟应用程序后,运行控制模块50使得相应的虚拟应用程序可以运行。首先,当相应的虚拟应用程序创建进程时,运行控制模块50将虚拟应用程序的独特ID信息(即,通过相应的应用程序而创建的进程ID、消息摘要等)传输到虚拟环境保护模块30和虚拟应用程序内存保护模块40(步骤S15)。虚拟应用程序的独特ID信息还可以从虚拟应用程序传输到相应的模块30和40。此外,运行控制模块50可以将虚拟化模块20(即,文件系统虚拟化模块22和注册表虚拟化模块24)加入到虚拟应用程序的进程中(步骤S16)。在此过程之后,运行控制模块50运行所述进程(步骤S17)。因此,可以在虚拟环境中执行虚拟应用程序。
在虚拟应用程序运行完成之后,运行控制模块50可以卸载虚拟文件系统保护模块32、虚拟注册表保护模块34和虚拟应用程序内存保护模块40。
同时,当虚拟应用程序运行时,所述虚拟应用程序所访问的虚拟文件系统、虚拟注册表和虚拟应用程序所使用的内存区域可以分别被虚拟文件系统保护模块32、虚拟注册表保护模块34和虚拟应用程序内存保护模块40保护。换言之,只有相应的虚拟应用程序和运行控制模块50被许可访问虚拟文件系统、虚拟注册表和虚拟应用程序使用的内存区域,而未经许可的应用程序(例如,主机应用程序)被阻止而不能访问它们。
图4和图5是示出当虚拟应用程序运行时虚拟应用程序系统100的操作的示例性图。图4示出虚拟应用程序3访问虚拟文件系统60、虚拟注册表62等的实例。图5示出虚拟文件系统保护模块32、虚拟注册表保护模块34以及虚拟应用程序内存保护模块40分别阻止主机应用程序7访问虚拟文件系统60、虚拟注册表62和虚拟应用程序3所使用的内存区域64的实例。
如图4和图5所示,可以在用户模式下操作文件系统虚拟化模块22和注册表虚拟化模块24。
当虚拟应用程序3调用文件系统访问API时,文件系统虚拟化模块22将用于此调用的访问路径转换为虚拟文件系统60的路径,并且调用相应的API。因此,文件系统虚拟化模块22允许虚拟应用程序3的进程访问虚拟文件系统60。通过该文件系统虚拟化模块22,文件系统可以被分为仅虚拟应用程序3和运行控制模块50可以访问的虚拟文件系统60和主机应用程序7可以访问的主机文件系统70。
当虚拟应用程序3调用注册表访问API时,注册表虚拟化模块24将用于此调用的访问路径转换为虚拟注册表的路径,并且调用相应的API。因此,注册表虚拟化模块24允许虚拟应用程序3的进程访问虚拟注册表。通过该注册表虚拟化模块24,注册表可以被分为仅虚拟应用程序3和运行控制模块50可以访问的虚拟注册表62和主机应用程序7可以访问的主机注册表72。
同时,可以在内核模式下操作虚拟文件系统保护模块32、虚拟注册表保护模块34以及虚拟应用程序内存保护模块40。例如,它们可以实现为内核驱动程序的形式,诸如内核模式的微型过滤器驱动程序。
通过阻止不属于被许可访问虚拟文件系统60的应用程序(例如,虚拟应用程序3和运行控制模块50)的未经许可的应用程序(例如,主机应用程序7)访问虚拟文件系统60,虚拟文件系统保护模块32可以执行保护虚拟文件系统60不被未经许可地访问的功能。
图6是示出虚拟文件系统保护模块32的操作流程的流程图。
如图6所示,通过运行控制模块50加载虚拟文件系统保护模块32,然后虚拟文件系统保护模块32被设置为从运行控制模块50接收虚拟文件系统60的路径信息(步骤S21)。之后虚拟文件系统保护模块32从运行控制模块50或虚拟应用程序3接收被许可访问虚拟文件系统60的应用程序(即,运行控制模块50和虚拟应用程序3)的独特ID信息(步骤S22)。这里,如上所述,独特ID信息可以包括通过相应的应用程序创建的进程ID和消息摘要等。对于虚拟应用程序3的独特ID信息来说,运行控制模块50可以将所述独特ID信息传输到虚拟文件系统保护模块32,或者虚拟应用程序3可以将虚拟应用程序3所产生的子应用程序(例如,进程)传输到虚拟文件系统保护模块32。虚拟文件系统保护模块32以特定的形式(例如,表格形式)存储从运行控制模块50或虚拟应用程序3接收的运行控制模块50和虚拟应用程序3的独特ID信息(步骤S23)。
接着,虚拟文件系统保护模块32检查应用程序将要访问的文件路径(步骤S24),然后判断该文件路径是否是虚拟文件系统60的文件路径(步骤S25)。如果判断结果是应用程序要访问的文件路径被判定为不是虚拟文件系统60的文件路径,则虚拟文件系统保护模块32允许相应的访问(步骤S27)。然而,如果判断结果是应用程序要访问的文件路径被判定为是虚拟文件系统60的文件路径,则意味着访问虚拟文件系统60。因此,虚拟文件系统保护模块32判断所述应用程序的独特ID信息是否存在于所存储的表格(即,包括虚拟应用程序和运行控制模块50的独特ID信息的信息)(步骤S26)中。如果判断结果是应用程序的独特ID信息被判断为不在表格中,则虚拟文件系统保护模块32阻止所述访问(步骤S28)。然而,如果判断结果是应用程序的独特ID信息被判断为在表格中,则虚拟文件系统保护模块32允许所述访问(步骤S27)。
在虚拟文件保护过程(步骤S21至S28)的替代实施例中,假设所述独特ID信息是进程ID,则虚拟文件系统保护模块32可先从运行控制模块50接收虚拟文件系统60的路径信息,从虚拟应用程序3或运行控制模块50接收虚拟应用程序3和运行控制模块50创建的进程ID,并且以表格的形式存储接收到的进程ID。如果应用程序产生的进程试图通过虚拟文件系统60的文件路径访问虚拟文件系统60,则虚拟文件系统保护模块32可以判断该进程的进程ID是否存在于表格中。如果判断的结果是进程ID被判定存在于表格中,则虚拟文件系统保护模块32可以许可所述应用程序访问虚拟文件系统60的文件。然而,如果判断的结果是进程ID被判定不存在于表格中,则虚拟文件系统保护模块32可以阻止应用程序访问虚拟文件系统60的文件。因此,仅许可由虚拟应用程序3或运行控制模块50产生的进程访问虚拟文件系统60。
图7是示出包括在虚拟应用程序系统100中的虚拟注册表保护模块34的操作流程的流程图。
如图7所示,通过运行控制模块50加载虚拟注册表保护模块34,然后虚拟注册表保护模块34被设置为从运行控制模块50接收虚拟注册表62的路径信息(步骤S31)。之后,虚拟注册表保护模块34从运行控制模块50或虚拟应用程序3接收被许可访问虚拟注册表62的应用程序(即,运行控制模块50和虚拟应用程序3)的独特ID信息(步骤S32)。这里,独特ID信息可以包括通过相应的应用程序创建的进程ID和消息摘要等。对于虚拟应用程序3的独特ID信息来说,运行控制模块50可以将该独特ID信息传输到虚拟注册表保护模块34,或者虚拟应用程序3可以将虚拟应用程序3所产生的子应用程序(例如,进程)传输到虚拟注册表保护模块34。虚拟注册表保护模块34以特定的形式(例如,表格形式)存储从运行控制模块50或虚拟应用程序3接收的运行控制模块50和虚拟应用程序3的独特ID信息(步骤S33)。
接着,虚拟注册表保护模块34检查应用程序将要访问的键的路径(步骤S34),然后判断该键路径是否是虚拟注册表62的键路径(步骤S35)。如果判断结果是应用程序将要访问的键路径被判定为不是虚拟注册表62的键路径,则虚拟注册表保护模块34允许相应的访问(步骤S37)。然而,如果判断结果是应用程序访问的键路径被判断为是虚拟注册表62的键路径,则意味着访问虚拟注册表62。因此,虚拟注册表保护模块34判断应用程序的独特ID信息是否存在于所存储的表格(即,包括虚拟应用程序和运行控制模块50的独特ID信息的信息)中(步骤S36)。如果判断结果是应用程序的独特ID信息被判断为不在表格中,则虚拟注册表保护模块34阻止所述访问(步骤S38)。然而,如果判断结果是应用程序的独特ID信息被判断为在表格中,则虚拟注册表保护模块34允许所述访问(步骤S37)。
在虚拟注册表保护过程(步骤S31至S38)的替代实施例中,假设所述独特ID信息是进程ID,则虚拟注册表保护模块34可先从运行控制模块50接收虚拟注册表62的路径信息,从虚拟应用程序3或运行控制模块50接收由虚拟应用程序3和运行控制模块50创建的进程ID,并且将接收到的进程ID存储在表格中。如果应用程序产生的进程试图通过虚拟注册表62的键路径访问虚拟注册表62,则虚拟注册表保护模块34可以判断所述进程的进程ID是否存在于表格中。如果判断的结果是进程ID被判定存在于表格中,则虚拟注册表保护模块34可以许可所述应用程序访问虚拟注册表62的键。然而,如果判断的结果是进程ID被判定不存在于表格中,则虚拟注册表保护模块34可以阻止所述应用程序访问虚拟注册表62的键。因此,仅许可由虚拟应用程序3或运行控制模块50产生的进程访问虚拟注册表62。
图8是示出包括在虚拟应用程序系统100中的虚拟应用程序内存保护模块40的操作流程的流程图。
如图8所示,虚拟应用程序内存保护模块40从运行控制模块50或虚拟应用程序3接收被许可访问虚拟应用程序3所使用的内存区域64的应用程序(例如,运行控制模块50和虚拟应用程序3)的独特ID信息(步骤S41)。这里,如上所述,内存区域64可以是逻辑内存区域。独特ID信息还可以包括通过相应的应用程序创建的进程ID和消息摘要等。对于虚拟应用程序3的独特ID信息来说,运行控制模块50可以将所述独特ID信息传输到虚拟应用程序内存保护模块40或者虚拟应用程序3可以将虚拟应用程序3所产生的子应用程序(例如,进程)传输到虚拟应用程序内存保护模块40。虚拟应用程序内存保护模块40可以以表格等形式存储从运行控制模块50或虚拟应用程序3接收到的运行控制模块50和虚拟应用程序3的独特ID信息(步骤S42)。
接着,如果应用程序试图访问虚拟应用程序3所使用的内存区域64(步骤S43),则虚拟应用程序内存保护模块40判断相应的应用程序的独特ID信息是否存在于所存储的表格(即,包括虚拟应用程序和运行控制模块50的独特ID信息的信息)中(步骤S44)。这里,如果判断的结果是应用程序的独特ID信息被判定不存在于表格中(即,当试图访问内存区域64的应用程序不是虚拟应用程序或运行控制模块50时),则虚拟应用程序内存保护模块40阻止相应的应用程序访问内存区域64(步骤S46)。然而,如果判断的结果是应用程序的独特ID信息被判定存在于表格中(即,当试图访问内存区域64的应用程序是虚拟应用程序或运行控制模块50时),则虚拟应用程序内存保护模块40许可相应的应用程序访问内存区域64(步骤S45)。
在虚拟内存区域保护过程(步骤S41至S46)的替换实施例中,假设所述独特ID信息是进程ID,则虚拟应用程序内存保护模块40可以从虚拟应用程序3或运行控制模块50接收由虚拟应用程序3和运行控制模块50创建的进程ID,并且以表格的形式存储接收到的进程ID。如果,当虚拟应用程序3所产生的进程在特定的内存区域64中运行时,应用程序产生的进程试图访问内存区域64,则虚拟应用程序内存保护模块40可以通过检查表格来判断所述进程的进程ID是否存在于表格中。如果判断的结果是进程的进程ID被判定存在于表格中,则意味着所述进程是由虚拟应用程序3或运行控制模块50产生的进程。因此,虚拟应用程序内存保护模块40许可所述进程访问内存区域64。然而,如果判断的结果是所述进程的进程ID被判定不存在于表格中,则意味着所述进程是未经许可的应用程序(例如,主机应用程序)。因此,虚拟应用程序内存保护模块40阻止所述进程访问内存区域64。
同时,虚拟应用程序内存保护模块40也可以阻止应用程序访问物理内存。
图9是示出包括在虚拟应用程序系统100中并且被设置用来阻止访问物理内存的虚拟应用程序内存保护模块40的操作的流程图。
如图9所示,如果应用程序试图直接访问物理内存(步骤S51),则虚拟应用程序内存保护模块40可以阻止所述应用程序访问物理内存(步骤S52)。例如,如果由特定的应用程序产生的进程调用试图直接访问物理内存(例如,主机的RAM)的API,则虚拟应用程序内存保护模块40可以返回拒绝访问的错误值。
应用程序通常访问逻辑内存并执行功能,但是不直接访问物理内存。然而具有被感染的应用程序的人将可以使用特定的应用程序直接访问物理内存并导出信息。因此,虚拟应用程序内存保护模块40从根本上阻止对物理内存的访问,由此能够提高安全性。
如上所述,虚拟应用程序系统可以在与主机环境相隔离的独立虚拟环境中安装和运行虚拟应用程序,并且可以保护利用在内核模式下操作的虚拟文件系统保护模块、虚拟注册表保护模块、虚拟应用程序内存保护模块等保护虚拟环境和内存。
虚拟应用程序系统的应用广泛。例如,用户可以使虚拟应用程序系统包括在便携式外部存储设备(例如,USB存储器、CD、DVD及移动通讯终端)中,在外部存储设备中设置虚拟环境,并且在虚拟环境中虚拟化和安装所需的应用程序。接着,当用户携带外部存储设备时,可以在提供计算机终端的任何地方将外部存储设备连接到主机并且运行虚拟应用程序。
在这种情况下,虚拟应用程序在与主机隔离的独立虚拟环境中运行。例如,由虚拟应用程序执行的文件和注册表的修改仅在设置在外部存储设备中的虚拟环境的虚拟文件系统和虚拟注册表中执行。此外,由于阻止诸如主机应用程序的未经许可的应用程序访问虚拟环境,因此虚拟环境可以保证安全性。
因此,用户可以在便携式外部存储设备中虚拟化和安装应用程序,诸如,Internet Explorer、Fire Fox及Word Processor,然后使用虚拟应用程序进行需要独立性和安全性的操作(例如,电子商务和网上银行)。在这种情况下,被创建和修改的文件或注册表的键仅存储在虚拟环境中或者仅在虚拟环境中被修改,并且阻止对虚拟环境的所有的未经许可访问。因此,由于主机中没有残留的信息,所以可以从根本上防止个人信息被导出。
如另一个例子,用户可以在通过通信网络操作的远程计算机系统中设置虚拟环境,并且利用虚拟应用程序系统在虚拟环境中虚拟化和安装虚拟应用程序。在这种情况下,虚拟应用程序可以在存在于远程计算机系统中的虚拟环境中独立地执行。例如,由虚拟应用程序执行的文件和注册表的修改仅在位于远端处的虚拟文件系统和虚拟注册表中执行。这里,包括在远程计算机系统中的其它应用程序不可以访问相应的虚拟环境。因此,用户可以利用远程计算机系统执行要求安全性的任务。
如又一例子,用户可以在主机中设置虚拟环境,并且利用虚拟应用程序系统在虚拟环境中虚拟化和安装虚拟应用程序。在这种情况下,虚拟应用程序可以在存在于主机的虚拟环境中独立地运行。这里,其它主机应用程序不可以访问虚拟环境。因此,即使在主机中用户也可以执行要求安全性的任务。
尽管上文描述了本发明的优选实施例,但是本领域的普通技术人员应该理解,在不脱离由所附的权利要求定义的本发明的精神和范围的情况下,可以对本发明进行各种形式的改进。因此,本发明的实施例的合理变型不偏离本发明的技术。
Claims (25)
1.一种虚拟应用程序系统,包括:
运行控制模块,所述运行控制模块用于运行虚拟应用程序;以及
虚拟环境保护模块,所述虚拟环境保护模块由所述运行控制模块加载,并且所述虚拟环境保护模块被设置用来阻止未经许可的应用程序访问所述虚拟应用程序所访问的虚拟环境。
2.根据权利要求1所述的虚拟应用程序系统,其中,所述虚拟环境保护模块将被许可访问所述虚拟环境的应用程序的独特ID信息存储在表格中,并且,如果特定的应用程序试图访问所述虚拟环境,则所述虚拟环境保护模块判断所述特定应用程序的独特ID信息是否存在于所述表格中。
3.根据权利要求2所述的虚拟应用程序系统,其中,所述独特ID信息包括由相应的应用程序创建的进程ID和消息摘要中的至少一个。
4.根据权利要求3所述的虚拟应用程序系统,其中,如果所述独特ID信息是所述进程ID,则所述虚拟环境保护模块将被许可访问所述虚拟环境的所述应用程序所产生的进程的进程ID存储在进程ID表格中,并且,如果特定的应用程序产生的进程试图访问所述虚拟环境,则所述虚拟环境保护模块判断所产生的进程的进程ID是否存在于所述进程ID表格中。
5.根据权利要求2所述的虚拟应用程序系统,其中,如果所述特定应用程序的所述独特ID信息存在于所述表格中,则所述虚拟环境保护模块允许所述特定应用程序访问所述虚拟环境,而如果所述特定应用程序的所述独特ID信息不在所述表格中,则所述虚拟环境保护模块不允许所述特定应用程序访问所述虚拟环境。
6.根据权利要求2所述的虚拟应用程序系统,其中,所述虚拟环境保护模块从所述运行控制模块和所述虚拟应用程序中的至少一个接收被许可访问所述虚拟环境的所述应用程序的所述独特ID信息。
7.根据权利要求2所述的虚拟应用程序系统,其中,被许可访问所述虚拟环境的所述应用程序包括所述虚拟应用程序和所述运行控制模块中的至少一个。
8.根据权利要求1所述的虚拟应用程序系统,其中,所述虚拟环境保护模块包括:
虚拟文件系统保护模块,所述虚拟文件系统保护模块用来阻止所述未经许可的应用程序访问所述虚拟应用程序所访问的虚拟文件系统;以及
虚拟注册表保护模块,所述虚拟注册表保护模块用来阻止所述未经许可的应用程序访问所述虚拟应用程序所访问的虚拟注册表。
9.根据权利要求1所述的虚拟应用程序系统,进一步包括虚拟应用程序内存保护模块,所述虚拟应用程序内存保护模块用来阻止所述未经许可的应用程序访问所述虚拟应用程序所使用的内存区域。
10.根据权利要求9所述的虚拟应用程序系统,其中,所述虚拟环境保护模块和所述虚拟应用程序内存保护模块都被设置为在内核模式下操作的驱动程序的形式。
11.根据权利要求9所述的虚拟应用程序系统,其中,所述虚拟应用程序内存保护模块将被许可访问所述虚拟应用程序所使用的所述内存区域的应用程序的独特ID信息存储在表格中,并且,如果特定的应用程序试图访问所述内存区域,则所述虚拟应用程序内存保护模块判断所述特定的应用程序的独特ID信息是否存在于所述表格中。
12.根据权利要求9所述的虚拟应用程序系统,其中,所述虚拟应用程序内存保护模块用来阻止应用程序访问物理内存。
13.根据权利要求1所述的虚拟应用程序系统,进一步包括:
虚拟化模块,所述虚拟化模块用来对操作系统的应用程序接口(API)进行处理,从而使得所述API符合所述虚拟环境;以及
虚拟应用程序安装模块,所述虚拟应用程序安装模块用来利用所述虚拟化模块将所述虚拟环境设置在指定的安装位置并且将所述虚拟应用程序安装在所述虚拟环境中。
14.根据权利要求13所述的虚拟应用程序系统,其中,所述虚拟化模块包括:
文件系统虚拟化模块,当所述虚拟应用程序调用到文件系统的访问API时,所述文件系统虚拟化模块将到所述文件系统的访问路径转换为到虚拟文件系统的访问路径;以及
注册表虚拟化模块,当所述虚拟应用程序调用到注册表的访问API时,所述注册表虚拟化模块将到所述注册表的访问路径转换为到虚拟注册表的访问路径。
15.根据权利要求13所述的虚拟应用程序系统,其中:
所述虚拟应用程序安装模块将所述虚拟化模块加入安装所述虚拟应用程序的安装进程中,并且
所述运行控制模块将所述虚拟化模块加入所述虚拟应用程序的运行进程中。
16.一种虚拟应用程序系统,包括:
虚拟化模块,当进程调用到主机环境的访问API时,所述虚拟化模块能够将到所述主机环境的访问路径转换为到虚拟环境的访问路径;
虚拟应用程序安装模块,所述虚拟应用程序安装模块用来将所述虚拟环境设置在指定的位置中并且利用所述虚拟化模块将虚拟应用程序安装在所述虚拟环境中;以及
运行控制模块,所述运行控制模块用来利用所述虚拟化模块在与所述主机环境相独立和相隔离的所述虚拟环境中运行所述虚拟应用程序。
17.根据权利要求16所述的虚拟应用程序系统,其中,所述虚拟应用程序安装模块从用户处接收待虚拟化的应用程序的安装文件的安装位置和位置信息,并且所述虚拟应用程序安装模块通过将所述虚拟化模块加入所述待虚拟化的应用程序的安装进程而将所述虚拟应用程序安装在所述安装位置。
18.根据权利要求16所述的虚拟应用程序系统,其中,所述运行控制模块将所述虚拟化模块加入所述虚拟应用程序的运行进程中。
19.根据权利要求16所述的虚拟应用程序系统,进一步包括虚拟环境保护模块,所述虚拟环境保护模块用来阻止未经许可的应用程序访问所述虚拟应用程序所访问的所述虚拟环境。
20.根据权利要求19所述的虚拟应用程序系统,其中:
所述虚拟环境包括虚拟文件系统和虚拟注册表,并且所述虚拟环境保护模块包括:
虚拟文件系统保护模块,所述虚拟文件系统保护模块用于阻止所述未经许可的应用程序访问所述虚拟文件系统;以及
虚拟注册表保护模块,所述虚拟注册表保护模块用于阻止所述未经许可的应用程序访问所述虚拟注册表。
21.一种与主机系统一起工作的便携式存储设备,包括:
虚拟环境,所述虚拟环境与所述主机系统的主机环境隔离;
虚拟应用程序,所述虚拟应用程序访问所述虚拟环境;以及
虚拟应用程序系统,所述虚拟应用程序系统用来在所述虚拟环境中运行所述虚拟应用程序并且阻止未经许可的应用程序访问所述虚拟环境。
22.一种虚拟应用程序的运行方法,包括以下步骤:
加载用于保护虚拟环境的保护模块;
将可以访问所述虚拟环境的虚拟应用程序的独特ID信息传输到所述保护模块;以及
运行所述虚拟应用程序。
23.根据权利要求22所述的方法,其中,所述保护模块包括下述者中的至少一个:
虚拟文件系统保护模块,所述虚拟文件系统保护模块用来阻止未经许可的应用程序访问所述虚拟应用程序所访问的虚拟文件系统;
虚拟注册表保护模块,所述虚拟注册表保护模块用来阻止未经许可的应用程序访问所述虚拟应用程序所访问的虚拟注册表;以及
虚拟应用程序内存保护模块,所述虚拟应用程序内存保护模块用来阻止未经许可的应用程序访问所述虚拟应用程序所使用的内存区域或者阻止应用程序访问物理内存。
24.一种虚拟环境的保护方法,包括下述步骤:
以表格的形式存储可以访问虚拟环境的虚拟应用程序的独特ID信息;
如果应用程序试图访问所述虚拟环境,则判断所述应用程序的独特ID信息是否在所述表格中;如果判断的结果是所述应用程序的所述独特ID信息被确定为不在所述表格中,则阻止所述应用程序访问所述虚拟环境;以及如果判断的结果是所述应用程序的所述独特ID信息被确定为在所述表格中,则允许所述应用程序访问所述虚拟环境。
25.根据权利要求24所述的方法,其中,所述独特ID信息包括由相应的应用程序创建的进程ID和消息摘要中的至少一个。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2008-0001199 | 2008-01-04 | ||
KR20080001199 | 2008-01-04 | ||
KR10-2008-0022462 | 2008-03-11 | ||
KR1020080022462A KR101013509B1 (ko) | 2008-01-04 | 2008-03-11 | 가상 응용 프로그램 시스템, 저장장치, 가상 응용 프로그램수행 방법 및 가상 환경 보호 방법 |
PCT/KR2008/007857 WO2009088175A2 (en) | 2008-01-04 | 2008-12-31 | Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101965553A true CN101965553A (zh) | 2011-02-02 |
Family
ID=41332784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801259694A Pending CN101965553A (zh) | 2008-01-04 | 2008-12-31 | 虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110010756A1 (zh) |
KR (1) | KR101013509B1 (zh) |
CN (1) | CN101965553A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231116A (zh) * | 2011-07-04 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 应用程序虚拟化安装及加载方法及装置 |
CN103309666A (zh) * | 2013-06-09 | 2013-09-18 | 北京奇虎科技有限公司 | 一种软件运行控制方法和装置 |
CN105573741A (zh) * | 2015-09-25 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 界面可重构的虚拟应用系统和方法 |
CN105700914A (zh) * | 2015-12-31 | 2016-06-22 | 北京金山安全软件有限公司 | 一种应用软件安装、启动方法和装置 |
CN106161517A (zh) * | 2015-03-31 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通过云文件系统实现云存储接入的方法和装置 |
CN106650491A (zh) * | 2016-12-09 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 一种保护用户隐私的方法及移动终端 |
CN106709327A (zh) * | 2016-12-07 | 2017-05-24 | 深圳市君格科技有限公司 | 一种应用隐藏的方法及其移动终端 |
WO2018082289A1 (zh) * | 2016-11-01 | 2018-05-11 | 深圳市中兴微电子技术有限公司 | 一种应用程序的管理方法、装置和计算机存储介质 |
CN109154963A (zh) * | 2016-07-14 | 2019-01-04 | 华为技术有限公司 | 一种防止内存数据泄露的设备及方法 |
CN110443876A (zh) * | 2019-07-31 | 2019-11-12 | 新华三大数据技术有限公司 | 3d图像渲染方法及装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402458B1 (en) * | 2009-03-18 | 2013-03-19 | Symantec Corporation | Methods and systems for converting non-layered-software-application installations into layered installations |
US8612994B1 (en) * | 2009-03-30 | 2013-12-17 | Symantec Corporation | Methods and systems for activating and deactivating virtualization layers |
US8881140B1 (en) | 2009-09-04 | 2014-11-04 | Symantec Corporation | Systems and methods for virtualizing software associated with external computer hardware devices |
US9229748B2 (en) * | 2010-01-29 | 2016-01-05 | Code Systems Corporation | Method and system for improving startup performance and interoperability of a virtual application |
US9218359B2 (en) | 2010-07-02 | 2015-12-22 | Code Systems Corporation | Method and system for profiling virtual application resource utilization patterns by executing virtualized application |
US9069607B1 (en) | 2012-01-31 | 2015-06-30 | Vmware, Inc. | Selective migration of virtualized applications and configuration settings thereof |
CN102662870B (zh) * | 2012-03-20 | 2014-08-13 | 武汉噢易科技有限公司 | 基于vfs层拦截读写请求的安卓操作系统保护方法 |
US8875096B1 (en) * | 2012-09-25 | 2014-10-28 | Amazon Technologies, Inc. | Dynamic class loading |
CN103617129B (zh) * | 2013-12-10 | 2017-10-24 | 中科创达软件股份有限公司 | 一种内存处理的方法及装置 |
US10769267B1 (en) * | 2016-09-14 | 2020-09-08 | Ca, Inc. | Systems and methods for controlling access to credentials |
WO2019009601A1 (ko) * | 2017-07-04 | 2019-01-10 | 주식회사 수산아이앤티 | 웹 소스를 보호하기 위한 장치 및 방법 |
US10452838B2 (en) * | 2017-07-27 | 2019-10-22 | Symantec Corporation | Providing joint access to an isolated computer object by both an isolated computer application and a non-isolated computer application |
KR20190021673A (ko) * | 2017-08-23 | 2019-03-06 | 주식회사 수산아이앤티 | 랜섬웨어 방지 장치 및 방법 |
US11163880B2 (en) * | 2017-09-29 | 2021-11-02 | Crowdstrike, Inc. | Using indirection to facilitate software upgrades |
GB2578099B (en) * | 2018-10-15 | 2021-05-12 | Advanced Risc Mach Ltd | Memory access control |
KR102232919B1 (ko) * | 2020-08-10 | 2021-03-29 | (유)아홉 | 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114870A1 (en) * | 2003-11-21 | 2005-05-26 | Song Dong H. | System and method for executing an application on a secured run-time environment |
KR100654675B1 (ko) * | 2004-12-04 | 2006-12-08 | 소프트온넷(주) | 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법 |
US20080216071A1 (en) * | 2005-04-07 | 2008-09-04 | Koninklijke Philips Electronics, N.V. | Software Protection |
US20070168937A1 (en) * | 2005-11-28 | 2007-07-19 | Soummya Mallick | Apparatus and method of application virtualization |
KR100927442B1 (ko) * | 2007-08-16 | 2009-11-19 | 주식회사 마크애니 | 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법 |
-
2008
- 2008-03-11 KR KR1020080022462A patent/KR101013509B1/ko active IP Right Grant
- 2008-12-31 US US12/811,596 patent/US20110010756A1/en not_active Abandoned
- 2008-12-31 CN CN2008801259694A patent/CN101965553A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013004182A1 (zh) * | 2011-07-04 | 2013-01-10 | 华为数字技术(成都)有限公司 | 应用程序虚拟化安装及加载方法及装置 |
CN102231116A (zh) * | 2011-07-04 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 应用程序虚拟化安装及加载方法及装置 |
CN103309666A (zh) * | 2013-06-09 | 2013-09-18 | 北京奇虎科技有限公司 | 一种软件运行控制方法和装置 |
CN103309666B (zh) * | 2013-06-09 | 2016-08-24 | 北京奇虎科技有限公司 | 一种软件运行控制方法和装置 |
CN106161517A (zh) * | 2015-03-31 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 通过云文件系统实现云存储接入的方法和装置 |
CN106161517B (zh) * | 2015-03-31 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 通过云文件系统实现云存储接入的方法和装置 |
CN105573741A (zh) * | 2015-09-25 | 2016-05-11 | 中国电子科技集团公司第三十二研究所 | 界面可重构的虚拟应用系统和方法 |
CN105700914A (zh) * | 2015-12-31 | 2016-06-22 | 北京金山安全软件有限公司 | 一种应用软件安装、启动方法和装置 |
CN109154963A (zh) * | 2016-07-14 | 2019-01-04 | 华为技术有限公司 | 一种防止内存数据泄露的设备及方法 |
CN109154963B (zh) * | 2016-07-14 | 2021-01-29 | 华为技术有限公司 | 一种防止内存数据泄露的设备及方法 |
WO2018082289A1 (zh) * | 2016-11-01 | 2018-05-11 | 深圳市中兴微电子技术有限公司 | 一种应用程序的管理方法、装置和计算机存储介质 |
CN106709327A (zh) * | 2016-12-07 | 2017-05-24 | 深圳市君格科技有限公司 | 一种应用隐藏的方法及其移动终端 |
CN106650491A (zh) * | 2016-12-09 | 2017-05-10 | 上海斐讯数据通信技术有限公司 | 一种保护用户隐私的方法及移动终端 |
CN110443876A (zh) * | 2019-07-31 | 2019-11-12 | 新华三大数据技术有限公司 | 3d图像渲染方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20110010756A1 (en) | 2011-01-13 |
KR101013509B1 (ko) | 2011-02-11 |
KR20090075595A (ko) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101965553A (zh) | 虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法 | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
CN110348252B (zh) | 基于信任区的操作系统和方法 | |
JP6248153B2 (ja) | 信頼レベルのアクティブ化 | |
CN102314373B (zh) | 一种基于虚拟化技术实现安全工作环境的方法 | |
US11171983B2 (en) | Techniques to provide function-level isolation with capability-based security | |
US10255088B2 (en) | Modification of write-protected memory using code patching | |
US10146940B2 (en) | Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems | |
US10310992B1 (en) | Mitigation of cyber attacks by pointer obfuscation | |
US20100175104A1 (en) | Safe and secure program execution framework with guest application space | |
EP1927065B1 (en) | Method for computing platform data protection | |
US10083129B2 (en) | Code loading hardening by hypervisor page table switching | |
US10360386B2 (en) | Hardware enforcement of providing separate operating system environments for mobile devices | |
KR20180099682A (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
CN103080871A (zh) | 资源管理和安全系统 | |
US20170220795A1 (en) | Information-processing device, information-processing monitoring method, and recording medium | |
CN114154144A (zh) | 基于安全沙箱的应用安全加固系统 | |
US20170317832A1 (en) | Virtual Secure Elements in Computing Systems based on ARM Processors | |
US20130326492A1 (en) | Apparatus and method for managing entitlements to program code | |
CN102467632A (zh) | 一种浏览器隔离使用的方法 | |
WO2009088175A2 (en) | Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment | |
GB2403820A (en) | Security policy in trusted computing systems | |
Shinagawa et al. | Exploiting segmentation mechanism for protecting against malicious mobile code | |
CN112784263B (zh) | 位元锁磁盘处理程序管理系统与方法 | |
Ramasubramanian | Exploring Virtualization Platforms for ARM based Mobile Android Devices. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110202 |