限制软件更新的方法和系统

名称:

限制软件更新的方法和系统

摘要:

一种检测盗版软件的方法包括接收客户机计算机对软件更新的请求,并向客户机计算机提供要执行的测试。该测试在客户机计算机上对客户机软件应用程序执行。作为测试发现客户机软件的非法副本的结果,可对该客户机计算机拒绝软件更新。本发明可以在其中服务器向客户机传输测试程序以对软件更新请求执行的网络环境中实施。测试执行完整性核查,并且如果客户机软件被发现为非法,则拒绝对软件更新的请求。

权利要求:

1.一种在服务器处检测盗版软件的方法,其特征在于,所述方法包括; 从一客户机计算机接收对于所述客户机计算机上的软件产品的软件更新请求; 在所述服务器处确定要对所述客户机计算机中的软件执行的测试,所述测试包括可执行代码; 将所述测试发送给所述客户机计算机; 在所述客户机计算机处执行所述测试的代码; 将测试的结果发送给所述服务器以供评估,所述测试的结果被所述服务器用于确定所述客户机计算机中的软件产品是否是合法副本;以及 如果所述服务器评估表明所述客户机计算机测试失败,则对所述客户机计算机拒绝软件更新,其中,所述测试检测盗版软件。
2. 如权利要求l所述的方法,其特征在于,接收软件更新请求包括所述服务 器通过网络接收所述软件更新请求,其中,所述服务器主存盗版检测软件。
3. 如权利要求l所述的方法,其特征在于,在客户机计算机处执行所述测试 的步骤包括执行客户机软件程序的运行时间完整性核查。
4. 如权利要求3所述的方法,其特征在于,所述运行时间完整性测试包括运 行客户机软件中存在的可执行码、执行循环冗余码测试、执行散列值测试和验证数 字签名的一个或多个。
5. —种方法,包括: 从一客户机计算机接收软件更新请求;确定要对所述客户机计算机中的软件执行的测试,所述测试包括可执行代码;将所述测试代码从服务器计算机下载到所述客户机计算机,其中所述测试代 码在所述客户机计算机上执行;接收由所述客户机计算机所执行的测试的结果,所述测试的结果被所述服务 器计算机用于确定所述客户机计算机中的软件产品是否是合法副本;通过评估测试结果来确定所述客户机计算机软件产品是否被改变;以及基于所述测试结果的评估来确定是否允许软件更新。
6. 如权利要求5所述的方法,其特征在于,还包括如果所述测试的结果表明所述软件被改变,则拒绝所述软件更新。
7. —种用于检测盗版软件的系统,其特征在于,所述系统包括: 用于在服务器和客户机之间传输消息的网络;具有对客户机计算机的软件更新的服务器计算机,其中,所述服务器驻留在 所述网络上;驻留在所述网络上的客户机计算机,其中,所述客户机计算机向所述服务器 请求对客户机软件更新的更新;其中,对所述客户机软件执行一测试,所述测试包括可在所述客户机计算机 上执行的可执行软件产品测试代码;其中,经软件产品测试代码的执行后的测试结果被发送给服务器计算机以用 于确定所述客户机软件是否被盗版,并且如果所述测试结果在服务器计算机中未能 通过,则拒绝客户机软件的更新。
8. 如权利要求7所述的系统,其特征在于,所述测试是从所述服务器下载到 所述客户机计算机中的,所述测试被设计成执行客户机软件程序的运行时间完整性 核査。
说明:

限制软件更新的方法和系统

技术领域

本发明一般涉及计算机软件安全领域,尤其涉及盗版或未许可软件的检测。 背景技术

软件盗版是软件生产商的主要关注问题。大量的金钱收入损失都归因于投入 市场的软件产品的非法复制和使用。对软件产品的保护可采取许多形式。 一种流行 的形式是使用软件产品中嵌入的代码,它一般令操作被非法复制的代码变得很难。 尽管这些类型的基于软件的代码保护对抑制不熟练的软件盗窃者是有用的,然而受 良好训练的软件黑客仅仅被这类保护降低了速度。实际上,在因特网上有若干市场 上可买到的工具可用,它们可帮助软件黑客反转工程师代码,使得可设计出补丁或 其它绕道工作来克服基于软件的保护。因此,当前可用的基于软件的代码保护在防 止市场上可买到的软件的未授权使用中变得越来越低效。然而,基于软件的代码保 护的确在某一级别上能够对于盗版给予保护,并且对某些想要成为软件盗版者的人 是有效的。

因此,需要一种保护软件免受盗窃的技术,那些盗窃者充分利用了软件代码 保护概念,但也回答了聪明的盗窃者对于谁将反转工程师代码并抑制那些保护的问 题。本发明着眼于上述需求并解决了这些问题,同时还具有此处所表达的额外的优 点。

发明内容

一种检测盗版软件的方法包括接收客户机计算机对软件更新的请求,并向客 户机计算机提供要执行的测试。该测试在客户机计算机上对客户机软件应用程序执 行。作为测试的结果,客户机计算机可被拒绝软件更新,由此停止了软件盗窃的传

瑶 惯。

依照本发明的一个方面,客户机向发送测试代码到客户机的服务器请求软件 更新,客户机执行该代码并向服务器发送结果。服务器评估该结果,并且基于服务200510056253. 1

说明书第2/ll页

器通过测试对客户机软件是否合法的验证,同意对软件更新的请求或拒绝该请求。

在非服务器环境中,测试可被传送到向CD请求升级的客户机计算机上。升级请求 的同意或拒绝分别基于由客户机计算机在软件应用程序上执行的完整性测试的成 功或失败。


附图说明:

当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描 述。为说明本发明的实施例的目的,附图中示出了本发明的示例性构造;然而,本 发明不限于所揭示的具体方法和手段。附图中:

图1所示是其中可实施本发明的一个实施例的网络的框图;

图2是涉及本发明的各方面的方法的流程图;

图3是其中可实现本发明的各方面的示例性计算环境的框图。

具体实施方式 综述

基于软件的反盗版技术可通过使用添加到应用程序的反盗版代码来帮助识别 所使用的软件副本是否为合法的许可副本,来有利地使用。软件盗窃者可改变基于 软件的保护并禁用它们,以哄骗保护方案允许使用该应用程序。

本发明的一个方面是如果在应用程序的站点处的受怀疑的代码上执行了测 试,使得返回指示受怀疑的代码的完整性的结果,则会发生对这类盗版的应用程序 的合法更新的拒绝。通过测试诸如基于软件的反盗版保护等项目的正确存在和/或 功能,可对于可行的许可证的真实性作出评估。如果由主存(host)受怀疑的应用 程序的客户机计算机执行的测试失败,则代码可能已被改变,并且很可能不正确地 被许可。在这些情况下,可拒绝软件更新,由此防止了盗版代码的升级使用的延续。 防止将来的升级最终将使软件的盗版副本变得过时,并且因此降低了被盗窃的软件 副本的可用性。

本发明的示例性实施例

对于在销售给顾客的软件应用程序中安置的基于软件的保护,有三种主要类 别的攻击。第一种类别可被称为数据攻击,其中,通过改变所依赖的数据阻挠软件 保护机制,以感知一不受限制的条件。例如,如果安装在用户机器上的软件应用程

序,如试用副本,在一周或一个月内有用,因此软件保护机制在一周或一个月的到 期日之后会防止对应用程序的访问。阻挠这一保护的一种方式是输入软件保护码, 并移除或篡改定时信息(数据),使得永远不会达到超时时段。由此,盗窃者取出 了试用应用软件的时间限制许可证,并将许可证的时段非法地延长为无限期。另一 种常见的技术是在每次启动试用软件时将试用软件的定时器复位到零,由此非法地 延长了临时许可证。这些类型的攻击可被称为数据攻击。

对基于软件的反盗窃机制的第二种类别的攻击可以被称为二进制补丁。这一 常见的技术涉及软件盗窃者生成在盗版的应用程序中运作的代码,以继续起作用, 因为代码补丁阻挠了许可证测试参数。例如,如果软件的许可副本是在给定的时间 终止,或者如果使用了某些其它许可证可行性测试,则盗窃者可用软件补丁将测试 的状态设为即使在许可证过期之后仍总是被许可的。这一类型的攻击可被称为二进 制攻击。

对基于软件的反盗窃保护的第三种类型的攻击可被称为旁路密钥(bypass key)泄漏。在这一类型的攻击中,可修改通常给予企业作为场地许可证的多用户 密钥,以允许非授权的密钥持有者获取期望的应用软件的副本。一个示例是向合法 地购买密钥的企业外的个人销售旁路许可证密钥的其它传播。如果将所泄漏的密钥 和产品标识符给予其他人,那么它们可用于获取期望软件的有效副本。

—般而言,如果发现了旁路密钥泄漏类型的攻击,则可改变旁路密钥,并可 使用旧的密钥来拒绝对盗版软件的升级。这一类型的攻击分解在本领域中当前是已 知的。然而,数据类型攻击和二进制类型攻击更不容易被检测和克服。

数据和二进制类型的攻击可通过对被盗窃的应用程序的源代码运行测试来检 测。如果测试显示源代码与最初由制造商分发的代码相同,则所测试的应用程序可 被认为是可行的。然而,如果应用程序代码不同于制造商分发的代码,则代码可能 被改变。代码的改变可以是合法的,或者改变可以是指示盗版代码的篡改指示。

不与制造商原始产品相匹配的应用软件代码可能是从制造商处获取合法更新 的正常过程的结果。这些更新一般在应用程序中被反映为新版本或应用到应用程序 的服务包更新。由此,对软件应用程序代码的不同测试可能是必需的,这取决于应 用程序上所指示的版本或软件服务包。诸如循环冗余码校验、校验和或散列值等测 试必须依照应用软件的成熟级别来应用。

可执行来确定应用软件的完整性的另一类型的测试可以是执行软件应用程序 中的隐藏代码。隐藏在应用软件中的代码在应用程序有用性方面可能是休眠的(dormant),但是如果期望完整性测试,则可激活它。另一种基于软件的反盗窃 措施可以是在应用软件中插入各种数字签名。数字签名的失败可能是可能被修改来 延长对盜窃者的许可证颁发的应用程序代码的指示。在本发明的一个方面,应用程 序软件上确定其许可证完整性的测试可以在线执行。

图1描述了其中可实施本发明的各方面的网络配置100。在这一配置中,网络 20将客户机A、 B和C (分别为30、 40和50)互连到网络服务器10。尽管仅示 出了一个服务器和三个客户机,然而图1的配置仅是一个示例,更多数量的服务器, 以及更少或更多数量的客户机计算机都是可能的。在该网络配置中,服务器10可 以被指定为当被请求时向客户机计算机30、 40和50提供软件更新的服务器。

在一个较佳的实施例中,客户机计算机30、 40或50较佳地联系服务器10以 请求对驻留在客户机计算机上的软件应用程序的升级。在本发明的一个方面,服务 器10也能够提供客户机软件应用程序完整性测试代码,它可以被传输到客户机机 器并在那里执行。客户机30、 40和50然后可将测试结果发送回服务器10用于评 估。评估的结果可基于客户机正在运行盜版软件的可能性来确定是允许客户机访问 软件应用程序升级,还是拒绝升级请求。

图2是结合了本发明的各方面的示例性方法。在包括至少一个客户机和一个 服务器的系统中,该方法可由生成并发送对客户机软件应用程序的更新的请求的客 户机计算机启动(步骤210)。服务器接收对软件更新的请求,并通过向客户机计 算机发送测试来响应(步骤220)。如此处所讨论的,测试被设计成检测作为所请 求的更新的主体的客户机软件应用程序是否为合法副本。发送到客户机计算机的测 试依照所请求的特定软件更新,以及关于客户机计算机上可用的版本或服务包升级 来设计。由此,在本发明的一个实施例中,在接收了对软件升级的请求之后,可在 服务器和客户机之间作出一系列的查询,以允许服务器更充分地确认升级的范围, 并识别客户机计算机上可用的软件产品和版本。

一旦服务器确定了所请求的是软件应用程序更新的哪一类型和版本,服务器 向客户机计算机发送对应的测试代码(步骤220)。测试代码由客户机计算机接收, 然后由其执行(步骤230)。执行的测试代码检査客户机软件应用程序,并测试其 总的完整性。测试可被设计成实行客户机软件的各部分以确定代码是否被篡改,或 确定代码是否已超出了许可证。改变的代码可以是盗版的指示,而关注代码许可的 数据(如定时信息)被改变的可能性也可指示非法使用,它也可以是盗版指示。

可执行的测试在客户机计算机上执行,使得它可访问客户机软件代码的所有

方面,以试图发现主题软件应用程序是否在更新的容许之内。本发明的一方面是, 测试代码可通过客户机计算机之外的来源提供,如通过服务器提供,使得任何基于 客户机的代码无法预测要运行来验证客户机软件应用程序的完整性的测试类型。结 果是修改了客户机软件应用程序的软件盗窃者可能无法屏蔽掉他在克服软件应用 程序的许可证限制中的所有行动。在客户机计算机上运行了可执行测试之后,完整

性测试的结果被提供给服务器(步骤240)。服务器然后可开始处理测试结果(步 骤250)。

作为一个替换的实施例,客户机可发送对更新的请求(步骤210),服务器可 接收该请求(步骤221,通过虚线)。服务器可确定最适当的测试来验证客户机软 件的完整性。如上所述,在向服务器作出了升级请求之后,可在服务器和客户机之 间作出一系列的查询,以允许服务器更全面地确认升级范围并识别客户机计算机上 可用的软件产品和版本。当服务器确定了适当的完整性测试之后,服务器然后可自 己执行完整性测试(步骤231)。

使用通过步骤231或通过步骤240的途径,测试结果的处理(250)可以是广 泛的或相对直接的。广泛的处理可以是处理CRC、校验和、散列值、数字签名、 隐藏的可执行码或其它测试方法,并将它们与标准和容限进行比较,以确定测试是 失败还是通过。对客户机应用软件执行的测试产生失败或通过的状态,并将状态或 数据传递回服务器也是可能的。在任何情况下,可在步骤260测试处理的结果来看 是成功还是失败。

如果结果指示测试未失败,并且作为结果,客户机软件应用程序被认为是合 法的,则服务器被授权来提供所请求的客户机软件更新(步骤280)。如果测试失 败,则软件完整性很可能被损坏,并且拒绝所请求的软件应用程序更新(步骤270)。

在一个实施例中,由服务器提供给客户机以测试客户机软件应用程序的完整 性的测试可包括向服务器,如可从华盛顿州雷蒙德市的Microsoff公司购买的 Window^更新服务器发送时间零点信息以及加密的产品标识(PID)或产品密钥 (Pkey)。如果服务器对N次以上,如N<100,对同一 PID/Pkey组合获得了不同 的时间零点,则可得出结论,有一个以上机器正在使用同一 PID/Pkey。在这些情 况下,如上所述,客户机软件可被认为是超出许可证的范围之外操作,并且可拒绝 软件更新

在另一实施例中,基于软件的许可证实施可被构建到客户机软件应用程序中。

可在与客户机软件应用程序一起发货的不同二进制文件中实现对应的应用编程接

口 (API)。发送给客户机的测试程序可在客户机计算机上执行,并且测试程序可 调用API来获取关于特定客户机软件应用程序的信息,并将该信息发送给服务器。 相同的测试程序也可计算所选择的二进制文件的二进制散列,并将它们发送给更新 服务器。然后将这些散列值与服务器侧的表中的有效二进制散列值进行比较。如果 散列值不匹配,则二进制文件很可能被软件制造商无意地打补丁或改变。在这一实 施例中,可以有对更新服务器内部或外部的机制,只要软件制造商发行了合格的软 件更新或服务包更新,该机制就更新散列表中的条目。

在另一实施例中,诸如XrML许可证文件等有效许可证文件的散列值或实际 值可被发送到更新服务器。由于有效许可证文件或XrML许可证较不可能被改变, 因此可向更新服务器发送二进制文件的已更新散列值的较少更新。

在另一实施例中,如果请求了更新,可由更新服务器探査客户机软件应用程 序本身中的一种自审计(self-auditing)机制,它能够生成一心跳(heart-beat)序 列。更新服务器可检测或测试该心跳序列,并且该序列可由更新服务器确认。基于 确认,可如上所述地提供或拒绝请求的更新。

在另一实施例中,可向更新服务器安全地发送实际的旁路许可证密钥,完整 性测试然后可包括将真正的密钥与客户机计算机上存在的旁路许可证密钥进行比 较。以此方式,更新服务器可测试许可证密钥,并识别使用虚假的旁路许可证密钥 的客户机计算机。另外,非真实产品密钥可被检测,并与真实的产品密钥相区分, 以识别盗版客户机软件。

在本发明的非网络化环境中,如上所述的服务器侧认证机制可用作本发明中 的客户机执行的测试,并也可被集成到经签署的二进制文件中。这一二进制文件可 以与在CD上发货的离线软件包安装程序集成。在这一实施例中,客户机可购买具 有软件更新的CD。该CD上的安装程序可在升级和/或应用新更新之前调用一认证 机制来验证已安装在客户机机器上的客户机软件。如果CD提供的测试机制检测到 客户机计算机具有完整性被损坏的应用程序,则拒绝对该应用程序的更新。如果测 试机制检测到客户机软件应用程序是合法的副本,则可提供对该应用程序的更新。

示例性计箅设备

图3及以下讨论旨在提供其中可实现本发明的一个合适的计算环境的简要综 述。尽管下文描述了通用计算机,然而这只是一个示例,本发明的实施例可用其它 计箅设备来实现,如具有网络/总线互操作性和交互的客户机。由此,本发明的实 施例可在其中包含了极少或最少的客户机资源的网络主存服务的环境中实现,如, 其中客户机设备仅担当到网络/总线的接口的网络化环境,客户机设备如置于设备 中的对象或其它计算设备和对象。本质上,可储存数据或可从其检索数据的任何地 方都是合乎需要的、合适的操作环境。

尽管并非所需,本发明的实施例也可通过操作系统来实现,该操作系统由设 备或对象的开发者使用,和/或包括在应用软件内。软件可以在诸如由如客户机、 工作站、服务器或其它设备等一个或多个计算机执行的软件模块等计算机可执行指 令的通用上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据 结构等等,它们执行特定的任务或实现特定的抽象数据类型。通常,如各个实施例 中所需要的,程序模块的功能被组合或分布。此外,本领域的技术人员将理解,本 发明的各个实施例可以用其它计算机配置来实施。适合使用的其它众所周知的计箅

系统、环境和/或配置包括但不限于,个人计算机(PC)、自动售货机、服务器计

算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、可编程消费者电

子设备、网络PC、电器、灯、环境控制元件、小型机、大型机等等。本实施例也

可在其中任务由通过通信网络/总线或其它数据传输介质连接的远程处理设备执行 的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于包括存储器存 储设备的本地和远程计算机存储介质中,并且客户机节点进而可起服务器节点的作 用。

图3由此示出了其中可实现本发明的各个实施例的合适的计算系统环境的一 个示例,尽管如上文所阐明的,计算系统700仅是合适的计算环境的一个示例,并 非暗示对本发明的使用范围或功能的局限。也不应将计算环境700解释为对示例性

操作环境700中示出的任一组件或其组合具有任何依赖或需求。

参考图3,用于实现本发明的一个实施例的示例性系统包括计算机系统710 形式的通用计算装置。计箅机710的组件可包括,但不限于,处理单元720、系统 存储器730以及将包括系统存储器的各类系统组件耦合至处理单元720的系统总线 721。系统总线721可以是若干种总线结构类型的任一种,包括存储器总线或存储 器控制器、外围总线以及使用各类总线体系结构的局部总线。作为示例而非局限, 这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、 增强ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线以及外围部件 互连(PCI)总线(也称为Mezzanine总线)。计算机系统710通常包括各种计算机可读介质。计算机可读介质可以是可由 计算机系统710访问的任一可用介质,包括易失性和非易失性介质、可移动和不可 移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。 计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它 数据等信息的任一方法或技术实现的易失性和非易失性、可移动和不可移动介质。 计算机存储介质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、 电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、压縮盘只读 存储器(CDROM)、压縮盘可重写(CDRW)、数字多功能盘(DVD)或其它光 盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息 并可由计算机系统710访问的任一其它介质。通信介质通常在诸如载波或其它传输 机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据, 并包括任一信息传送介质。术语"已调制数据信号"指以对信号中的信息进行编码 的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有 线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它 无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。

系统存储器730包括以易失性和/或非易失性存储器形式的计算机存储介质, 如只读存储器(ROM) 731和随机存取存储器(RAM) 732。基本输入/输出系统 733 (BIOS)包括如在启动时帮助在计算机系统710内的元件之间传输信息的基本 例程,通常储存在ROM731中。RAM732通常包含处理单元720立即可访问或者 当前正在操作的数据和/或程序模块。作为示例而非局限,图3示出了操作系统734、 应用程序735、其它程序模块736和程序数据737。

计算机系统710也可包括其它可移动/不可移动、易失性/非易失性计算机存储 介质。仅作示例,图3示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器 741、对可移动、非易失性磁盘752进行读写的磁盘驱动器751以及对可移动、非 易失性光盘756,如CDROM、 CDRW、 DVD或其它光介质进行读写的光盘驱动 器755。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性 计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固 态RAM、固态ROM等等。硬盘驱动器741通常通过不可移动存储器接口,如接 口 740连接到系统总线721 ,磁盘驱动器751和光盘驱动器755通常通过可移动存 储器接口,如接口 750连接到系统总线721。

图3讨论并示出的驱动器及其关联的计算机存储介质为计算机系统710提供

了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图3中,示 出硬盘驱动器741储存操作系统744、应用程序745、其它程序模块746和程序数 据747。注意,这些组件可以与操作系统734、应用程序735、其它程序模块736 和程序数据737相同,也可以与它们不同。这里对操作系统744、应用程序745、 其它程序模块746和程序数据747给予不同的标号来说明至少它们是不同的副本。 用户可以通过输入设备,如键盘762和指点设备761 (通常指鼠标、跟踪球或触摸 板)向计算机系统710输入命令和信息。其它输入设备(未示出)可包括麦克风、 操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦 合至系统总线721的用户输入接口 760连接至处理单元720,但是也可以通过其它 接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器 791或其它类型的显示设备也通过接口,如视频接口7卯连接至系统总线721,视 频接口 790进而可与视频存储器(未示出)通信。除监视器791外,计算机系统也 可包括其它外围输出设备,如扬声器797和打印机796,通过输出外围接口 795连 接。

计算机系统710可以在使用到一个或多个远程计算机,如远程计算机780的 逻辑连接的网络化环境中操作。远程计算机780可以是个人计算机、服务器、路由 器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算 机系统710相关的元件,尽管在图3中仅示出了存储器存储设备781。图3描述的 逻辑连接包括局域网(LAN) 771和广域网(WAN) 773,这里示出作为示例而非 局限。这类网络环境常见于家庭、办公室、企业范围计算机网络、内联网以及因特 网。

当在LAN网络环境中使用时,计算机系统710通过网络接口或适配器770连 接至LAN 771。当在WAN网络环境中使用时,计算机系统710可包括调制解调器 722或其它装置,用于通过WAN 773,如因特网建立通信。调制解调器772可以 是内置或外置的,通过用户输入接口 760或其它适当的机制连接至系统总线721。 在网络化环境中,描述的与计算机系统710相关的程序模块或其部分可储存在远程 存储器存储设备中。作为示例而非局限,图3示出了远程应用程序785驻留在存储 器设备781中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间 建立通信链路的其它装置。

鉴于个人计算活动与因特网的交汇,已经发展并且正在发展各种分布式计算

框架。个人和商业用户同样地拥有用于应用程序和计算设备的无缝的互操作和web 激活的接口 ,使得计算活动越来越面向web浏览器和网络。

例如,可从微软公司购买的MICROSOFT® .NETM平台包括服务器、构件服 务如基于web的数据存储、以及可下载设备软件。尽管这里的示例性实施例是结 合驻留在计算设备上的软件描述的,但也可以通过操作系统、应用程序接口 (API) 或协处理器、显示设备和请求对象的任一个之间的"中间人"对象来实现本发明的 实施例的一个或多个部分,使服务可以由所有.NE,的语言和服务,以及在其它 分布式计算框架中来完成、支持或访问。

如上所述,尽管结合各种计算设备和网络体系结构描述了本发明的示例性实 施例,然而其基本概念可应用于期望实现用于非法软件的检测的技术的任何计算设 备或系统。由此,结合本发明的实施例所描述的方法和系统可应用于各种应用和设 备。尽管此处选择了示例性编程语言、名字和示例作为各种选择的代表,然而这些 语言、名字和示例并不旨在局限。本领域的普通技术人员可以理解,有许多方法来 提供实现本发明的实施例所实现的相同、相似或等效系统和方法的对象代码。

此处所描述的各种技术可以结合硬件、软件或在适当时用两者的组合来实现。 由此,本发明的方法和装置,或其某些方面或部分,可采用包含在诸如软盘、 CD-ROM、硬盘或任何其它机器可读存储介质等有形介质中的程序代码(即,指令) 的形式,其中,当程序代码被加载到诸如计算机等机器中并由其执行时,该机器变 为用于实施本发明的装置。在可编程计算机上的程序代码执行的情况下,计算装置 一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存 储元件)、至少一个输入设备以及至少一个输出设备。例如可通过使用处理API 或其类似物来使用本发明的一个实施例的信号处理服务的一个或多个程序较佳地 以高级过程语言或面向对象的编程语言来实现,以与计算机通信。然而,如有需要, 程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是已编译或已解 释语言,并与硬件实现相组合。

尽管结合各个附图的较佳实施例描述了本发明的各方面,然而可以理解,可 在不脱离本发明的情况下,使用其它类似的实施例,或对所描述的实施例作出修改 和添加,以执行本发明的相同功能。此外,应当强调,尤其是当无线网络化设备的 数量持续增长的情况下,考虑了各种计算机平台,包括手持式设备操作系统和其它 应用专用操作系统。因此,要求保护的本发明不限于任一单个实施例,而是相反,

附图:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值