CN1694031A - 限制软件更新的方法和系统 - Google Patents

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

Info

Publication number
CN1694031A
CN1694031A CN200510056253.1A CN200510056253A CN1694031A CN 1694031 A CN1694031 A CN 1694031A CN 200510056253 A CN200510056253 A CN 200510056253A CN 1694031 A CN1694031 A CN 1694031A
Authority
CN
China
Prior art keywords
software
test
client
client computers
server
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.)
Granted
Application number
CN200510056253.1A
Other languages
English (en)
Other versions
CN100461064C (zh
Inventor
C·古恩亚可迪
K·E·哈特莱利德
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1694031A publication Critical patent/CN1694031A/zh
Application granted granted Critical
Publication of CN100461064C publication Critical patent/CN100461064C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

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

Description

限制软件更新的方法和系统
技术领域
本发明一般涉及计算机软件安全领域,尤其涉及盗版或未许可软件的检测。
背景技术
软件盗版是软件生产商的主要关注问题。大量的金钱收入损失都归因于投入市场的软件产品的非法复制和使用。对软件产品的保护可采取许多形式。一种流行的形式是使用软件产品中嵌入的代码,它一般令操作被非法复制的代码变得很难。尽管这些类型的基于软件的代码保护对抑制不熟练的软件盗窃者是有用的,然而受良好训练的软件黑客仅仅被这类保护降低了速度。实际上,在因特网上有若干市场上可买到的工具可用,它们可帮助软件黑客反转工程师代码,使得可设计出补丁或其它绕道工作来克服基于软件的保护。因此,当前可用的基于软件的代码保护在防止市场上可买到的软件的未授权使用中变得越来越低效。然而,基于软件的代码保护的确在某一级别上能够对于盗版给予保护,并且对某些想要成为软件盗版者的人是有效的。
因此,需要一种保护软件免受盗窃的技术,那些盗窃者充分利用了软件代码保护概念,但也回答了聪明的盗窃者对于谁将反转工程师代码并抑制那些保护的问题。本发明着眼于上述需求并解决了这些问题,同时还具有此处所表达的额外的优点。
发明内容
一种检测盗版软件的方法包括接收客户机计算机对软件更新的请求,并向客户机计算机提供要执行的测试。该测试在客户机计算机上对客户机软件应用程序执行。作为测试的结果,客户机计算机可被拒绝软件更新,由此停止了软件盗窃的传播。
依照本发明的一个方面,客户机向发送测试代码到客户机的服务器请求软件更新,客户机执行该代码并向服务器发送结果。服务器评估该结果,并且基于服务器通过测试对客户机软件是否合法的验证,同意对软件更新的请求或拒绝该请求。在非服务器环境中,测试可被传送到向CD请求升级的客户机计算机上。升级请求的同意或拒绝分别基于由客户机计算机在软件应用程序上执行的完整性测试的成功或失败。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明的实施例的目的,附图中示出了本发明的示例性构造;然而,本发明不限于所揭示的具体方法和手段。附图中;
图1所示是其中可实施本发明的一个实施例的网络的框图;
图2是涉及本发明的各方面的方法的流程图;
图3是其中可实现本发明的各方面的示例性计算环境的框图。
具体实施方式
综述
基于软件的反盗版技术可通过使用添加到应用程序的反盗版代码来帮助识别所使用的软件副本是否为合法的许可副本,来有利地使用。软件盗窃者可改变基于软件的保护并禁用它们,以哄骗保护方案允许使用该应用程序。
本发明的一个方面是如果在应用程序的站点处的受怀疑的代码上执行了测试,使得返回指示受怀疑的代码的完整性的结果,则会发生对这类盗版的应用程序的合法更新的拒绝。通过测试诸如基于软件的反盗版保护等项目的正确存在和/或功能,可对于可行的许可证的真实性作出评估。如果由主存(host)受怀疑的应用程序的客户机计算机执行的测试失败,则代码可能已被改变,并且很可能不正确地被许可。在这些情况下,可拒绝软件更新,由此防止了盗版代码的升级使用的延续。防止将来的升级最终将使软件的盗版副本变得过时,并且因此降低了被盗窃的软件副本的可用性。
本发明的示例性实施例
对于在销售给顾客的软件应用程序中安置的基于软件的保护,有三种主要类别的攻击。第一种类别可被称为数据攻击,其中,通过改变所依赖的数据阻挠软件保护机制,以感知一不受限制的条件。例如,如果安装在用户机器上的软件应用程序,如试用副本,在一周或一个月内有用,因此软件保护机制在一周或一个月的到期日之后会防止对应用程序的访问。阻挠这一保护的一种方式是输入软件保护码,并移除或篡改定时信息(数据),使得永远不会达到超时时段。由此,盗窃者取出了试用应用软件的时间限制许可证,并将许可证的时段非法地延长为无限期。另一种常见的技术是在每次启动试用软件时将试用软件的定时器复位到零,由此非法地延长了临时许可证。这些类型的攻击可被称为数据攻击。
对基于软件的反盗窃机制的第二种类别的攻击可以被称为二进制补丁。这一常见的技术涉及软件盗窃者生成在盗版的应用程序中运作的代码,以继续起作用,因为代码补丁阻挠了许可证测试参数。例如,如果软件的许可副本是在给定的时间终止,或者如果使用了某些其它许可证可行性测试,则盗窃者可用软件补丁将测试的状态设为即使在许可证过期之后仍总是被许可的。这一类型的攻击可被称为二进制攻击。
对基于软件的反盗窃保护的第三种类型的攻击可被称为旁路密钥(bypasskey)泄漏。在这一类型的攻击中,可修改通常给予企业作为场地许可证的多用户密钥,以允许非授权的密钥持有者获取期望的应用软件的副本。一个示例是向合法地购买密钥的企业外的个人销售旁路许可证密钥的其它传播。如果将所泄漏的密钥和产品标识符给予其他人,那么它们可用于获取期望软件的有效副本。
一般而言,如果发现了旁路密钥泄漏类型的攻击,则可改变旁路密钥,并可使用旧的密钥来拒绝对盗版软件的升级。这一类型的攻击分解在本领域中当前是已知的。然而,数据类型攻击和二进制类型攻击更不容易被检测和克服。
数据和二进制类型的攻击可通过对被盗窃的应用程序的源代码运行测试来检测。如果测试显示源代码与最初由制造商分发的代码相同,则所测试的应用程序可被认为是可行的。然而,如果应用程序代码不同于制造商分发的代码,则代码可能被改变。代码的改变可以是合法的,或者改变可以是指示盗版代码的篡改指示。
不与制造商原始产品相匹配的应用软件代码可能是从制造商处获取合法更新的正常过程的结果。这些更新一般在应用程序中被反映为新版本或应用到应用程序的服务包更新。由此,对软件应用程序代码的不同测试可能是必需的,这取决于应用程序上所指示的版本或软件服务包。诸如循环冗余码校验、校验和或散列值等测试必须依照应用软件的成熟级别来应用。
可执行来确定应用软件的完整性的另一类型的测试可以是执行软件应用程序中的隐藏代码。隐藏在应用软件中的代码在应用程序有用性方面可能是休眠的(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)。
在一个实施例中,由服务器提供给客户机以测试客户机软件应用程序的完整性的测试可包括向服务器,如可从华盛顿州雷蒙德市的Microsoft公司购买的Windows更新服务器发送时间零点信息以及加密的产品标识(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内的元件之间传输信息的基本例程,通常储存在ROM 731中。RAM 732通常包含处理单元720立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图3示出了操作系统734、应用程序735、其它程序模块736和程序数据737。
计算机系统710也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图3示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器741、对可移动、非易失性磁盘752进行读写的磁盘驱动器751以及对可移动、非易失性光盘756,如CD ROM、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或其它类型的显示设备也通过接口,如视频接口790连接至系统总线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.NETTM平台包括服务器、构件服务如基于web的数据存储、以及可下载设备软件。尽管这里的示例性实施例是结合驻留在计算设备上的软件描述的,但也可以通过操作系统、应用程序接口(API)或协处理器、显示设备和请求对象的任一个之间的“中间人”对象来实现本发明的实施例的一个或多个部分,使服务可以由所有.NETTM的语言和服务,以及在其它分布式计算框架中来完成、支持或访问。
如上所述,尽管结合各种计算设备和网络体系结构描述了本发明的示例性实施例,然而其基本概念可应用于期望实现用于非法软件的检测的技术的任何计算设备或系统。由此,结合本发明的实施例所描述的方法和系统可应用于各种应用和设备。尽管此处选择了示例性编程语言、名字和示例作为各种选择的代表,然而这些语言、名字和示例并不旨在局限。本领域的普通技术人员可以理解,有许多方法来提供实现本发明的实施例所实现的相同、相似或等效系统和方法的对象代码。
此处所描述的各种技术可以结合硬件、软件或在适当时用两者的组合来实现。由此,本发明的方法和装置,或其某些方面或部分,可采用包含在诸如软盘、CD-ROM、硬盘或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器中并由其执行时,该机器变为用于实施本发明的装置。在可编程计算机上的程序代码执行的情况下,计算装置一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。例如可通过使用处理API或其类似物来使用本发明的一个实施例的信号处理服务的一个或多个程序较佳地以高级过程语言或面向对象的编程语言来实现,以与计算机通信。然而,如有需要,程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是已编译或已解释语言,并与硬件实现相组合。
尽管结合各个附图的较佳实施例描述了本发明的各方面,然而可以理解,可在不脱离本发明的情况下,使用其它类似的实施例,或对所描述的实施例作出修改和添加,以执行本发明的相同功能。此外,应当强调,尤其是当无线网络化设备的数量持续增长的情况下,考虑了各种计算机平台,包括手持式设备操作系统和其它应用专用操作系统。因此,要求保护的本发明不限于任一单个实施例,而是相反,本发明应当在依照所述权利要求书的广度和范围下解释。

Claims (15)

1.一种在服务器处检测盗版软件的方法,其特征在于,所述方法包括;
接收一客户机计算机对软件更新的请求;
确定要对所述客户机计算机中的软件执行的测试;
执行所述测试;以及
如果所述客户机计算机测试失败,则对所述客户机计算机拒绝所述软件更新,其中,所述测试检测盗版软件。
2.如权利要求1所述的方法,其特征在于,接收软件更新请求包括所述服务器通过网络接收所述软件更新请求,其中,所述服务器主存盗版检测软件。
3.如权利要求1所述的方法,其特征在于,执行所述测试的步骤包括在所述客户机和所述服务器的一个或多个上执行所述测试。
4.如权利要求1所述的方法,其特征在于,执行所述测试的步骤包括将测试从所述服务器下载到所述客户机计算机中,所述测试被设计成执行客户机软件程序的运行时间完整性核查。
5.如权利要求4所述的方法,其特征在于,所述运行时间完整性测试包括运行客户机软件中存在的可执行码、执行循环冗余码测试、执行散列值测试和验证数字签名的一个或多个。
6.一种计算机服务器,其特征在于,所述服务器包括:
一能够访问存储器的处理器;
一软件组件,所述组件具有执行检测被改变的客户机软件的方法的指令,所述方法包括:
从一客户机计算机接收对客户机软件更新的请求;
确定要对所述客户机计算机中的软件执行的测试;
执行所述测试;以及
确定所述客户机计算机软件是否被改变;
其中,所述处理器通过执行所述软件组件的指令来执行所述方法。
7.如权利要求6所述的系统,其特征在于,所述软件组件还包括如果所述客户机计算机测试失败,则对所述客户机计算机拒绝所述客户机软件更新的方法步骤。
8.如权利要求6所述的系统,其特征在于,还包括一用于从所述客户机计算机接收对软件更新的请求的网络接口。
9.如权利要求6所述的系统,其特征在于,执行所述测试的步骤包括在所述客户机计算机和所述服务器的一个或多个上执行所述测试。
10.如权利要求6所述的系统,其特征在于,执行所述测试的步骤包括将测试从所述服务器下载到所述客户机计算机中,所述测试被设计成执行客户机软件程序的运行时间完整性核查。
11.一种具有用于执行一方法的计算机可执行指令的计算机可读介质,其特征在于,所述方法包括:
从一客户机计算机接收对软件更新的请求;
确定要对所述客户机计算机中的软件执行的测试;
执行所述测试;以及
确定所述客户机计算机软件是否被改变;以及
根据所述客户机计算机测试的结果确定是否准许所述软件更新。
12.如权利要求11所述的计算机可读介质,其特征在于,所述方法还包括如果所述测试的结果表明所述软件被改变,则拒绝所述软件更新。
13.一种用于检测盗版软件的系统,其特征在于,所述系统包括:
用于在服务器和客户机之间传输消息的网络;
具有对客户机计算机的软件更新的服务器计算机,其中,所述服务器驻留在所述网络上;
驻留在所述网络上的客户机计算机,其中,所述客户机计算机向所述服务器请求对客户机软件更新的更新;以及
其中,对所述客户机软件执行一测试,其中,所述测试结果确定所述客户机软件是否被盗版。
14.如权利要求13所述的系统,其特征在于,所述测试是在所述客户机计算机和所述服务器的一个或多个上执行的。
15.如权利要求13所述的系统,其特征在于,所述测试是从所述服务器下载到所述客户机计算机中的,所述测试被设计成执行客户机软件程序的运行时间完整性核查。
CNB2005100562531A 2004-04-30 2005-03-31 限制软件更新的方法和系统 Expired - Fee Related CN100461064C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/836,409 US7331063B2 (en) 2004-04-30 2004-04-30 Method and system for limiting software updates
US10/836,409 2004-04-30

Publications (2)

Publication Number Publication Date
CN1694031A true CN1694031A (zh) 2005-11-09
CN100461064C CN100461064C (zh) 2009-02-11

Family

ID=34939280

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100562531A Expired - Fee Related CN100461064C (zh) 2004-04-30 2005-03-31 限制软件更新的方法和系统

Country Status (10)

Country Link
US (1) US7331063B2 (zh)
EP (1) EP1591865B1 (zh)
JP (1) JP4870937B2 (zh)
KR (1) KR101122950B1 (zh)
CN (1) CN100461064C (zh)
AU (1) AU2005201006B2 (zh)
BR (1) BRPI0501156A (zh)
CA (1) CA2501755C (zh)
MX (1) MXPA05003409A (zh)
RU (1) RU2375739C2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102315963A (zh) * 2011-08-11 2012-01-11 百度在线网络技术(北京)有限公司 一种验证设备系统配置变更的方法与设备
CN102346826A (zh) * 2010-07-26 2012-02-08 索尼达德克奥地利股份公司 用软件程序的合法拷贝替换非法拷贝的方法及相应系统
WO2013023481A1 (zh) * 2011-08-18 2013-02-21 腾讯科技(深圳)有限公司 软件升级系统及方法、服务器和客户端
CN103038786A (zh) * 2010-06-21 2013-04-10 惠普发展公司,有限责任合伙企业 用于测试和证明客户计算机系统上的虚拟设备的系统
CN104303148A (zh) * 2012-03-22 2015-01-21 爱迪德加拿大公司 更新软件组件
CN107423581A (zh) * 2017-07-31 2017-12-01 北京深思数盾科技股份有限公司 软件的保护方法和装置
US10318271B2 (en) 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
CN112579111A (zh) * 2020-12-30 2021-03-30 深圳市欢太科技有限公司 安装包的安装方法及装置、电子设备、存储介质

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006094117A2 (en) * 2005-03-01 2006-09-08 Mfoundry Application program update deployment to a mobile device
JP2007066271A (ja) * 2005-09-02 2007-03-15 Canon Inc 情報処理装置及びその制御方法、データ処理装置、並びにプログラム
JP4950195B2 (ja) * 2006-07-03 2012-06-13 パナソニック株式会社 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
US8117461B2 (en) * 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US7688757B2 (en) * 2006-12-29 2010-03-30 Alcatel-Lucent Usa Inc. Method and apparatus for assessing sourced elements
US7937762B2 (en) * 2007-01-15 2011-05-03 Microsoft Corporation Tracking and identifying operations from un-trusted clients
US8201231B2 (en) * 2007-02-21 2012-06-12 Microsoft Corporation Authenticated credential-based multi-tenant access to a service
CN101335746A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 保护软件系统的完整性的安全设备和方法及其系统
GB2458568B (en) * 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8578510B2 (en) * 2008-06-26 2013-11-05 Valve Corporation Anti-piracy measures for a video game using hidden secrets
US10459711B2 (en) * 2008-08-12 2019-10-29 Adobe Inc. Updating applications using migration signatures
US8095987B2 (en) * 2008-09-04 2012-01-10 Microsoft Corporation Software anti-piracy protection
JP4991668B2 (ja) * 2008-09-29 2012-08-01 株式会社東芝 コンピュータシステムおよび修正パッチ確認/適用方法
JP4711002B2 (ja) * 2009-03-26 2011-06-29 ブラザー工業株式会社 プログラム、及びライセンス登録装置
US8464249B1 (en) 2009-09-17 2013-06-11 Adobe Systems Incorporated Software installation package with digital signatures
US8359657B2 (en) * 2010-03-30 2013-01-22 Sandcastles Technology Inc. Method and apparatus for enabling secure distribution of digital content
CN103189876B (zh) * 2010-11-12 2016-09-14 惠普发展公司,有限责任合伙企业 基于第一和第二授权项来确定软件产品的授权
US8763158B2 (en) 2010-12-06 2014-06-24 Microsoft Corporation Directory service distributed product activation
JP5330565B2 (ja) * 2012-04-24 2013-10-30 株式会社東芝 コンピュータ
US20140208306A1 (en) * 2013-01-23 2014-07-24 Caterpillar Inc. Control system having automatic component software management
US9836730B1 (en) * 2013-03-14 2017-12-05 Corel Corporation Software product piracy monetization process
KR101515707B1 (ko) * 2013-07-12 2015-04-27 숭실대학교산학협력단 소프트웨어의 특징정보 기반 스마트폰 앱 불법 복제 및 표절 탐지 방법 및 그 장치
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
CN104424402B (zh) * 2013-08-28 2019-03-29 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
US9197647B2 (en) * 2013-10-21 2015-11-24 Cisco Technology, Inc. Integrity checking of a client device in a networked computer environment
KR101654973B1 (ko) * 2014-04-30 2016-09-06 단국대학교 산학협력단 소프트웨어 필터링 장치 및 방법
RU2637485C2 (ru) * 2015-12-29 2017-12-04 Эдуард Юрьевич Прудников Способ антипиратской авторизации доступа к компьютерной сети
US10831508B2 (en) * 2016-07-22 2020-11-10 Intel Corporation Embedded system application installation and execution method and apparatus
WO2018081093A1 (en) 2016-10-24 2018-05-03 Clark Carl M Software algorithm security
US10089661B1 (en) * 2016-12-15 2018-10-02 Amazon Technologies, Inc. Identifying software products to test
US10318281B1 (en) * 2017-04-06 2019-06-11 Amdocs Development Limited System, method, and computer program for upgrading software associated with a distributed, state-full system
JP6655762B2 (ja) * 2017-05-26 2020-02-26 株式会社日立国際電気 機械学習モデル不正検知システム及び不正検知方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528490A (en) * 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
JPH06309261A (ja) * 1993-04-22 1994-11-04 Mitsubishi Electric Corp ソフトウェア自動インストール方法及びソフトウェア自動バージョンアップ方法
JP3393521B2 (ja) * 1995-10-19 2003-04-07 日本電信電話株式会社 端末プログラム改ざん検出方法、および情報センタ
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6189146B1 (en) * 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6226747B1 (en) * 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) * 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
AU3781399A (en) * 1998-04-30 1999-11-16 Bindview Development Corporation Computer security
US6044471A (en) * 1998-06-04 2000-03-28 Z4 Technologies, Inc. Method and apparatus for securing software to reduce unauthorized use
US6799277B2 (en) * 1998-06-04 2004-09-28 Z4 Technologies, Inc. System and method for monitoring software
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US6986133B2 (en) * 2000-04-14 2006-01-10 Goahead Software Inc. System and method for securely upgrading networked devices
US6857067B2 (en) * 2000-09-01 2005-02-15 Martin S. Edelman System and method for preventing unauthorized access to electronic data
US7003110B1 (en) * 2000-11-14 2006-02-21 Lucent Technologies Inc. Software aging method and apparatus for discouraging software piracy
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
CN1448842A (zh) * 2002-03-31 2003-10-15 任东海 基于网络数据库的软件版权保护方法
JP2005309759A (ja) * 2004-04-21 2005-11-04 Nippon Telegr & Teleph Corp <Ntt> 電子データ提供システムと方法およびプログラム
US20070067419A1 (en) * 2005-09-19 2007-03-22 Bennett James D Dedicated client devices supporting web based service, specifications and interaction
KR100667820B1 (ko) * 2005-09-30 2007-01-12 삼성전자주식회사 보안 방법 및 시스템, 그 방법을 기록한 컴퓨터 판독가능한 기록매체
TWI273456B (en) * 2005-09-30 2007-02-11 Inventec Corp Open type network gaming system and method thereof
US7433804B2 (en) * 2005-11-04 2008-10-07 Research In Motion Limited Automated test script for communications server

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103038786A (zh) * 2010-06-21 2013-04-10 惠普发展公司,有限责任合伙企业 用于测试和证明客户计算机系统上的虚拟设备的系统
CN102346826A (zh) * 2010-07-26 2012-02-08 索尼达德克奥地利股份公司 用软件程序的合法拷贝替换非法拷贝的方法及相应系统
US9038057B2 (en) 2010-07-26 2015-05-19 Sony Dadc Austria Ag Method for replacing an illegitimate copy of a software program with a legitimate copy and corresponding system
CN102346826B (zh) * 2010-07-26 2016-04-20 索尼达德克奥地利股份公司 用软件程序的合法拷贝替换非法拷贝的方法及相应系统
CN102315963A (zh) * 2011-08-11 2012-01-11 百度在线网络技术(北京)有限公司 一种验证设备系统配置变更的方法与设备
CN102315963B (zh) * 2011-08-11 2016-04-20 百度在线网络技术(北京)有限公司 一种验证设备系统配置变更的方法与设备
WO2013023481A1 (zh) * 2011-08-18 2013-02-21 腾讯科技(深圳)有限公司 软件升级系统及方法、服务器和客户端
CN104303148A (zh) * 2012-03-22 2015-01-21 爱迪德加拿大公司 更新软件组件
CN104303148B (zh) * 2012-03-22 2018-10-19 爱迪德技术有限公司 更新软件组件
US10318271B2 (en) 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
CN107423581A (zh) * 2017-07-31 2017-12-01 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN112579111A (zh) * 2020-12-30 2021-03-30 深圳市欢太科技有限公司 安装包的安装方法及装置、电子设备、存储介质

Also Published As

Publication number Publication date
US20050246537A1 (en) 2005-11-03
RU2375739C2 (ru) 2009-12-10
EP1591865A3 (en) 2006-07-19
BRPI0501156A (pt) 2006-01-10
EP1591865B1 (en) 2016-11-02
MXPA05003409A (es) 2005-11-03
RU2005108284A (ru) 2006-10-10
EP1591865A2 (en) 2005-11-02
KR20060044773A (ko) 2006-05-16
JP2005316974A (ja) 2005-11-10
KR101122950B1 (ko) 2012-03-15
AU2005201006B2 (en) 2010-03-25
CA2501755A1 (en) 2005-10-30
CA2501755C (en) 2013-07-23
US7331063B2 (en) 2008-02-12
CN100461064C (zh) 2009-02-11
JP4870937B2 (ja) 2012-02-08
AU2005201006A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
CN100461064C (zh) 限制软件更新的方法和系统
US7908662B2 (en) System and method for auditing software usage
EP1443381B1 (en) System and method for secure software activation with volume licenses
US7236958B2 (en) Electronic software license with software product installer identifier
US7752139B2 (en) Method and system for managing software licenses and reducing unauthorized use of software
US7680743B2 (en) Software application protection by way of a digital rights management (DRM) system
AU2004200043B2 (en) Systems and methods for providing time- and weight-based flexibly tolerant hardware ID
US8510861B2 (en) Anti-piracy software protection system and method
CN100478828C (zh) 用于软件产品许可证的单次重激活方法和系统
MX2007011377A (es) Arranque seguro.
US7647639B2 (en) Methods for detecting executable code which has been altered
CN101073235A (zh) 用于分发软件许可证的系统和方法
EP1509830A2 (en) Method and apparatus for protecting information and privacy
WO2006101765A2 (en) Method for preventing unauthorized installation of a software product
US20030028780A1 (en) Software controlled device
WO1999066386A1 (en) Bait software
WO2003027864A1 (en) Systems and methods for preventing unauthorized copying of software downloaded from a remote server

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150424

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090211

Termination date: 20200331