首页> 中国专利> 用软件程序的合法拷贝替换非法拷贝的方法及相应系统

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

摘要

本发明提供了用软件程序的合法拷贝替换非法拷贝的方法及相应系统。一种用软件程序的合法拷贝替换非法拷贝的方法,包括:确定在计算机上运行的第一软件程序的元数据;如果所述元数据不与所述软件程序的合法拷贝的元数据相对应,则从第一服务器向所述计算机发送补丁;通过用所述补丁替换所述第一软件程序的至少一部分来生成第二软件程序;利用所述补丁的代码成分来显示图形用户界面,并且向用户索取认证令牌;从第二服务器获得所述认证令牌;验证所述认证令牌;并且如果所述认证令牌被验证没有问题,则将所述第二软件程序标记为合法拷贝。另外,相应的系统也被提供。

著录项

  • 公开/公告号CN102346826A

    专利类型发明专利

  • 公开/公告日2012-02-08

    原文格式PDF

  • 申请/专利权人 索尼达德克奥地利股份公司;

    申请/专利号CN201110213014.8

  • 发明设计人 托马斯·高博;

    申请日2011-07-26

  • 分类号G06F21/00;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人宋鹤

  • 地址 奥地利安尼弗

  • 入库时间 2023-12-18 04:21:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-04-20

    授权

    授权

  • 2013-07-10

    实质审查的生效 IPC(主分类):G06F21/00 申请日:20110726

    实质审查的生效

  • 2012-02-08

    公开

    公开

说明书

技术领域

本发明涉及用软件程序的合法拷贝替换非法拷贝的方法、相应系统以 及存储在非暂时介质上的软件补丁(patch)。

背景技术

软件程序的非法拷贝的使用不仅侵犯版权,而且严重影响到软件生产 商和软件开发商,因为他们将会因他们的知识产权被非授权分发而失去很 多利益。因此,已经开发出多种技术,这些技术识别软件程序的非法拷贝 并且然后禁止软件程序的某些特性,例如,更新功能或者在线播放,或者 防止对软件程序的全部使用。然而,对于这些已知的技术,仅能够阻止软 件程序的非法拷贝的用户使用此非法拷贝,或者至少降低了软件程序的可 用性。

发明内容

因此,需要提供一种将软件程序的非法拷贝的用户改变成软件程序的 合法拷贝的用户的方法和系统。

此目的通过根据权利要求1的用软件程序的合法拷贝替换非法拷贝的 方法、根据权利要求13的相应的系统以及根据权利要求15的软件补丁来 达成。

其他的实施例被定义在从属权利要求中。

本发明的进一步的细节将通过考虑附图以及随后的描述而变得很明 显。

附图说明

图1示出本发明的一实施例的示意性步骤;

图2示出根据本发明的一实施例的系统的示意性框图;

图3示出根据本发明的又一实施例的系统的示意性框图;以及

图4示出本发明的另一实施例的示意性框图。

具体实施方式

下面描述本发明的实施例。重要地,注意,下面所描述的所有实施例 及其他们的特性和技术特征可以任意方式组合,即,不存在这样的限制: 某些所描述的实施例、特性和技术特征不能与其他的组合。

在图1中,示出了根据本发明的一实施例的方法步骤,此方法步骤在 结合图2中所示的系统的实施例描述时可能会更容易理解。

在步骤S100中,从存储在一计算机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例如提供图形用户界面244(GUI),类似于用于向软件程 序的用户提交信息的认证对话、认证电子邮件、短消息服务(SMS)或多 媒体消息服务(MMS)。

补丁214可被配置为是档案文件。然后,此档案文件必须被解包到软 件在计算机使用的可写介质(例如,硬盘、存储棒、U盘)上的安装目录 中,并且用合法拷贝的真实文件来覆写非法拷贝的文件。如参考下面第一 到第四种情形更加详细描述的,补丁的解包和执行(包括覆写这种文件) 可以自动由第一软件程序200或者由第三方软件程序206执行。

在第一种情形中,第一软件程序200例如从web服务器、本地驱动 器、网络驱动器、盘片或存储器驱动器下载补丁214,并且将其存储在计 算机202上,其中,补丁214被配置为是设置/安装器程序。之后,第一软 件程序200执行补丁214,例如,利用窗口API(应用程序接口): ShellExecute。在被执行时,补丁214将文件拷贝(并且可以是覆写)到软 件程序安装目录,并且生成包括合法的软件成分242的第二软件程序 240。

在第二种情形中,第一软件程序200例如从web服务器、本地驱动 器、网络驱动器、盘片或存储器驱动器下载补丁214,并且将其存储在计 算机202上,其中,补丁214被配置为是档案文件。之后,第一软件程序 200从档案文件提取(例如解压)文件到第一软件程序安装目录(并且可 能覆写现有的文件),并且生成包括合法的软件成分242的第二软件程序 240。

在第三和第四种情形中,补丁经由第三方软件程序206例如从web服 务器、本地驱动器、网络驱动器、盘片或存储器驱动器下载并且被存储在 计算机202上。

在第三种情形中,补丁214被配置为是设置/安装器程序,并且在被存 储在计算机202上之后,该补丁214由第三方软件程序206执行,例如利 用窗口API(应用程序接口):ShellExecute。在被执行时,补丁214将文 件拷贝(并且可以是覆写)到第一软件程序安装目录,并且生成包括合法 的软件成分242的第二软件程序240。

在第三种情形中,补丁214被配置为是档案文件,并且在被存储在计 算机202上之后,该补丁214由第三方软件程序206提取(解压)到第一 软件程序安装目录(并且可能覆写现有的文件),并且生成包括合法的软 件成分242的第二软件程序240。

从而,通过向第一软件程序200应用补丁214生成了第二软件程序 240。

还可以是在在计算机202上检测到非法拷贝之后,有关用于该软件程 序的更新的信息被发送到计算机202并且被显示给用户。如果用户请求下 载和安装更新,则补丁214被递送给用户并且自动被安装或者在用户确认 后被安装。

在替换非法拷贝的至少一部分时对第一补丁成分216的使用使得二软 件程序240具有合法拷贝的相应元数据。另外,图形用户界面244被提 供。图形用户界面244例如可以示出提供用于测试软件程序的合法拷贝的 试验时段的对话,并且提供了获得(即,购买)认证令牌(即,序列号) 的可能性。利用此特征的软件程序也被称为“先试后买”软件。在S108 中,图形用户界面244被显示并且用户被索取认证令牌。如果没有正确的 认证令牌输入,则二软件程序240不能被使用。

图形用户界面244的显示可不紧在第二软件程序240生成之后就被起 动,而是仅在已经经过了预定的时间量(例如,合法拷贝的使用时间)之 后才被显示。从而,用户将更有可能会习惯该软件,并且因此,用户有兴 趣为进一步使用软件而付费。

通过将图形用户界面244显示给用户,用户可以被告知他可以购买软 件程序的合法拷贝,或者如果他已经拥有了对于各软件程序的合法认证令 牌则可以解锁该软件程序。第二补丁成分218例如可示出到在线店铺的链 接,或者可描述获得合法认证令牌的任何其他途径。

在S110,用户可从第二服务器220获得认证令牌。之后,在步骤 S112中,此认证令牌被验证。认证令牌可以是序列号、字母数字密钥、对 于用户帐户的购买限制、许可文件或者类似认证码。

如果认证令牌被验证没有问题,则在S114中第二软件程序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可提供对于该 第二软件程序240的认证令牌。

利用所提出的方法和系统,能够执行下面的实施例。

在一个实施例中,游戏应用的原始版本被安装到计算机202的硬盘 驱动器。用户可能下载非法的(破解的或者盗印的)(一个或多个)可 执行文件、库和其他文件并且用非法的拷贝替换了原始的真实的文件。 该动作可以避开针对个人计算机游戏的原始版本的保护方案。在两小时 的游戏玩打之后,该游戏应用启动软件成分204,软件成分204计算该 游戏应用(包括非法的可执行部分)的元数据并且将其发送给服务器 208,服务器208将正运行的游戏应用辨认为是“破解的”版本,即非 法拷贝。软件成分204停止实际游戏应用并且用位于游戏应用的安装文 件夹中的真实拷贝来替换此非法拷贝,并且添加动态链接库(DLL), 动态链接库在当下次起动游戏应用时通过GUI示出一对话,此对话指示 出从哪里获得用于游戏应用的认证令牌(例如序列号),并且动态链接 库也执行在线激活(在远程服务器上对序列号或者字母数字密钥的认 证,此认证可通过利用客户端个人计算机和传送基于xml的请求和响应 的激活服务器之间的安全通道来执行)。

另一示例是,软件程序的原始版本被安装到计算机202的硬盘驱动 器。用户可能下载非法的(破解的或者盗印的)可执行部分并且用非法 拷贝替换了原始的真实的可执行部分。此动作也避开了针对该软件的原 始版本的保护方案。之后,用户下载并运行自动打补丁软件(由软件的 发布者/开发者或者分发者提供,或者由任何被授权的第三方公司提 供)。自动打补丁软件计算该应用(包括非法的可执行拷贝)的元数据 并且将其发送给服务器208,服务器208将此被安装的软件辨认为是破 解的版本,即非法拷贝。自动打补丁软件用从给定URL(web服务器) 212下载的真实拷贝来替换非法拷贝,并将动态链接库(DLL)添加到 软件的安装文件夹,动态链接库在下一次游戏起动时示出一对话,此对 话指示出从哪创建和购买用于个人计算机游戏的用户帐户,动态链接库 还执行在线激活(用户帐户的给定证书的认证)。例如,这涉及用户帐 户服务器,其中个人计算机的用户在用户帐户服务器处创建用户帐户, 并且涉及购买软件并将其绑定到该用户账户的过程。

还可以在运行非法拷贝的同时存储已经获得的用户数据,并且当稍 后运行合法拷贝时使用此存储的用户数据。利用此实施例,可以在从非 法拷贝改变到合法拷贝时为用户提供添加的值,因为,例如用户设置可 被再次使用或者当运行非法拷贝时已经通关的冒险游戏的等级在当运行 合法拷贝时可以被认为已通关,从而用户不必再次重玩这些等级。补丁 可执行识别和提取在运行非法拷贝时获得的用户数据的代码成分。所提 取的用户数据然后被插入或者编译到所生成的合法拷贝的代码成分中并 被存储在计算机中。

利用所提出的方法和系统,没付费的客户可以被容易地转变成付费客 户。这容易防止对元数据的未经授权的使用,因为容易改变用于检查是否 存在合法拷贝的元数据和/哈希函数并且另外还能够容易改变合法拷贝的真 实文件的档案文件位置。例如,所述元数据和/或哈希函数可在当每次元数 据确定单元204、206执行检查时或者在元数据确定单元204、206的版本 被改变之后而被改变。

软件程序的原始版本和非法拷贝的元数据值都被存储在服务器208 上,并且可在新的非法拷贝被分发之后被更新。这确保对每个非法拷贝的 全部覆盖和各种打补丁可能性。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号