在虚拟机上执行文件的防病毒扫描的系统和方法与流程

文档序号:11276732阅读:526来源:国知局
在虚拟机上执行文件的防病毒扫描的系统和方法与流程

本公开在本文中总体上涉及防病毒技术,并且更具体而言,涉及在虚拟机上执行文件的防病毒扫描的系统和方法。



背景技术:

传统的签名分析并非始终能够检测恶意文件(尤其是多态的病毒)以及已修改版本的恶意文件。因此,现代防病毒应用(application:应用程序)另外利用使用虚拟机的扫描。在虚拟机上执行正在扫描的文件。通过拦截由过程和操作系统(os)执行的各种程序的方式,将由于执行从文件中发起的过程从而发生的事件保存在日志内。然后,防病毒应用分析所产生的日志。该日志通常在其执行期间保存由所述过程执行的api(应用程序编程接口)函数的调用,并且还从被调用的api函数返回(通过返回地址传输控制)。通常在有限的时间间隔(高达几十秒)内,发生在虚拟机上执行文件,这是因为在虚拟机上执行文件并且由防病毒应用拦截api函数调用,明显降低文件执行速度。同时,为了防止防病毒应用检测恶意文件,黑客开始给恶意文件增加不包含任何恶意活动的代码,但是该代码具有包括需要很长时间来拦截其调用的大量api函数的循环。因此,甚至在开始执行文件代码的恶意部分之前,用于在虚拟机上执行文件的时间流逝。



技术实现要素:

分析先有技术,得出以下结论:使用先前技术是无效的,有时甚至是不可能的,本公开(即,在虚拟机上执行文件的防病毒扫描的系统和方法)弥补了先前技术的不足。

因此,根据一个方面,一种方法包括:在所述虚拟机上执行文件的第一执行(execution);在存储器内记录包括在文件的第一执行期间检测的至少一个内部事件和至少一个api函数调用的第一日志;确定是否在第一签名数据库内储存在所述第一日志中的任何签名;如果在第一签名数据库内未发现在所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现在所述第一日志内的至少一个签名,则在所述虚拟机上执行文件的第二执行,并且在存储器内记录包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否在第二签名数据库内储存在所述第二日志中的任何签名;并且如果在第二签名数据库内未发现在所述第二日志内的签名,则将所述文件归类为非恶意的。

根据另一个方面,所述方法进一步包括:如果在第二签名数据库内发现在所述第二日志内的至少一个签名,则基于所述第一日志和所述第二日志,确定做出关于api函数调用的记录的标准;在所述虚拟机上执行文件的第三执行,直到满足所确定的标准的条件;在存储器内记录包括在所述文件的第三执行期间检测的至少一个内部事件的第三日志;确定是否在恶意签名数据库内储存在所述第三日志中的任何签名;并且如果在所述恶意签名数据库内未发现在所述第三日志内的签名,则将所述文件归类为非恶意的。

根据另一个方面,做出关于api函数调用的记录的标准包括以下中的至少一个:在所述第二日志内发生具有记录序号的内部事件,用于在所述第二签名数据库内的已识别的签名的第一记录之前,在所述第二日志内发现的记录;并且在所述第二签名数据库中在所述第一日志和所述第二日志中检测签名之后,做出关于api函数调用的记录。

根据另一个方面,在所述虚拟机上执行文件的第一执行,包括执行所述第一执行一个时间段或者直到完成执行所述文件的程序代码。

根据另一个方面,所述方法包括根据由所述文件执行的指令,在所述虚拟机上的文件的第一执行期间,动态改变所述时间段。

根据另一个方面,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括内部事件的名称、系统调用的类型、以及从所述文件中发起的过程的唯一标识符。

根据另一个方面,储存在所述第一日志和所述第二日志内的所述至少一个内部事件中的每个包括从所述过程中发起的线程的唯一标识符、由所述系统调用寻址的os内核的对象的过程的唯一标识符、所述os内核的对象的线程的唯一标识符、以及通向所述os内核的对象的路径。

根据一个方面,提供了一种用于在虚拟机上执行文件的防病毒扫描的系统。根据该方面,所述系统包括:第一签名数据库;第二签名数据库;存储器;以及处理器,其被配置成:在所述虚拟机上执行文件的第一执行;在存储器内储存包括在文件的第一执行期间检测的至少一个内部事件和至少一个api函数调用的第一日志;确定是否在第一签名数据库内储存在所述第一日志中的任何签名;如果在第一签名数据库内未发现在所述第一日志内的签名,则将所述文件归类为非恶意的;如果在第一签名数据库内发现在所述第一日志内的至少一个签名,则在所述虚拟机上执行文件的第二执行,并且在存储器内储存包括在所述文件的第二执行期间检测的至少一个内部事件的第二日志;确定是否在第二签名数据库内储存在所述第二日志中的任何签名;并且如果在第二签名数据库内未发现在所述第二日志内的签名,则将所述文件归类为非恶意的。

示例方面的以上简化的发明内容用于提供本公开的基本理解。该发明内容并非所有预期方面的广泛概述,并且旨在不识别所有方面的关键或重要元件,也不描述本公开的任何或所有方面的范围。其唯一目的在于,通过简单的形式呈现一个或多个方面,作为对以下公开内容的更详细描述的序言。为了实现以上目的,本公开的一个或多个方面包括在权利要求中描述并且示例性指出的特征。

附图说明

包含在本说明书内并且构成本说明书的一部分的附图示出了本公开的一个或多个示例方面,并且与详细描述一起用于解释其原理和实现方式。

图1示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的系统的方框图;

图2示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的方法的流程图;

图3示出了通过第一日志的记录补充第二日志的一个示例;

图4示出了组合这三个日志的一个示例;

图5示出了可以在其上实现所公开的系统和方法的通用计算机系统的一个示例;

图6示出了呈现可疑活动的示例的表2。

具体实施方式

在系统、方法以及计算机程序产品的背景下,在本文中描述示例方面,用于在虚拟机上执行文件的防病毒扫描的系统和方法。技术成果为检测包含恶意文件的程序代码做好了准备,在虚拟机上执行该文件时,该程序代码损害所述恶意文件的检测。本领域的技术人员会认识到,以下描述仅仅是说明性的,在任何情况下并非旨在具有限制性。受益于本公开的利益的本领域中的技术人员容易想到其他方面。现在,详细参考在附图中示出的示例方面的实现方式。相同的参考标号在整个附图和以下描述中可能的程度上用于表示相同或相似的项目。

图1示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的系统的方框图。如图所示,系统包括防病毒应用101,其被设计成在虚拟机102上执行文件104。在一个示例性方面,在虚拟机102上执行操作系统(os)103,其中,轮流发生文件104的执行。在虚拟机102上执行文件104期间,连接至防病毒应用101的日志模块105输入在api函数调用上的记录(在日志内保存这些记录)以及在第一日志110、第二日志111以及第三日志112中的内部事件。下面更详细地描述在日志110-112之间的差异。

根据示例性方面,内部事件是在执行过程中从文件104向os内核103发起的过程的系统调用。在一个示例性方面,通过拦截系统调用,并且还通过使用os内核通知机构,并且通过将防病毒应用的驱动器嵌入os驱动器堆栈(例如,文件系统堆栈或网络驱动器堆栈)内,可以获得关于内部事件的信息。通过从先有技术已知的技术(例如,欺骗系统调用的地址),可以进行系统调用的拦截。

在一个示例性方面,将关于api函数的返回、windowsntnativeapi函数的直接调用以及windowsntnativeapi函数的返回的记录以及关于断开或者重新启动计算机系统的事件的信息另外输入第一日志110和第三日志112内。

在一个示例性方面,关于api函数调用的第一日志110和第三日志112的每个记录包含以下信息:

所调用的函数的名称;

从文件104中发起的过程的唯一标识符(过程标识符pid);

从所述过程中发起的线程的唯一标识符(线程标识符tid);

所述函数的这组自变量(arguments)。

在另一方面,api函数的自变量可以是数据阵列(例如,可执行文件、动态链接库等)的某个指示器。在这种情况下,这种文件的指示器可以保存在单独的数据日志130内。在另一个示例性方面,api函数的自变量可以是这种数据阵列的内容,该内容将储存在数据日志130内。

在一个方面,内部事件是从文件104向操作系统内核发起的过程的系统调用,用于与至少一个以下对象合作:网络、注册表、文件系统、ram以及过程和线程。

在一个示例性方面,关于内部事件的每个日志110-112的每个记录可以包含以下信息:

内部事件的名称;

系统调用的类型;

从文件104中发起的过程的唯一标识符。

在另一个示例性方面,关于内部事件的每个日志110-112的每个记录另外包含以下信息:

从所述过程中发起的线程的唯一标识符;

由所述系统调用寻址的os内核的对象的过程的唯一标识符;

os内核的所述对象的线程的唯一标识符;

通向os内核的所述对象的路径。

表1呈现了关于内部事件的记录的示例。例如,第一记录描述了以下内部事件:标识符为“pid”的过程删除了注册码(registrykey)“密钥(key)”。

表1:内部事件

图2示出了根据一个示例性方面的用于在虚拟机上执行文件的防病毒扫描的方法的流程图。如图所示,在步骤201中,防病毒应用101在虚拟机102上执行文件104。在执行期间,日志模块105连续记录在第一日志110中的api函数调用和内部事件。第一日志110包含关于api函数调用的至少一个记录以及关于内部事件的至少一个记录。发生在虚拟机102上的文件104的执行,直到发生以下一个事件为止:规定的执行时间段(例如,由管理员或防病毒应用101规定)到期,或者完成文件104的程序代码的执行(即,到达程序代码的最后指令,给os传输控制,或发生了错误)。

如上所述,在虚拟机上执行文件的时间可以限于规定的时间段。在一个示例性方面,该时间段可以由管理者预先规定。在另一个示例性方面,该时间段可以由管理者或者由防病毒应用101基于其他文件在虚拟机上的防病毒扫描的统计规定。例如,可以规定该时间段,使得通过所用的方法检测在文件内的恶意代码的概率高于规定的阈值,例如,95%。即,在该示例中,如果在未限制的时间段内在虚拟机上执行文件时,检测在文件104内的恶意代码,则在限制的时间段内在虚拟机102执行期间检测同一个文件内的恶意代码的概率是95%。

在另一个示例性方面,根据文件所执行的指令,在虚拟机上执行文件期间,该时间段可以动态改变。例如,在文件的程序代码的文件开始时,可以发现“睡眠(时间)”函数,这在时间“时间”内停止执行后续文件代码。在这种情况下,该时间段可以增加时间“时间”。

而且,如果在经过规定的时间段之前执行文件104的程序代码,则也完成虚拟环境102的执行。

例如,通过在存储器内以及在硬盘上改变在os的系统库内的代码,可以做出关于api函数调用的记录。从在可执行文件输入表中的库中和/或使用“临时”库代替原始库,人们还可以使用涉及改变api函数的调用的地址的方法,结果,在从原始库中传递给原始调用的api函数之前,将对“临时”库进行原始寻址。而且,通过由在物理存储器内的处理器跟踪程序代码的执行,可以对api函数的调用做出记录,如在美国专利9,116,621中所述,该专利的全部内容通过引证结合于此。

然而,在处理api函数调用期间,所有现有方法在某种程度上降低了在虚拟机上执行文件的速度。例如,如果程序代码包含具有大量迭代的循环(在该循环内,发现api函数调用),则这种循环的处理将花费时间,相当多的时间,这限制了在虚拟机102上执行文件104,并且部分处理该循环。这种循环的存在证明存在损害文件的分析的代码,因此,这种文件可能是恶意的。在虚拟机上执行循环迭代的时间可能相当长(从几十秒到几十分钟),尤其在需要扫描大量文件时。在本发明中,在发现这种循环之后,在虚拟机上进行文件的重复运行,而不对api函数调用做记录。因此,在虚拟机上重复运行期间执行文件的速度仅仅略微小于在实际计算机上执行文件的速度。

即,在步骤202中,连接至防病毒应用101的扫描模块106在第一日志110内发现储存在第一类型120的签名数据库内的第一类型的签名(进行搜索)。第一类型的签名(防病毒记录)包括包含关于api函数调用的信息的不少于两个记录。在示例性方面,第一类型的签名另外包含记录,这些记录反过来包含关于内部事件的信息。根据一个方面,第一类型的签名包含记录,其具有关于在至少两个迭代的循环内重复的一个或多个api函数的调用的信息。在另一个示例性方面,循环的迭代数量应高于管理员所规定的有限迭代数量。通过在第一日志110内搜索在第一类型的签名的记录与第一日志110的记录之间的匹配,进行第一类型的签名的检测。如果在步骤202中未发现匹配,则在步骤203a中完成该方法的工作,并且文件104将不被视为恶意的。

在一个示例性方面,日志模块105在虚拟机102上的操作系统103内实现。在另一个示例性方面,防病毒应用101是日志模块105的元件,并且也在虚拟机102上的os103内实现。在另一个示例性方面,扫描模块106是防病毒应用101的元件。在另一个示例性方面,扫描模块106是日志模块105的元件。

在一个示例性方面,第一类型的签名包含负责网络活动的api函数(例如,函数“internetgetconnectedstate”和“internetopenurl”)的调用的记录。

应注意的是,签名不仅可以包含日志110-112的记录,而且可以包含需要检查的各种条件,以便识别签名。日志110-112的记录可以包含这种条件。

例如,在一个示例性方面,第一类型的签名可以另外包含标志,该标志表示第一日志没有关于负责完成预先打开的网络活动的api函数(例如,没有函数“internetclosehandle”)的调用的记录。在该示例中,在检测第一类型的签名时,进行额外检查,以看看标志是否等于整体(unity),即,是否满足上述条件。

在一个示例性方面,第一类型的签名另外包含规则,据此,来自api函数的以下列表的在第一日志110内的记录的数量:“gettickcount”、“sysallocstring”、“_wcsnicmp”、“lcmapstring”、“wcschr”、“cotaskmemfree”、“iswalpha”、“iswalnum”、“comparestring”、“getcurrentthreadid”、“_wcsicmp”超过预定数量(例如,在第一日志110内的所有记录的一半)。合法软件通常很少调用上述api函数。然而,恶意软件可以给这种函数执行大量调用,以阻止防病毒应用的扫描。

如果在日志110中检测了第一类型的签名,则在步骤203中,在虚拟机102上重复执行软件104。在重复执行期间,日志记录105做出仅仅关于在第二日志111内的内部事件的记录。在虚拟机102上运行软件104的重复执行,直到发生以下事件中的一个:规定的执行时间段到期,或者完成文件104的程序代码的执行。

如上面已经解释的,在步骤203中在虚拟机102上执行文件104的速度大于在步骤201中在虚拟机102上执行文件104的速度。因此,如果在规定的时间段流逝时,文件104的执行中断,则与在步骤201中相比,在步骤203中执行文件104的程序代码的较大数量指令。

应注意的是,在大部分情况下,在步骤201和步骤203中,第一和第二日志110-111中记录的内部事件相配。内部事件由在os内的文件104的api函数调用引起,并且以在其执行过程中文件104的性能为特征。

图3示出了根据一个示例性方面的通过第一日志110的记录补充第二日志111的一个示例。具体而言,如果第一日志110包含关于api函数调用的n1个记录以及关于内部事件的m1个记录(总共n1+m1个记录),而第二日志111包含关于内部事件的m2个记录,则m2≥m1,并且第一日志110的全部m1个记录与第二日志111的前m1个记录匹配。因此,通过用第一日志110的所有n1+m1个记录代替第二日志111的前m1个记录,可以进行第二日志111的补充。最后,补充的第二日志111的所产生的记录的数量包含n1+m2个记录,其中,n1是关于api函数调用的记录并且m2是关于内部事件的记录。

在一个示例性方面,在步骤202中,可以使用补充的第二日志,进行第一类型的签名的搜索,上面描述了其产生方法。

在步骤204中,扫描模块106在第二日志111中从第二类型121的签名的数据库中识别第二类型的签名。第二类型的签名包含关于内部事件的不少于两个记录。

在一个示例性方面,第二类型的签名可以包含(例如)负责通过系统注册表、网络活动、创建新文件以及删除从其中发起这些过程的可执行文件的过程来改变启动列表的内部事件的记录。关于内部事件的记录通常不允许精确地确定恶意文件。然而,内部事件的分析允许以很大可能性表明文件可能是恶意的。为了做出最终裁决,还需要关于api函数调用的信息。

因此,如果在步骤204中,未发现第二类型的签名,则文件104被视为非恶意的,并且在步骤203а中完成该方法。否则,该方法继续,并且需要在虚拟机102上执行文件104的第三执行。在文件104的第三执行的过程中,首先,仅仅做出关于内部事件的记录,然后,在发生某些条件(标准)时,也做出关于api函数调用的记录,这能够更精确地确定文件104是否是恶意的。

例如,在步骤205中,防病毒应用101基于第二日志111和第一日志110确定用于做出关于api函数调用的记录的标准。例如,用于做出关于api函数调用的记录的标准可能是以下条件:在第二日志111内发生具有记录序号的内部事件,在第二类型的已识别的签名的第一记录之前,在第二日志111内发现该记录。在另一个示例中,用于做出关于api函数调用的记录的标准可以是在第一日志110和第二日志111中检测第二类型的签名之后做出关于api函数调用的记录。

在步骤206中,防病毒应用101在虚拟机102上执行文件104的第三执行,并且在执行文件104期间,日志模块105在第三日志112内记入仅仅关于内部事件的记录,直到满足做出关于api函数调用的记录的标准的条件的时间,随后,关于api函数调用的记录开始输入第三日志112内。而且,与在步骤201和203中一样,在步骤206中文件104的执行直到发生以下事件中的一个时出现:规定的执行时间段到期,或者完成文件104的程序代码的执行。

结果,在步骤207中,通过使用恶意签名122的数据库,在第三日志112中识别恶意签名,扫描模块106执行文件104的防病毒扫描。每个恶意签名包含至少一个记录,该记录反过来至少包含关于api函数调用或内部事件的信息。在至少第三日志内发现上述签名时,该文件被视为恶意的。

在本发明的背景下,可疑活动表示基于关于api函数调用和内部事件的日志110-112的记录借助于防病毒应用101获得的事件。即,可疑活动限定由于调用包含在第一日志110内的相应api函数所执行的活动。

图6示出了表2,该表提出了可疑活动的示例。如图所示,例如,在表2中的第一条目包含关于可疑活动自动运行的信息,包含以下字段:唯一过程标识符(pid)、唯一线程标识符(tid)、注册码(registry_key)的名称;通向加入自动启动的文件(target_file)的路径;通向发起执行活动的过程的文件的路径(image_path)。该可疑活动描述了从“image_path”中发起的过程,该过程将文件“target_file”加入自动启动(注册码“registry_key”)中。在表2中呈现这种可疑活动的具体示例。在一个示例性方面,第二类型的签名另外包含关于可疑活动的记录。

表3(下面示出的)示出了恶意签名的示例。需要恶意签名,以便确定调查的文件104是否是恶意的。在一个示例性方面,签名的结构可以包含签名的记录、适用于规定的记录的规则、以及搜索区域(其中将发生规定的签名的搜索的一个或多个日志),其中,将发生规定的签名的搜索。签名的记录可以包含特定的api函数调用或特定的内部事件以及关于api函数调用或内部事件的部分信息。例如,签名记录可以包含正规表达式。因此,在记录a)中,字符“?”表示任何规定的字符可以代替在记录中的问号。

例如,将在第三日志112中进行第一签名的搜索。对于该方面,扫描模块106将在第三日志112中搜索签名a)到d)的记录,并且如果根据签名的规则,它们都包含在第三日志112内,则文件104被视为是恶意的。因此,记录a)表示通过过程复制其本身。在日志内发现api函数(该函数的自变量包含字符串“.exe/**installservice”)的调用时,将发现记录b)。记录c)具有相似的意义。记录d)表示日志应包含api函数调用“deletefile(“$selfpath\\$selfname.exe”)”,其中,“$selfpath”是通向文件的路径,并且“$selfname.exe”是文件的名称。

在表3中的第二签名包含与第一签名相同的记录,但是规则更广泛,组合的日志应包含至少任何三个记录a)到d)。通过组合这三个日志110-112的记录,获得组合的日志,并且下面进一步详细描述。

表3:恶意签名的示例

如上所述,在虚拟机102上的文件104的每个执行期间,输入任何一个日志110-112内的内部事件相同,与输入关于api函数调用的记录无关。因此,在一个示例性方面,所有三个日志110-112可以组合,以获得关于在虚拟机上执行文件的最完整的信息,并且在步骤207中,通过在组合的日志中找出恶意签名,执行文件的防病毒扫描。

在一个示例性方面,在步骤207中,另外在储存在数据日志130内的数据阵列上执行防病毒扫描。可以使用签名分析、启发式分析或者文件的防病毒扫描的其他已知方法,进行该防病毒扫描。

在一个示例性方面,在步骤201中,借助于防病毒应用101,保存在虚拟机102上完成执行文件104之后操作系统的第一存储器转储(dump)。在步骤203中,借助于防病毒应用101,保存在虚拟机102上完成执行文件104之后os的第二存储器转储。在步骤206中,保存在虚拟机102上完成执行文件104之后os的第三存储器转储。

在一个示例性方面,在步骤207中,另外,通过在一个或多个保存的os存储器转储中发现恶意签名,可以进行文件的防病毒扫描的执行,而在规定的示例中,恶意签名包含一个或多个从os存储器转储的记录。

在另一个示例性方面,在步骤207中,仅仅通过在一个或多个保存的os存储器转储中发现恶意签名,可以进行文件的防病毒扫描的执行,而在规定的示例中,恶意签名包含来自os存储器转储的字符串。下面的表4呈现了利用存储器转储和日志110-112的恶意签名的示例。

表4:恶意签名的示例

图4呈现了这三个日志的组合的示例。例如,第一日志110可以包含关于api函数调用的n1记录以及关于内部事件的m1个记录(总共n1+m1个记录)。而且,第二日志111可以包含关于内部事件的总共m2个记录(m2≥m1),并且第一日志110的所有m1个记录与第二日志111的前m1个记录匹配,并且还与第三日志112的前m1个记录匹配。同样,通过用第一日志110的关于api函数调用以及关于内部事件的n1+m1个记录代替在第三日志112内的这些m1个记录,获得组合的日志。

最后,第三日志112包含关于api函数调用的n2个记录以及关于内部事件的m3个记录(总共n2+m3个记录)。关于内部事件的规定的m3个记录对应于在第二日志111内的关于内部事件的m3个记录。在m3个记录之后的第二日志111可以包含在组合的日志的最后增加的关于内部事件的另一个数量的记录。

因此,在开始时,组合的日志包含关于api函数调用和内部事件的n1+m1个记录,接下来,包含仅仅关于内部事件的m2-m1-m3-m4个记录,然后,包含关于api函数调用和内部事件的n2+m3个记录,最后,包含关于内部事件的m4个记录。

图5示出了根据一个示例方面的可以在其上实现公开的系统和方法的通用计算机系统(可以是个人电脑或服务器)的一个示例。例如,计算机系统20可以对应于一个或多个保护服务器120或瘦客户端110。如图所示,计算机系统20可以包括中央处理单元21(虽然并非用于瘦客户端110)、系统存储器22、以及连接各种系统元件(包括与中央处理单元21相关联的存储器)的系统总线23。系统总线23与从现有技术中已知的任何总线结构一样实现,反过来包括总线存储器或总线存储器控制器、外围总线以及局部总线,所述总线能够与任何其他总线架构相互作用。系统存储器包括只读存储器(rom)24和随机存取存储器(ram)25。基本输入/输出系统(bios)26包括确保在个人电脑20的元件之间传递信息的基本程序,例如,在使用rom24装载操作系统时的基本程序。

个人电脑20反过来包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于在可移动光盘31(例如,cd-rom、dvd-rom以及其他光学信息介质)上读取和写入的光驱30。硬盘27、磁盘驱动器28以及光驱30分别通过硬盘接口32、磁盘接口33以及光驱接口34连接至系统总线23。驱动器和对应的计算机信息介质是电力无关的模块,用于储存个人电脑20的计算机指令、数据结构、程序模块以及其他数据。

本公开提供使用硬盘27、可移动磁盘29以及可移动光盘31的系统的实现方式,但是应理解的是,可以使用通过控制器55连接至系统总线23的其他类型的计算机信息介质56,这些介质能够通过计算机可读的形式(例如,固态驱动器、闪存卡、数字磁盘、随机存取存储器(ram)等)储存数据。

计算机20具有文件系统36,其中保持记录的操作系统35,并且还具有额外的程序应用37、其他程序模块38以及程序数据39。用户能够使用输入装置(键盘40、鼠标42)将命令和信息输入个人电脑20内。可以使用其他输入装置(未示出):麦克风、控制杆、游戏控制器、扫描仪等。这种输入装置通常通过反过来连接至系统总线的串行端口46插入计算机系统20内,但是可以通过其他方式连接,例如,借助于并行端口、游戏端口或者通用串行总线(usb)。显示器47或其他类型的显示装置也通过接口(例如,视频适配器48)连接至系统总线23。除了监视器47,个人电脑还可以装有其他外围输出装置(未示出),例如,扬声器、打印机等。

个人电脑20能够使用与一个或多个远程计算机49的网络连接在网络环境内操作。在描述个人电脑20的性质时,远程计算机(或多个远程计算机)49也是具有大部分或所有上述元件的个人电脑或服务器,如图5所示。还可以在计算机网络内具有其他装置,例如,路由器、网络站、对等装置或其他网络节点。

网络连接可以形成局域计算机网络(lan)50(例如,有线和/或无线网络)和广域计算机网络(wan)。这种网络用于企业计算机网络和内部公司网络内,并且它们通常接入互联网。在lan或wan网络中,个人电脑20通过网络适配器或网络接口51连接至局域网50。在使用网络时,个人电脑20可以使用调制解调器54或其他模块,用于提供与广域计算机网络(例如,互联网)的通信。作为内部或外部装置的调制解调器54由串行端口46连接至系统总线23。应注意的是,网络连接仅仅是示例,不需要描述网络的精确配置,即,实际上,具有其他方式来建立一个计算机通过技术通信模块(例如,蓝牙)与另一个计算机的连接。

在各个方面,可以在硬件、软件、固件或其任何组合中实现在本文中描述的系统和方法。如果在软件中实现,则这些方法作为一个或多个指令或代码储存在永久性计算机可读介质上。计算机可读介质包括数据存储器。通过示例,并非通过限制的方式,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom、闪速存储器、或其他类型的电、磁或光储存介质、或可以用于通过指令或数据结构的形式携带或储存期望的程序代码并且可以由通用计算机的处理器访问的任何其他介质。

如上所述,在各种方面,在本公开中描述系统和方法的模块。重申在本文中使用的“模块”表示使用硬件(例如,专用集成电路(asic)或现场可编程门阵列(fpga))或者作为硬件和软件的组合(例如,微处理器系统和用于实现模块的功能的一组指令,(在执行的同时)这组指令将微处理器系统转换成专用装置)实现的真实装置、元件或元件的设置。模块还可以作为这两者的组合来实现,具有单独由硬件促进的功能以及由硬件和软件的组合促进的其他功能。在某些实现方式中,可以在通用计算机(例如,在上面图3中更详细地描述的通用计算机)的处理器上执行至少一部分并且在某些情况下所有模块。因此,每个模块可以通过在各种合适的配置中实现,并且不应限于在本文中例证的任何示例实现方式。

为了清晰起见,在本文中并未公开这些方面的所有日常特征。要理解的是,在本公开的任何实际实现方式的开发中,必须做出多个实现方式特有的决定,以便实现开发人员的特定目标,并且这些特定目标根据不同的实现方式和不同的开发人员而不同。要理解的是,这种开发工作可能复杂并且耗时,但是对于受益于本公开的本领域的技术人员,仍然是日常的工程事业。

而且,要理解的是,在本文中使用的措辞或术语用于描述而非限制的目的,使得本申请的术语或措辞由本领域的技术人员结合相关领域的技术知识根据在本文中提出的教导内容和指导来解释。而且,并非旨在将在说明或权利要求中的任何术语归属于罕见的或特殊的意义,除非这样明确陈述。

在本文中公开的各个方面包括在本文中通过说明的方式提及的已知模块的现有和未来的已知等同物。而且,虽然示出和描述了各个方面和应用,但是对于受益于本公开的本领域的技术人员,显然,在不背离在本文中公开的发明概念的情况下,可以具有比上面提及的修改更多的修改。

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