用于检测可在虚拟堆栈机上执行的有害文件的系统和方法与流程

文档序号:12600478阅读:165来源:国知局
用于检测可在虚拟堆栈机上执行的有害文件的系统和方法与流程

本发明总体涉及计算机安全领域,尤其涉及用于检测可在虚拟堆栈机上执行的有害文件的系统和方法。



背景技术:

计算机技术在过去十年的迅速发展以及不同的计算设备(例如个人计算机、笔记本电脑、平板电脑、智能电话等等)的广泛使用已经强有力地刺激了这些设备在不同活动领域的使用以及用于巨大量的任务(例如从因特网冲浪到银行转账和电子文件传播)。在计算设备和运行在这些设备上的软件的数目增长的同时,有害程序(也称为恶意软件或恶意程式)的数目也显著增长。

存在许多不同种类的有害程序。其中一些有害程序从用户的设备窃取个人机密数据,例如登录名和密码、银行信息、电子文件等等。其它有害程序从用户设备形成所谓的僵尸网络用以攻击(例如拒绝服务(DDOS))或用以通过暴力破解而分类整理出用于其它计算机或计算机网络的密码。还有其它有害程序通过侵入广告、付费订阅、发送SMS到支付号等等来向用户提供付费内容(例如广告软件)。

专门的反病毒程序用来对抗有害程序,也就是说,用来检测有害程序、防止感染并恢复被有害程序感染的计算机系统。尤其是,反病毒程序利用各种技术来检测有害程序的全分集,例如“签名分析”,其是利用已知的代码(签名)从有害程序的签名的数据库搜索被分析的程序的代码的特定节段的对应。其它技术包括“启发式分析”,其是模拟被分析的程序的工作、创建模拟日志(即,包含关于API函数调用的数据、传输的参数、被分析的程序的代码节段等等)并在所创建的日志的数据中搜索与来自有害程序的模拟的数据库的数据的对应。还有其它技术利用“白名单”和“黑名单”,其包括在有害程序的校验和的 数据库(黑名单)中或在合法程序的校验和的数据库(白名单)中搜索所计算的被分析的程序(或其多个部分)的校验和。最后,技术通过如下方式使用主动防御:拦截系统中正在运行的被分析的程序的API函数调用,创建用于该被分析的程序的工作的日志(包含关于API函数调用的数据、传输的参数、被分析的程序的代码节段等等),并在所创建的日志的数据中搜索与来自有害程序的调用的数据库的数据的对应。

反过来,有害程序越来越多地使用多种方法来抵制反病毒程序对其在感染的计算机系统上的存在进行的检测。这些技术包括用于击败签名分析的代码混淆,即,向程序的原始文本(例如类似JavaScript的脚本的原始文本)或可执行代码提供保持它们的功能性但在反编译期间抵制对工作算法的分析、理解以及修改的外观。此外,有害程序利用更复杂的行为来击败启发式分析,包括使用大量的操作或API函数调用,这些操作或API函数调用的使用不会影响程序的输入/输出工作的结果,但破坏反病毒程序对其的模拟。最后,这种程序还监控第三方程序的行为,以击败主动防御,即,连续监控在操作系统中的第三方程序的行为、搜索反病毒程序并针对这些反病毒程序采取动作(例如,针对分析隐藏或替换其自身的代码)。

通过使用各种技术,例如代码生成器(即,能够自动创建具有指定功能的有害程序的设计者程序)、混淆器(即,能够改变程序的可执行代码从而在不改变其功能的情况下使其分析复杂化的程序)、封装器(即,引入到程序中的程序模块,该程序模块加密程序的可执行代码并在启动时解密该可执行代码)等等,黑客能够快速且毫不费力地创建并传播不可被反病毒应用检测到的大量的新版本的有害程序。

对于通过上述方法所获得的有害程序的有效检测,使用一种收集具有某些特征(例如,由一个版本的封装器封装的有害程序的文件、具有类似行为的有害程序等等)的一组有害程序(即群集)的技术。此外,在所收集的群集的文件中,针对类似的代码节段、来自模拟日志的数据、或行为(例如,一系列的API函数调用)进行搜索。最后,创建检测的规则,使得如果知道群集中的一个 有害程序的数据(例如代码节段),则还可以检测该群集的其它有害程序。

该途径的一个显著的限制是,不存在独立于有害程序在其上运行的平台(例如移动架构ARM)或组成有害程序的数据的类型(例如JavaScript脚本、JavaScript字节码或编译的C++代码)而检测有害文件的通用的解决方案。因此,经常有必要使用对于平台和数据类型个性化的算法来聚类并创建用于检测有害程序的规则。

大量的有害程序主动利用虚拟机(及其漏洞)来进行它们在用户的计算机上的传播和破坏性活动,尤其是利用虚拟堆栈机(例如Adobe Flash或Java虚拟机)。与在PC上检测普通的有害程序相比,检测这样的有害程序涉及另外的困难,这是因为标准的检测方法是不适用的(由于虚拟机的架构特征)或者是缓慢的或低效率的(具有太低的检测水平)。因此,需要更有效的技术来检测虚拟堆栈机上的恶意软件。



技术实现要素:

公开了用于检测可在虚拟堆栈机上执行的有害文件的系统和方法。在一个方面中,一种示例性方法包括:通过硬件处理器从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;基于所识别的所述数据,通过所述硬件处理器在数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;至少部分地基于所识别的所述安全文件的至少一个群集,通过所述硬件处理器创建由所述虚拟堆栈机执行的所述文件的数据的群集;通过所述硬件处理器计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;通过所述硬件处理器访问有害文件的校验和的数据库;以及如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则通过所述硬件处理器确定在所述虚拟堆栈机上执行的所述文件是有害文件。

在一个示例性方面中,所述文件的所述文件节段的所述参数包括以下中的至少一者:代码、名称、标题类型、数据在所述文件节段中的偏移量、和所述数据在所述文件节段中的大小。

在一个示例性方面中,所述文件的所述函数的所述参数包括以下中的至少一者:函数体索引、函数代码在所述文件节段中的位置和长度、函数描述符索引、在执行所述函数时堆栈的最大深度、由所述函数所使用的局部变量的数目、所述函数的名称、操作数的数目、和能够返回的数据类型。

在一个示例性方面中,所述第一阈值为文件节段的类型的数目。

在一个示例性方面中,所述第二阈值为由所述函数所使用的局部变量的数目。

在一个示例性方面中,计算所述至少一个校验和包括通过计算集合MD5来计算模糊校验和,所述集合MD5包括:包含节段标题类型和这些节段的大小的群集、包含由所述文件的所述函数所使用的局部变量的数目的群集、和包含能够由所述虚拟堆栈机执行的所述函数的名称的群集。

在一个示例性方面中,确定能够在所述虚拟堆栈机上执行的所述文件是有害文件包括:确定所述集合MD5的所述群集的至少两个校验和匹配所述有害文件的校验和的数据库中的至少两个校验和。

在一个示例性方面中,创建所述文件的所述数据的群集根据集群规则来执行,所述集群规则包括以下中的至少一者:将所识别的所述数据以从所述文件识别所述数据的顺序布置在连续的群集中;如果所述文件节段的所述数据的大小等于零,则不使用所述文件节段的所述参数来创建所述数据的群集;如果由所述函数所使用的局部变量的数目等于零,则不使用所述文件的所述函数的所述参数来创建所述数据的群集;以及不使用从在安全文件的群集的所述数据库中识别的所述群集所识别的数据来创建所述数据的群集。

在另一个方面中,一种用于检测在虚拟堆栈机上执行的有害文件的示例性系统包括:至少一个数据库,所述至少一个数据库被配置成存储安全文件的群集和有害文件的校验和的群集;以及硬件处理器,所述硬件处理器被配置成: 从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;基于所识别的所述数据,在所述数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;至少部分地基于所识别的所述安全文件的至少一个群集,创建由所述虚拟堆栈机执行的所述文件的数据的群集;计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;访问有害文件的校验和的数据库;以及如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则确定在所述虚拟堆栈机上执行的所述文件是有害文件。

以上对示例性方面的简要概述用来提供对本发明的基本理解。该概述并不是对所有预期方面的广泛综述,并且既不旨在识别所有方面的关键要素或重要要素,也不旨在描绘本发明的任何方面或所有方面的范围。它的唯一目的是以简化形式提出一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述目的,本发明的一个或多个方面包括权利要求中所描述和特别指出的特征。

附图说明

并入本说明书并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。

图1示出根据示例性方面的用于检测虚拟堆栈机上的有害文件的系统的框图;

图2示出根据示例性方面的用于检测虚拟堆栈机上的有害文件的方法的流程图;以及

图3示出根据示例性方面的可以实现所公开的系统和方法的通用计算机系 统的示例。

具体实施方式

本文描述了用于检测在虚拟堆栈机上的有害文件的系统、方法和计算机程序产品的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将是了解本发明的优点的本领域技术人员容易想到的。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同的或类似的项目。

以下公开介绍了将用在描述所公开的系统和方法的不同方面中的若干个定义和概念。

反病毒程序-用于检测有害程序并恢复被这种程序感染(修改)的文件、以及还用于预防文件或操作系统被有害程序感染(修改)的专用程序。

安全程序-不用于未经用户批准的对信息的损坏、阻止、修改或复制或者中断计算机或计算机网络的工作的程序。

安全文件-作为安全程序的组成部分的文件。

有害程序-专门设计成用于未经用户批准的对信息的损坏、阻止、修改或复制或者中断计算机或计算机网络的工作的程序。

有害文件-作为有害程序的组成部分的文件。

虚拟机-在主机平台上模拟某一目标平台的硬件并执行用于该目标平台的程序或者需要提供平台的硬件的虚拟化并在其上创建使程序以及甚至操作系统彼此隔离的环境的软件系统或硬件系统。

虚拟堆栈机-仅以一种数据结构定位正执行的函数的所有操作数的虚拟机,称为虚拟机的堆栈。虚拟堆栈机的示例是Java虚拟机、Adobe虚拟机或公共语言执行环境.NET。

群集-数个同类要素(例如文件节段的名称)的联合,其可以被视为具有某些性能的独立单元。

集群-收集包含关于对象中的一样本的信息的数据并随后将这些对象排序成相对同类的组的过程。

校验和(散列)-通过使用特定算法(例如循环冗余码CRC32或强加密算法MD5)而针对一组数据计算的、用于在数据传输或存储期间校验数据的完整性的值。

模糊校验和(模糊散列)-针对一组数据计算的、组成针对该数据组的某些所选部分计算的校验和的集合(例如MD5或SHA256)的值。

图1示出了用于检测虚拟堆栈机上的有害文件的示例性系统的框图。通常,系统100处理可在堆栈虚拟机上执行的文件,以确定它们是否是有害的。系统100可以实现为配置成处理某些类型的文件(即,可在堆栈虚拟机上执行的文件)的反病毒应用的组件。反病毒应用可以运行在堆栈虚拟机上或物理机(例如PC或反病毒服务器)上。在后一种情况下,反病毒应用可以完全不与虚拟堆栈机相互作用,而是简单地处理从用户计算机或其它设备或服务所接收的文件。

如图所示,系统100包括文件结构分析模块110、集群模块120、校验和计算模块130、测试模块140、安全文件的群集的数据库150和有害文件的群集的校验和的数据库160。

根据一个示例性方面,文件结构分析模块110被配置成:基于例如文件扩展名(例如*.swf)或文件标题(例如“FWS”)识别可在虚拟堆栈机上执行的文件;分析识别的文件的结构;从所分析的文件识别某数据;基于从所分析的文件识别的数据而在安全文件的群集的数据库150中执行搜索群集;从在安全文件的群集的数据库150中所找到的群集识别某数据;以及向集群模块120发送从所分析的可由虚拟堆栈机执行的文件和在安全文件的群集的数据库150中所找到的群集识别的数据。

根据该示例性方面,文件结构分析模块110被配置成从所分析的文件识别某数据,该数据包括但并不限于文件节段的参数,例如代码、名称、标题类型、数据在节段中的偏移量、和节段数据的大小。此外,根据示例性方面,文件结构分析模块110还被配置成识别其它数据,该其它数据包括但并不限于可由虚 拟堆栈机执行的函数的参数,例如函数体索引、函数代码在节段中的位置和长度、函数描述符索引、在执行函数时堆栈的最大深度、由函数所使用的局部变量的数目、函数的名称、操作数的数目和可以返回的数据类型。

文件结构分析模块110使用虚拟堆栈机的操作知识和关于可在虚拟堆栈机上执行的文件的结构的信息来从所分析的文件提取数据。可在虚拟堆栈机上执行的各种文件的文件结构的这一知识可以通过分析不同文件的结构、模拟文件的某些要素(函数)并使用其它的文件分析技术来获得。

根据该示例性方面,文件结构分析模块110还被配置成,在安全文件的群集的数据库150中搜索群集。例如,搜索群集可以基于文件节段的参数,例如节段代码、节段名称、节段标题类型、数据在该节段中的偏移量、和节段数据的大小。另外,例如搜索群集可以基于可由虚拟堆栈机执行的函数的参数,例如函数体索引、函数代码在节段中的位置和深度、函数描述符索引、在执行函数时堆栈的最大深度、由函数所使用的局部变量的数目、函数的名称、操作数的数目和可以返回的数据类型。

根据一个方面,文件结构分析模块110还被配置成,根据从可由虚拟堆栈机执行的文件识别的数据,在安全文件的群集的数据库150中搜索例如包含以下值的群集:文件节段的参数中的一个参数(例如文件的节段的类型的数目)的超过给定阈值的值、和/或可由虚拟堆栈机执行的函数的参数中的一个参数(例如由该函数所使用的局部变量的数目)的超过给定阈值的值。

此外,根据该示例性方面,集群模块120被配置成,使用集群规则由从分析模块110所获得的数据创建群集,并向校验和计算模块130传输所创建的群集。

根据一个方面,集群规则包括但不限于规定例如以下内容的规则:所收集的数据应当以其从文件识别的顺序被连续地布置在群集中;如果文件的节段数据的大小等于零,则文件节段的参数不应当以群集的形式来使用;如果由函数所使用的局部变量的数目等于零,则可由虚拟堆栈机执行的函数的参数不应当以群集的形式来使用;以及从在安全文件的群集的数据库中找到的群集所识别 的数据不应当以群集的形式来使用。

根据该示例性方面,校验和计算模块130被配置成,计算从集群模块120所获得的群集的一个或多个校验和,并向测试模块140传送所计算的校验和。

根据一个方面,群集的校验和可以是由从分析模块110获得的不同类型的数据(例如文件节段的名称和可由虚拟堆栈机执行的函数的名称的集合MD5)所计算的一个或多个模糊校验和(例如,MD5或SHA256)。

根据该示例性方面,测试模块140被配置成,执行在有害文件的群集的校验和的数据库160中搜索从校验和计算模块130获得的校验和;以及在由于在有害文件的群集的校验和的数据库160中的搜索而检测到从校验和计算模块130获得的校验和的情况下检测有害文件。

根据一个方面,用于在有害文件的群集的校验和的数据库160中检测从校验和计算模块130获得的模糊校验和的条件是这样的条件:组成从校验和计算模块130所获得的模糊校验和的校验和与组成存储在有害文件的群集的校验和的数据库160中的模糊校验和的校验和相匹配的数目超过给定阈值。

以下描述提供了图2中示出的检测可由虚拟堆栈机执行的有害文件(例如检测有害文件Adobe)的系统的示例性操作。

特别是,假定为了检测有害文件已经对文件launchme.swf进行了分析,该文件launchme.swf除了包含多媒体资源(例如图片、音频和视频剪辑)外,还包含采用ActionScript3语言的代码。在该情况下,如上所述,文件结构分析模块110从文件launchme.swf识别数据以供分析。

在一个方面中,数据可以包括文件节段的参数(代码、名称和节段标题类型、数据偏移量、和节段数据的大小),例如:

code=69(FileAttributes),type=short,offset=0x14,length=0x4

code=9(SetBackgroundColor),type=short,offset=0x1a,length=0x3

code=82(DoABC),type=long,offset=0x1f,length=0x1a2e

根据示例性方面,数据可以包括包含在快闪(flash)文件(其可由虚拟堆栈机执行)中的采用ActionScript3语言的代码的函数的参数(函数体索引、函数 代码在节段中的位置和长度、函数描述符索引、在执行该函数时堆栈的最大深度、由该函数所使用的局部变量的数目、函数的名称)。例如:

Method body 1:offset=0xd24,length=0xae,method=0,

max_stack=0x3,local_count=0x1,exception_count=0x0,

init_scope_depth=0x0,max_scope_depth=0x8,trait_count=0x0.

script0$init():*

在获得数据之后,文件结构分析模块110被配置成,在安全文件的群集的数据库150中搜索这样的群集,该群集中的文件节段的一系列参数(例如代码=69,类型=短)和可由虚拟堆栈机执行的函数(例如script0$init())与从被分析的launchme.swf文件识别的节段的参数和函数相一致。

如果找到安全文件的群集,则文件结构分析模块110被配置成在安全文件的群集中识别节段的参数(代码、名称和节段标题类型、数据偏移量、和节段数据的大小),例如:

code=69(FileAttributes),type=short,offset=0x14,length=0x4

此外,文件结构分析模块110被配置成识别可由虚拟堆栈机执行的函数的参数(函数体索引、函数代码在节段中的位置和长度、函数描述符索引、在执行函数时堆栈的最大深度、由该函数所使用的局部变量的数目、函数的名称),例如:

Method body 1:offset=0xc67,length=0xae,method=0,

max_stack=0x3,local_count=0x1,exception_count=0x0,

init_scope_depth=0x0,max_scope_depth=0x8,trait_count=0x0.

script0$init():*

所识别的数据之后可以被发送到集群模块120。根据示例性方面,集群模块120可以由从分析模块110所获得的数据创建三个群集:

包含节段标题类型和节段数据的大小的群集(例如,短、0x4,短、0x17,长、0x2c,短、0x5);

包含由可由虚拟堆栈机执行的函数所使用的局部变量的数目的群集(例如,0x7、0x5、0x11、0x7、0xc、0x2、0xf、0x5、0x5、0xa);以及

包含可由虚拟堆栈机执行的函数的名称的群集(例如,cript0$init、script0$read_data、script0$inject)。

所创建的群集以数据(即,节段的参数和可由虚拟堆栈机执行的函数)从被分析的文件识别的顺序来包含这些数据,从在安全文件的群集的数据库150中找到的群集所识别的数据(它们没有包括在创建的群集中)除外。所创建的群集之后可以被发送到校验和计算模块130。

根据该示例性方面,校验和计算模块130被配置成,针对从集群模块120所接收的群集计算模糊校验和,也就是说,校验和计算模块130计算集合MD5,该集合MD5由包含节段标题类型和这些节段的大小的群集、包含由函数所使用的局部变量的数目的群集、和包含可由虚拟堆栈机执行的函数的名称的群集的MD5组成。

0xed4d37994bec687a9c31844e47928ec3

0xb07b30a8430a63ae8ef5bad369d653de

0xcaa351de76e20cff266d24b9bf9ebdc1

所计算的模糊校验和之后被发送到测试模块140。根据该示例性方面,测试模块140被配置成,在有害文件的群集的校验和的数据库160中搜索这样的模糊校验和,该模糊校验和将组成一组至少三个MD5校验和,该至少三个MD5校验和中的至少两者与从校验和计算模块130获得的模糊校验和的MD5校验和相一致。根据该示例性方面,如果找到这样的模糊和,则测试模块140将推断出所分析的文件launchme.swf是有害的。应当领会的是,所计算的与数据库160中的校验和相匹配的模糊校验和的数目可以根据系统设计者的实现设计而改变。

图2示出了根据示例性方面的用于检测虚拟堆栈机上的有害文件的方法的流程图。如图所示,初始在步骤210处,文件结构分析模块110从被分析的文件识别数据。接下来,在步骤220处,文件结构分析模块110在安全文件的群集的数据库150中执行搜索群集。如在步骤230中所示,使用集群模块120来聚集被分析的文件的群集。在步骤240处,校验和计算模块130针对所聚集的 群集计算校验和,以及在步骤250处,使用测试模块140来在有害文件的校验和的数据库150中测试校验和。最后,在步骤260处,测试模块140确定文件是否是有害的。

根据一个方面,在步骤210中,从可由虚拟堆栈机执行的被分析的文件识别数据。如上所述,可以在步骤210中从被分析的且可由虚拟堆栈机执行的文件识别的数据可以包括文件节段的参数和可由虚拟堆栈机执行的函数的参数。

接下来,在步骤220中,根据在步骤210中从被分析的且可由虚拟堆栈机执行的文件识别的数据,在安全文件的群集的数据库150中进行搜索群集,并从找到的群集识别该数据,该群集例如包含:文件节段的参数中的一个参数(例如,文件的节段的类型的数目)的超过给定阈值的值;可由虚拟堆栈机执行的函数的参数中的一个参数(例如由该函数所使用的局部变量的数目)的超过给定阈值的值。

如上所述,可从在安全文件的群集的数据库150中找到的群集识别的数据可以包括文件节段的参数和可由虚拟堆栈机执行的函数的参数。

接下来,在步骤230中,借助于集群规则,创建被分析的文件的群集。

接下来,在步骤240中,针对在步骤230中所创建的群集计算校验和。针对在步骤230中所创建的群集所计算的校验和可以是模糊校验和。针对在步骤230中所创建的群集所计算的模糊校验和是来自在步骤210中所识别的各种类型的数据(例如文件节段的名称和函数名称的集合MD5)的一组校验和(例如MD5或SHA256)。

在步骤250中,在有害文件的群集的校验和的数据库160中测试校验和。用于在有害文件的群集的校验和的数据库160中检测在步骤240中所获得的模糊校验和的条件是这样的条件:组成在步骤240中所获得的模糊校验和的校验和与组成存储在有害文件的群集的校验和的数据库160中的模糊校验和的校验和相匹配的数目超过给定阈值。

最后,在步骤260中,确定被分析的文件是否是有害的。在步骤250中在有害文件的群集的校验和的数据库160中检测到在步骤240中所获得的模糊校 验和的情况下,确定被分析的文件确实是有害的。

图3示出了根据示例性方面的可在其上实现所公开的系统和方法的通用计算机系统(其可以是个人计算机或服务器)的示例。如图所示,该计算机系统包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关的存储器。系统总线23像从现有技术已知的任何总线结构一样来实现,依次包括总线存储器或总线存储器控制器、外围总线和本地总线,系统总线23能够与任何其它的总线体系交互。系统存储器包括永久性存储器(ROM)24和随机存取存储器(random-access memory,RAM)25。基本输入/输出系统(basic input/output system,BIOS)26包括确保在个人计算机20的元件之间的信息传输的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。

个人计算机20依次包括用于数据的读取和写入的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28以及用于在可移动光盘31(例如CD-ROM、DVD-ROM和其它的光学信息介质)上读取和写入的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34而连接到系统总线23。驱动器和对应的计算机信息介质为用于存储个人计算机20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。

本发明提供了使用硬盘27、可移动磁盘29和可移动光盘31的系统的实现方式,但是应当理解的是,可以采用能够以计算机可读的形式存储数据的其它类型的计算机信息介质56(固态驱动器、闪存卡、数字盘、RAM等等),计算机信息介质56经由控制器55连接到系统总线23。

计算机20具有文件系统36,其中保持所记录的操作系统35,并且还保持额外的程序应用37、其它程序模块38和程序数据39。用户能够通过使用输入设备(键盘40、鼠标42)将命令和信息输入到个人计算机20中。可以使用其它的输入设备(未示出):麦克风、操纵杆、游戏控制器、扫描器等等。这种输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是它们可以以其它的方式连接,例如在并行端口、游戏端口或通 用串行总线(universal serial bus,USB)的帮助下得以连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等等。

个人计算机20能够在网络环境中工作,使用与一个或多个远程计算机49的网络连接。一个或多个远程计算机49也是个人计算机或服务器,如图3中所示,其具有在描述个人计算机20的性质时的上述元件的大多数或全部。其它的设备也可以存在于计算机网络中,例如路由器、网络站、对等设备或其它的网络节点。

网络连接可以形成局域计算机网络(local-area computer network,LAN)50和广域计算机网络(wide-area computer network,WAN)。这种网络用在企业计算机网络和公司内部网络中,并且它们通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,个人计算机20可以采用调制解调器54或其它的用于提供与广域计算机网络(例如因特网)的通信的模块。调制解调器54是内部设备或外部设备,通过串行端口46连接到系统总线23。应当注意的是,网络连接仅仅是示例并且不需要描述网络的准确配置,即实际上具有通过技术通信模块建立一个计算机到另一个计算机的连接的其它方式。

在各个方面中,本文所描述的系统和方法可以在硬件、软件、固件或它们的任何组合中实施。如果在软件中实施,则上述方法可以作为一个或多个指令或代码而被存储在非易失性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文所使用的术语“模块”指的是现实世界的设备、组件、或使用硬件(例如通过 专用集成电路(ASIC)或现场可编程门阵列(field-programmable gate array,FPGA))实施的组件的布置、或硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集,该指令集在被执行时将微处理器系统转换成专用设备。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分可以被执行在通用计算机(例如上文在图3中更详细描述的通用计算机)的处理器上,以及在某些情况下,模块的全部可以被执行在通用计算机的处理器上。因此,每一个模块可以以各种适合的配置来实现,而不应受限于本文所列举的任何特定的实现方式。

为了清楚起见,本文没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力可能是复杂且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。

此外,应当理解的是,本文所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文所公开的各个方面包括本文以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,许多比上面所提及的更多的修改是可行的,而不脱离本文所公开的构思。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1