用软件程序的合法拷贝替换非法拷贝的方法及相应系统的制作方法

文档序号:6429584阅读:266来源:国知局
专利名称:用软件程序的合法拷贝替换非法拷贝的方法及相应系统的制作方法
技术领域
本发明涉及用软件程序的合法拷贝替换非法拷贝的方法、相应系统以及存储在非暂时介质上的软件补丁(patch)。
背景技术
软件程序的非法拷贝的使用不仅侵犯版权,而且严重影响到软件生产商和软件开发商,因为他们将会因他们的知识产权被非授权分发而失去很多利益。因此,已经开发出多种技术,这些技术识别软件程序的非法拷贝并且然后禁止软件程序的某些特性,例如,更新功能或者在线播放,或者防止对软件程序的全部使用。然而,对于这些已知的技术,仅能够阻止软件程序的非法拷贝的用户使用此非法拷贝,或者至少降低了软件程序的可用性。

发明内容
因此,需要提供一种将软件程序的非法拷贝的用户改变成软件程序的合法拷贝的用户的方法和系统。此目的通过根据权利要求1的用软件程序的合法拷贝替换非法拷贝的方法、根据权利要求13的相应的系统以及根据权利要求15的软件补丁来达成。其他的实施例被定义在从属权利要求中。本发明的进一步的细节将通过考虑附图以及随后的描述而变得很明显。


图1示出本发明的一实施例的示意性步骤;图2示出根据本发明的一实施例的系统的示意性框图;图3示出根据本发明的又一实施例的系统的示意性框图;以及图4示出本发明的另一实施例的示意性框图。
具体实施例方式下面描述本发明的实施例。重要地,注意,下面所描述的所有实施例及其他们的特性和技术特征可以任意方式组合,即,不存在这样的限制某些所描述的实施例、特性和技术特征不能与其他的组合。在图1中,示出了根据本发明的一实施例的方法步骤,此方法步骤在结合图2中所示的系统的实施例描述时可能会更容易理解。在步骤SlOO中,从存储在一计算机202的存储介质上的第一软件程序200的特性确定出元数据,例如通过元数据确定单元204来确定。元数据可以通过确定第一软件程序 200文件的哈希值或者例如考虑该软件程序的版本号或第一软件程序的建立时间戳、语言、 数字签名而被确定。术语“计算机”也指包括微处理器的设备,例如,可以分发软件程序的非法拷贝的控制台、手持设备、蜂窝电话或个人计算机。存储介质可以是本地驱动器、网络驱动器、磁盘或存储器驱动器。哈希功能是任意的定义完好的过程或者数学函数,其将大小可能改变的大量数据转换成小数据,通常为单精度整数(single integer)。哈希函数返回的值被称为哈希值、哈希代码、哈希和、检验和,或简单地称为哈希。此函数可在软件程序200中被执行以计算来自软件程序200的主要的可执行或者任何其他的(一个或多个)文件的哈希值。所使用的元数据应当反映当软件程序的非法拷贝被制作时该软件程序发生了改变的特征。例如,当非法拷贝被生成时,软件程序的版权保护部分可能被移除,从而使得非法软件程序可被自由分发。版权保护部分可以是版权保护或数字权利管理模块、封套或层。 除此之外,软件程序的非法拷贝通常使得文件被移除或被压缩,使得数字签名被移除或者另外添加了文件。例如,对于各个软件程序,版权保护部分可包括个别的客户项目应用(customer project application,CPA)号。为了识别用于不同领域或语言的软件程序的不同版本,还可以使用交易号。在本发明的一些实施例中,当版权保护仍存在时,即当软件程序的合法拷贝或版本被使用时,通过利用应用编程接口(API),CPA和交易号二者都可用。然而,当版权保护被去除了时,相应的API将返回不同的号或根本不返还值。因此,CPI连同交易号一起可用作区分非法拷贝和合法拷贝的元数据。例如,软件程序与影片介绍一起以无损视频格式被存储,通常对于软件程序的非法拷贝,这样的视频文件利用允许更高压缩的视频格式被重新编码以减小软件程序的大小从而以便更容易地在线分发。这样的多媒体文件(即,电影、音频、纹理)的大小以及改变后的哈希值可被用作区分软件程序的合法拷贝和非法拷贝的元数据。例如,软件程序与类似自述文本文件等的文件一起。通常,对于软件程序的非法拷贝,这样的文件被全部移除,但是添加了其他文件。软件程序的安装文件夹中的这些文件结构的改变也可被考虑作为元数据。例如,软件库和软件程序的可执行部分(即,dll文件)嵌入了称为资源的数据, 这些资源是只读的并且通常在软件程序编译期间被设置。每个资源有类型和名称,类型和名称可以是数字标识符或串。对于软件程序的非法拷贝,这些值通常会被改变。软件程序的资源的值也可被考虑作为元数据。例如,软件库和软件程序的可执行部分(即,dll文件)可以是被数字签名的。此签名是由软件程序的开发者或发布者施加的。签名是用于证明数字消息或文档的真实性的数学图示。有效的数字签名给出了相信此消息或内容是由知道的发送方创建的并且其在转送中未被改变的接受理由。签名可相比于图章,并且对于软件程序的非法拷贝,如果软件库或软件程序的可执行部分被改变了,则签名将被破坏。这样的签名的存在性和完整性也可被考虑作为元数据。软件程序可以是软件应用,例如类似字处理程序、表单计算程序或者游戏应用。元数据确定单元204可以是单独的单元,或者可以被包括在第一软件程序200中。还可以由第三方软件应用206来确定第一软件程序200的元数据,第三方软件应用206例如是游戏平台、抗病毒软件或者操作系统软件或软件库。在步骤S102,检查所确定的第一软件程序200的元数据是否与合法拷贝的元数据相对应,例如,是否等同于合法拷贝的元数据。合法拷贝的元数据可被存储在第一短剑程序200中,或者可被提供作为存储在本地或远程数据表中的服务。例如,合法拷贝的元数据可被存储在第一服务器208中,其中确定出的第一软件程序200的元数据将被发送给第一服务器208。如果从第一软件程序200的特性确定出的元数据不与合法宝贝的元数据相对应, 则在步骤S104中,补丁或软件补丁 214被发送给计算机202。术语补丁或软件补丁 214用于描述用于更新计算机程序或其支持数据的软件片段。例如,补丁可包含更新后的合法的可执行部分、软件库和数据文件。补丁 214包括第一补丁成分216和第二补丁成分218。第一补丁成分216用于用合法的软件成分242来替换非法拷贝的至少一部分,并且第二补丁成分218例如提供图形用户界面M4(GUI),类似于用于向软件程序的用户提交信息的认证对话、认证电子邮件、短消息服务(SMS)或多媒体消息服务(MMS)。补丁 214可被配置为是档案文件。然后,此档案文件必须被解包到软件在计算机使用的可写介质(例如,硬盘、存储棒、U盘)上的安装目录中,并且用合法拷贝的真实文件来覆写非法拷贝的文件。如参考下面第一到第四种情形更加详细描述的,补丁的解包和执行(包括覆写这种文件)可以自动由第一软件程序200或者由第三方软件程序206执行。在第一种情形中,第一软件程序200例如从web服务器、本地驱动器、网络驱动器、 盘片或存储器驱动器下载补丁 214,并且将其存储在计算机202上,其中,补丁 214被配置为是设置/安装器程序。之后,第一软件程序200执行补丁 214,例如,利用窗口 API (应用程序接口)jhellExecute。在被执行时,补丁 214将文件拷贝(并且可以是覆写)到软件程序安装目录,并且生成包括合法的软件成分242的第二软件程序M0。在第二种情形中,第一软件程序200例如从web服务器、本地驱动器、网络驱动器、 盘片或存储器驱动器下载补丁 214,并且将其存储在计算机202上,其中,补丁 214被配置为是档案文件。之后,第一软件程序200从档案文件提取(例如解压)文件到第一软件程序安装目录(并且可能覆写现有的文件),并且生成包括合法的软件成分242的第二软件程序 240。在第三和第四种情形中,补丁经由第三方软件程序206例如从web服务器、本地驱动器、网络驱动器、盘片或存储器驱动器下载并且被存储在计算机202上。在第三种情形中,补丁 214被配置为是设置/安装器程序,并且在被存储在计算机 202上之后,该补丁 214由第三方软件程序206执行,例如利用窗口 API(应用程序接口) SiellExecute。在被执行时,补丁 214将文件拷贝(并且可以是覆写)到第一软件程序安装目录,并且生成包括合法的软件成分M2的第二软件程序M0。 在第三种情形中,补丁 214被配置为是档案文件,并且在被存储在计算机202上之后,该补丁 214由第三方软件程序206提取(解压)到第一软件程序安装目录(并且可能覆写现有的文件),并且生成包括合法的软件成分M2的第二软件程序M0。从而,通过向第一软件程序200应用补丁 214生成了第二软件程序M0。还可以是在在计算机202上检测到非法拷贝之后,有关用于该软件程序的更新的信息被发送到计算机202并且被显示给用户。如果用户请求下载和安装更新,则补丁 214 被递送给用户并且自动被安装或者在用户确认后被安装。在替换非法拷贝的至少一部分时对第一补丁成分216的使用使得二软件程序240具有合法拷贝的相应元数据。另外,图形用户界面244被提供。图形用户界面244例如可以示出提供用于测试软件程序的合法拷贝的试验时段的对话,并且提供了获得(即,购买) 认证令牌(即,序列号)的可能性。利用此特征的软件程序也被称为“先试后买”软件。在 S108中,图形用户界面244被显示并且用户被索取认证令牌。如果没有正确的认证令牌输入,则二软件程序240不能被使用。图形用户界面M4的显示可不紧在第二软件程序240生成之后就被起动,而是仅在已经经过了预定的时间量(例如,合法拷贝的使用时间)之后才被显示。从而,用户将更有可能会习惯该软件,并且因此,用户有兴趣为进一步使用软件而付费。通过将图形用户界面244显示给用户,用户可以被告知他可以购买软件程序的合法拷贝,或者如果他已经拥有了对于各软件程序的合法认证令牌则可以解锁该软件程序。 第二补丁成分218例如可示出到在线店铺的链接,或者可描述获得合法认证令牌的任何其他途 径。在S110,用户可从第二服务器220获得认证令牌。之后,在步骤S112中,此认证令牌被验证。认证令牌可以是序列号、字母数字密钥、对于用户帐户的购买限制、许可文件或者类似认证码。如果认证令牌被验证没有问题,则在Sl 14中第二软件程序240被标记为软件程序的合法拷贝。验证可以由第三服务器222或者第二软件程序240中实现的验证软件成分来执行。标记可包括确保第二软件程序240的元数据与合法拷贝的元数据相对应。标记还可包括基于肯定验证的附加信息。在根据图2的系统的实施例中,为了将补丁 214发送给计算机202,第一服务器 208包括单独的档案文件212的地址,例如URL/URI (统一资源定位符/统一资源标识符), 例如服务器或本地程序适用于通过此地址向计算机202发送补丁 214(即,从服务器下载, 或者从软件程序安装设备(例如DVD)拷贝)。根据另一实施例,在图3中所示,软件程序的非法拷贝300包括档案文件302,档案文件302适用于提供包括第一补丁成分216和第二补丁成分218的补丁 214。档案文件 302可通过提供到存储在第一服务器208中的数据的各地址(例如URL/URI 320)而被参考。根据在图3中所示的实施例,认证令牌也从第二服务器220获得并且之后被验证。利用此实施例,较少的数据需要从远程服务器被发送到计算机202,因为不必要发送全部补丁 214给计算机202,因为非法拷贝300中已经存在补丁了。因此,下载时间被缩短,并且软件程序的发布者和在线零售商可减少保存档案文件和用于下载的成本或者不付出成本。然而,根据在图4中示出的又一个实施例,还可以是第一服务器208包括认证令牌提供单元400,认证令牌提供单元400可被计算机202的第二软件程序240寻址并且认证令牌提供单元400可提供对于该第二软件程序MO的认证令牌。利用所提出的方法和系统,能够执行下面的实施例。在一个实施例中,游戏应用的原始版本被安装到计算机202的硬盘驱动器。用户可能下载非法的(破解的或者盗印的)(一个或多个)可执行文件、库和其他文件并且用非法的拷贝替换了原始的真实的文件。该动作可以避开针对个人计算机游戏的原始版本的保护方案。在两小时的游戏玩打之后,该游戏应用启动软件成分204,软件成分204计算该游戏应用(包括非法的可执行部分)的元数据并且将其发送给服务器208,服务器208将正运行的游戏应用辨认为是“破解的”版本,即非法拷贝。软件成分204停止实际游戏应用并且用位于游戏应用的安装文件夹中的真实拷贝来替换此非法拷贝,并且添加动态链接库 (DLL),动态链接库在当下次起动游戏应用时通过GUI示出一对话,此对话指示出从哪里获得用于游戏应用的认证令牌(例如序列号),并且动态链接库也执行在线激活(在远程服务器上对序列号或者字母数字密钥的认证,此认证可通过利用客户端个人计算机和传送基于 xml的请求和响应的激活服务器之间的安全通道来执行)。另一示例是,软件程序的原始版本被安装到计算机202的硬盘驱动器。用户可能下载非法的(破解的或者盗印的)可执行部分并且用非法拷贝替换了原始的真实的可执行部分。此动作也避开了针对该软件的原始版本的保护方案。之后,用户下载并运行自动打补丁软件(由软件的发布者/开发者或者分发者提供,或者由任何被授权的第三方公司提供)。自动打补丁软件计算该应用(包括非法的可执行拷贝)的元数据并且将其发送给服务器208,服务器208将此被安装的软件辨认为是破解的版本,即非法拷贝。自动打补丁软件用从给定URL (web服务器)212下载的真实拷贝来替换非法拷贝,并将动态链接库(DLL) 添加到软件的安装文件夹,动态链接库在下一次游戏起动时示出一对话,此对话指示出从哪创建和购买用于个人计算机游戏的用户帐户,动态链接库还执行在线激活(用户帐户的给定证书的认证)。例如,这涉及用户帐户服务器,其中个人计算机的用户在用户帐户服务器处创建用户帐户,并且涉及购买软件并将其绑定到该用户账户的过程。还可以在运行非法拷贝的同时存储已经获得的用户数据,并且当稍后运行合法拷贝时使用此存储的用户数据。利用此实施例,可以在从非法拷贝改变到合法拷贝时为用户提供添加的值,因为,例如用户设置可被再次使用或者当运行非法拷贝时已经通关的冒险游戏的等级在当运行合法拷贝时可以被认为已通关,从而用户不必再次重玩这些等级。补丁可执行识别和提取在运行非法拷贝时获得的用户数据的代码成分。所提取的用户数据然后被插入或者编译到所生成的合法拷贝的代码成分中并被存储在计算机中。利用所提出的方法和系统,没付费的客户可以被容易地转变成付费客户。这容易防止对元数据的未经授权的使用,因为容易改变用于检查是否存在合法拷贝的元数据和/ 哈希函数并且另外还能够容易改变合法拷贝的真实文件的档案文件位置。例如,所述元数据和/或哈希函数可在当每次元数据确定单元204、206执行检查时或者在元数据确定单元 204,206的版本被改变之后而被改变。软件程序的原始版本和非法拷贝的元数据值都被存储在服务器208上,并且可在新的非法拷贝被分发之后被更新。这确保对每个非法拷贝的全部覆盖和各种打补丁可能性。
权利要求
1.一种用软件程序的合法拷贝替换非法拷贝的方法,包括从第一软件程序的特性确定元数据,所述第一软件程序被存储在一计算机的存储介质上;如果所述元数据不与所述软件程序的合法拷贝的元数据相对应,则从第一服务器向所述计算机发送补丁;通过用所述补丁的代码成分替换所述第一软件程序的至少一部分来生成第二软件程序;在所述第二软件程序启动时显示图形用户界面; 请求认证令牌;从第二服务器获得所述认证令牌; 验证所述认证令牌;并且如果所述认证令牌被验证没有问题,则将所述第二软件程序标记为合法拷贝。
2.根据权利要求1所述的替换非法拷贝的方法,还包括 将所述元数据发送到所述第一服务器;并且将所述元数据与所述第一服务器中的所述合法拷贝的元数据进行比较。
3.根据权利要求2所述的替换非法拷贝的方法,还包括将所述元数据与所述第一服务器中一个或多个已知的非法拷贝的元数据进行比较。
4.根据权利要求1所述的替换非法拷贝的方法,还包括将所述元数据与所述计算机中的所述合法拷贝的元数据进行比较。
5.根据权利要求1所述的替换非法拷贝的方法,其中,所述补丁包括第一补丁成分,该第一补丁成分用于替换非法拷贝中的至少一部分,这部分导致了所述元数据不与所述合法拷贝中的元数据相对应;以及第二补丁成分,该第二补丁成分提供所述图形用户界面。
6.根据权利要求1所述的替换非法拷贝的方法,其中,所述软件程序的非法拷贝包括表示所述图形用户界面的代码成分,所述方法还包括当所述软件程序被起动时,利用所述补丁的代码成分激活所述图形用户界面。
7.根据权利要求1所述的替换非法拷贝的方法,其中,所述元数据是通过所述软件程序的非法拷贝确定的。
8.根据权利要求1所述的替换非法拷贝的方法,其中,所述元数据是通过第三软件程序确定的。
9.根据权利要求1所述的替换非法拷贝的方法,还包括如果所述元数据不与所述软件程序的合法拷贝的元数据相对应,则请求是否应当下载所述第一软件程序的更新;并且如果已经接受下载所述更新,则从所述第一服务器向所述计算机发送所述补丁,并且执行生成所述第二软件程序的步骤。
10.根据权利要求1所述的替换非法拷贝的方法,其中,所述元数据是所述第一软件程序的可执行文件的哈希数据。
11.根据权利要求1所述的替换非法拷贝的方法,其中,所述图形用户界面在所述软件程序已经被使用了一段预定时间之后才被显示。
12.根据权利要求1所述的替换非法拷贝的方法,还包括在运行所述非法拷贝的同时存储已经获得的用户数据;以及当运行所述合法拷贝时允许使用所述用户数据。
13.一种用软件程序的合法拷贝替换非法拷贝的系统,包括补丁,该补丁包括代码成分,该补丁适用于替换在一计算机上的所述软件程序的非法拷贝的至少一部分并且适用于激活图形用户界面在所述计算机上的显示;第一服务器,该第一服务器适用于在从存储在所述计算机上的第一软件程序的特性确定出的元数据被识别为不与所述软件程序的合法拷贝的元数据相对应之后,向所述计算机发送所述补丁 ;以及第二服务器,该第二服务器适用于在从所述计算机接收到对于认证令牌的请求时向所述计算机发送所述认证令牌,所述请求是通过所述图形用户界面发起的。
14.根据权利要求13所述的用软件程序的合法拷贝替换非法拷贝的系统,其中,所述第一服务器还适用于将所述第一软件程序的元数据与所述合法拷贝的元数据进行比较。
15.一种存储在非暂时介质上的软件补丁,该软件补丁包括代码成分,所述软件补丁适用于替换在一计算机上的一软件程序的非法拷贝的至少一部分;在从存储在所述计算机上的第一软件程序的特性确定出的元数据不与所述软件程序的合法版本的元数据相对应之后,当所述软件补丁被存储在所述计算机上并被启动时,激活图形用户界面在所述计算机上的显示;请求认证令牌;从服务器获得所述认证令牌;验证所述认证令牌;并且如果所述认证令牌被验证没有问题,则将所述第二软件程序标记为合法拷贝。
全文摘要
本发明提供了用软件程序的合法拷贝替换非法拷贝的方法及相应系统。一种用软件程序的合法拷贝替换非法拷贝的方法,包括确定在计算机上运行的第一软件程序的元数据;如果所述元数据不与所述软件程序的合法拷贝的元数据相对应,则从第一服务器向所述计算机发送补丁;通过用所述补丁替换所述第一软件程序的至少一部分来生成第二软件程序;利用所述补丁的代码成分来显示图形用户界面,并且向用户索取认证令牌;从第二服务器获得所述认证令牌;验证所述认证令牌;并且如果所述认证令牌被验证没有问题,则将所述第二软件程序标记为合法拷贝。另外,相应的系统也被提供。
文档编号G06F21/10GK102346826SQ20111021301
公开日2012年2月8日 申请日期2011年7月26日 优先权日2010年7月26日
发明者托马斯·高博 申请人:索尼达德克奥地利股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1