用于管理对插件数据文件访问的系统和方法

文档序号:6455877阅读:316来源:国知局
专利名称:用于管理对插件数据文件访问的系统和方法
技术领域
(日y
件(add-on)类
r徑"田并尺rr胜用移厅仗用日3芏少一个具有插属性的插件数据文件的访问的方法和系统。
背景技术
成功的计算积j软件应用程序,特别是计算机游戏,通常引起了用户对这样的软件应用程序的愿望,就是通过使用例如用于计算机游戏的附加的级别文件(level file)、用于导航程序的附加的地图文件(mapfile)、用于文字处理程序的附加的字体文件或者其他扩展文件等的附加的插件数据文件来增强软件应用程序的能力。由于这样的软件应用程序的经济上的成功通常不能被预见,这样的附加的插件文件通常未包含在原始软件应用程序中。针对销售这样的附加的插件文件的市场正在增长,这样的附加的插件lt据文件已经由其他编程方开发并且由其他供应方提供而不是由软件应用程序的原始开发方和原始供应方提供。目前这样的附加的插件数据文件通常是通过因特网提供。由于这样的插件文件的编程方、创作方和供应方也想要获得对于他们的功劳的回报,这样的插件数据文件必须要进行防复制保护。
对于插件数据文件的这样的复制保护不容易达到。 一种可能性是原始软件应用程序的编程方在原始软件应用程序内实现访问代码层(例如某种解密/加密算法),这是麻烦的而且一般的软件应用程序编程方,特别是计算机游戏的编程方,不是编程复制保护软件方面的专家。另外地在开发计算机游戏方面的时间限制是十分严格的,使得会妨碍为了包含对于插件数据文件的复制保护而进行额外工作。而且,既然原始编程方和原始供应方与插件数据文件的编程方和供应方不同,他们更加没有动力去将这样的复制保护包含在原始程序应用中。以另 一种方法将插件数据文件加密。想要使用这样的附加插件数据文件的用户在为被授权使用插件数据文件而付费之后获得解密钥。然而,在解密钥的帮助下解密了插件数据文件之后,就可以进一步进行未经授权的复制和分发,因此降低了插件数据文件的编程方和供应方的收入。
本发明的目的在于提供一种用于管理对由软件应用程序使用的至少 一个插件数据文件的访问的方法,其易于由软件应用程序的发行方处理,并且提供了针对此类插件数据文件的未经授权的复制的有效的保护。
本发明进一步的目的在于提供一种用于管理对由软件应用程序使用的至少 一个插件数据文件的访问的系统,其易于由软件应用程序的编程方使用,其提供了针对此类插件数据文件的未经授权的复制的有效保护,易于由这样的插件数据文件的用户使用。

发明内容
通过一种用于管理对由软件应用程序使用的至少 一个插件数据
文件的访问的方法来实现在第一方面的目的。该方法包括以下步骤-定义对所迷插件数据文件的访问代码;
-监视所述软件应用程序对代码层的应用编程接口(API)的输入/
输出命令(S1)以确定所述软件应用程序是否请求访问具有所述插件数据文件属性的数据文件;
-如果所监视的输入/输出命令中的至少一个请求对所述插件数据文件的访问,检查在与所述软件应用程序相关的访问代码列表中是否出现有所述访问代码,
-如果所述访问代码未出现在所述访问控制列表中,从所述访问控制列表外面的外部源中取回所述访问代码,
-如果出现所述访问代码,提供对所述插件数据文件的访问。
当软件应用程序试图访问被保护的插件ft据文件时,通过监^f见应用编程接口的使用来侦听该访问,以及检查是否已经获得了对于 插件数据文件内容的访问代码。如果在访问代码列表中找到了有 效项目,则许可访问。有效项目可包括给定授权使用时间段内的 日期或者匹配当前配置或运行时间环境的用户或硬件标识。否则 试图从所述访问代码列表外面的外部源取回访问代码。输入/输出 命令本身可保持不变,这正是对于其他例如用在软件应用程序的 原始数据文件的输入/输出命令的情况。因此,该方法是透明的, 意思是软件应用程序不需要知道这样的方法,它可以简单地按照 原始编程方打算的那样执行。软件应用程序不必被修改成实现对 这样的插件凄t据文件的访问控制,为实现该方法不必知道專欠件应 用程序的源代码。另一方面,由于在所述软件应用程序的运行时 间期间控制访问,在运^"时间之前不必解密所述插件文件,并且 因此不存在复制被解密的插件文件的可能性,因为它不会简单地 单独出现在文件系统中。
该方法本身独立于实际软件应用程序,原因在于仅仅只要知道使 用哪一个插件数据文件属性。在任何情况下,当软件应用程序请求访 问具有这种插件数据文件属性的插件数据文件时,可应用该方法。可 由所述软件应用程序的编程中未涉及的第三方来组织并且提供外部 源。
通过该方法,易于获得对于软件应用程序和插件数据文件的不同 的所有权和责任。
就第二方面,提供了 一种用于管理对由软件应用程序使用的具有
插件数据文件属性的插件凄t据文件的访问的系统,其包括
-用于生成对所述插件数据文件的访问代码的访问代码生成器;
-所述访问代码列表外面的、用于获得所述访问代码的外部源; 以及
-用于所述软件应用程序的独立控制逻辑,所述独立控制逻辑适
8用于
〇片企查所述软件应用程序对代码层的应用编程接口 (API)
的输入/输出命令,所述软件应用程序是否请求对具有所述插件数 据文件属性的数据文件的访问,
〇如果所述输入/输出命令请求对所述插件数据文件的访 问,检查所述访问代码列表中是否出现有访问所述插件数据文件 的所述访问代码,
〇如果所述访问代码未出现在所述访问代码列表中,检查 是否可从所述外部源获得所述访问代码,以及
〇如果出现有所述访问代码,提供对所述插件数据文件的访问。
通过系统,可以由复制保护的专家建立控制逻辑并且不必特别使 软件应用程序适用于使用这样的插件数据文件。既然软件应用程序和 控制逻辑之间没有特别的关系,控制逻辑易于应用在不同的软件应用 程序而不需要改变。由于访问代码列表是不可转让的,简单的复制访 问代码列表无法骗取对插件数据文件的这样的复制保护方案。
就第三方面,提供了一种用于管理对具有插件数据文件属性的插
件数据文件的访问的系统,其包括
用于在运行时间使用所述插件数据文件的软件应用程序
用于控制所述软件应用程序对所述插件数据文件的访问的代码 层,所述代码层提供应用编程接口 (API);
用于生成对所述插件数据文件的访问代码的访问代码生成器;
与所述软件应用程序相关的访问代码列表;
用于所述软件应用程序的独立控制逻辑,所述独立控制逻辑适用

〇才全查所述软件应用程序对所述应用编程接口(API)的输 入/输出命令所述软件应用程序是否请求对具有所述插件数据文件属性的数据文件的访问,
O如果所述输入/输出命令请求对所述插件数据文件的访 问,检查所述访问代码列表中是否出现有访问所述插件数据文件 的所述访问代码,
O如果所述访问代码未出现在所述访问代码列表中,检查 是否可从所述外部源获得所述访问代码,以及
〇如果出现有所述访问代码,提供对所述插件数据文件的访问。
-用于链接所述独立控制逻辑与所述软件应用程序的《连接程序, 使得所述独立控制逻辑和所述软件应用程序适用于在相同的 过程中运行。


由结合附图进行的对呈现的优选示例实施例的以下说明,本发明 的上述的以及其他的目的、特征和优点将变得更加清楚。
图1示出了用于管理对插件彩:据文件的访问的系统的第一实施例 的示意性框图2示出了用于管理对插件数据文件的访问的系统的第二实施例 的示意性框图3示出了用于管理对插件数据文件的访问的方法步骤。
具体实施例方式
图1中,描绘了用于管理对插件数据文件的访问的系统的第一实 施例的示意性框图。像例如计算机游戏、文字处理程序或导航程序等 的软件应用程序1与控制逻辑2 —起以一个过程3运行。控制逻辑2 可用于通过在软件应用程序周围提供"包装程序(wrapper)"来保护软 件应用程序1防止未经授权的复制。例如通过检查使用软件应用程序 的用户在开始软件应用程序之前是否已经输入了正确的密钥来确立软件应用程序的经授权的使用。这样的检查由控制逻辑2执行。为了 便于软件应用程序1和控制逻辑2的处理,借助链接程序将两个部分 链接在一起并且产生了 一个可执行的目标代码,其可在合适的石更件(例 如计算机)上作为一个过程来运行。可选地,该过程可仅在附加的授权
代码输入之后或者在光盘的鉴权之后来启动。
对于某种软件应用程序,存在有通过附加的插件数据文件4来增 强它们的能力的可能性,插件数据文件4可具有不同的内容,这取决 于软件应用程序1。例如,如果软件应用程序1为计算机游戏,则软 件应用程序可判读的数据文件或者这样的插件数据文件,可包括,但 不限于,附加级别文件、当玩游戏时使用的附加字符文件、用于飞行 模拟程序等等的附加版图的附加地图。还可使用其他扩展数据文件, 例如用于文字处理的附加的字体文件或者用于导^L程序的附加地图 等。通常这样的附加插件数据文件4的创作方、编程方、发行方和/ 或供应方不同于原始软件应用程序1的编程方。为了限制对这样的附 加插件数据文件4的未经4受权的访问,可以对这样的插件数据文件4 加密并且出售解密钥。然而,在使得这样加密的插件数据文件4解密 之后,难以防止对这样插件数据文件4的进一步未经授权的分发。
在描绘的实施例内,通过监一见对应用编程接口(API)6的输入/输出 命令来侦听软件应用程序1对插件数据文件4的访问,从而在运行时 间期间控制软件应用程序1的访问,API 6由代码层,例如操作系统 如Windows ,来提供。如果软件应用程序1请求访问插件数据文件 4(通过插件数据文件属性标识),控制逻辑2检查例如访问控制列表
件4的访问代码。由插件凄t据文件4的供应方或者创作方^f吏用生成单 元生成这样的访问代码。访问代码,例如包括内容标识(内容ID)作为 数据文件属性和硬件或用户标识或时间段,在该时间段期间对于插件 数据文件的这样的具有内容ID的访问代码是有效的。如果访问代码 列表11内未出现有对于插件数据文件的这种访问代码,控制逻辑2试图从外部源通过图形用户接口 GUI 13和/或激活服务器12取回访问 代码。插件数据文件属性用于标识对插件数据文件4的访问请求并且 包括,但不限于,文件格式说明或者编译日期。
图形用户接口 GUI 13可独立地提供并且可用于直接由用户手动 地输入访问代码(他/她预先已经获得了访问代码),或者用于输入用户 标识。这样的用户标识可用于检查激活服务器12内是否对于该用户 允许访问插件数据文件,例如因为用户已经正确地购买了插件数据文 件并且已经输入了他的用户标识给激活服务器,以便标识对于他应该 允许这样的访问。相应的"私有化的,,访问也可以带有硬件标识,其 可借助控制逻辑2被直接传输至激活服务器12。因此可以授予对插件 数据文件4的用户或硬件特定访问权限。甚至可以在与激活服务器12 通信期间用户明显到当前为止未曾购买相应的访问代码的情况下借 助图形用户接口 13准许用户输入付费数据,例如信用卡数据,并且 从那时之后准许取回访问代码,使得用户之后即刻可使用插件数据文 件4。通信可通过因特网执行。
如果访问代码通过所述的外部源可使用,例如通过图形用户接口 13和/或激活服务器12,那么该访问代码可之后存储在访问代码列表 11内以加速进一步对该插件数据文件4的访问。附加的确认信息也可 存储,例如期间访问被准许的时间段的日期、用户标识或硬件标识。 此外,在过程3运行时间期间许可对插件数据文件4的访问。访问代 码可包括解密钥以便在运行时间期间解密插件数据文件4被加密的版 本。
为了避免对插件数据文件的未经授权的复制,应该避免软件应用 程序存储插件数据文件4的原始或者修改的版本,除非在有对于这样 存储的插件数据文件4可用的进一步的复制保护。借助控制逻辑2检 查是否软件应用程序2试图写文件到文件系统上,可确保这样的保护。
访问代码列表11是不可转让的,例如是隐藏在文件系统内或者通 过针对复制的进一步措施来保护。否则可能会复制这样的访问代码列
12表11以使得可能对插件数据文件4进行未经授权的使用。另 一个可能
性是利用硬件标识或者用户标识,当请求访问插件数据文件4时来检
查该硬件标识或者用户标识。访问代码存储在访问控制列表11内并且
借助插件数据文件的内容标识(内容ID1、内容ID2)来建立,其可用作 数据文件属性。
数据文件属性可进一步实现为值的特定组合,通常称为"魔术 (magic)',值。
在图2中,描绘了用于管理对插件数据文件的访问的系统第二实 施例。其与第一实施例类似,使得与图1中相同功能的相同的框已经 标为同样的标号,并且不再在这里解释说明。在该第二实施例中,软 件应用程序1与控制逻辑2的链接在运行时间期间动态地执行,其方 式是通过在运行时间用控制逻辑2借助加载程序(loader)14加载动态 链接库(DLL)至软件应用程序1的过程中。在第一实施例中,该链接 通过在运行时间之前建立 一个可执行文件已经^皮静态地扭i行。
在图3中,描绘了该方法步骤。在第一步骤S1中,在软件应用 程序1的运行时间期间,其对应用编程接口 API的输入/输出命令^皮监 视。如果在该监视期间,在第二步骤S2中控制逻辑识别出具有插件 数据文件属性的数据文件被请求,那么在第三步骤S3中检查访问代 码列表11中是否出现有对于所请求的插件数据文件4的访问代码。如 果访问代码列表11中没有该访问代码,则在第四步骤S4中控制逻辑 /人外部源12、 13取回该访问j戈码。如果这样的访问代码出现在或者 在外部源12、 13或者在访问代码列表11内,则在第五步骤S5中许 可对插件数据文件4的访问,否则在第六步骤S6中拒绝访问。可选 地,在第七步骤S7中,可检查该访问代码是否有效,例如检查是否 满足准许访问的时间段或者是否是相应于存储的用户标识或者硬件 标识的正确的用户或者硬件在请求该访问。如果在第二步骤S2中没 有请求具有插件数据文件属性的数据文件,那么在第八步骤SS中简 单地转发该请求。一种用于确定是否执行对插件数据文件4的请求的非常有效的方
法是关于预定的文件格式说明来建立插件数据文件4,该预定文件格
式说明可用作控制软件应用程序1的访问的触发。
如果已经从外部源12、 13取回的访问代码存储在访问代码列表 11内,进一步的对插件数据文件4的访问请求被较快地处理,因为不 再需要从外部源12、 13取回所述访问代码。这样的话,可以另外地 存储时间段或者其他确认信息,例如用户或者硬件标识,该时间段内 这样的访问代码是有效的。
获得了 一种针对插件数据文件4的非常有效的复制保护,其中插 件数据文件4被加密。因此未拥有相应的解密钥,任何未经授权的复 制是无用的。解密钥与访问代码耦合(它可以是访问代码本身),使得 只有具有该访问代码的用户有权使用这样的插件数据文件4,在运行
时间期间使用解密钥解密插件数据文件。
一种用于取回访问代码的简便的方法是通过要求由用户手动输 入访问代码。在该实施例中,用户通过从插件数据文件提供方购买相 应的插件数据文件4已经预先获得了访问代码。
另 一种用于取回访问代码的简便的方法是通过例如经由因特网 连接到激活服务器12,在用户已经购买这样的插件数据文件4和相应 的访问代码之后,该访问代码存储在激活服务器12上。激活服务器 12可由插件数据文件的提供方或者由其他第三方例如控制逻辑2的提 供方供应。因此不需要软件应用程序1的编程方或者供应方处理这样 的访问权限。
通过确保用户或硬件与访问代码的关系来提供按照用户或者按 照硬件的访问。采用这样的按照用户或按照硬件访问权限进一步阻止 了对插件数据文件未经授权的分发。
该方法对于像对于作为软件应用程序的计算机游戏的级别文件 和/或地图文件和/或式样文件(style file)和/或扩展文件的插件数据文 件4是特别有用的。
14一种用于实现该实施例的透明且有效的方法是使用控制逻辑2, 其同样适合于软件应用程序1的授权使用。因此软件应用程序1的编 程方仅需要处理软件应用程序本身。控制逻辑2负责复制保护,即软
件应用程序1的复制保护以及插件数据文件4的复制保护。
用于由用户输入访问代码或者输入用户标识的独立图形用户接
口 13使得插件数据文件4的创作方或者供应方能够调整这样的图形 用户接口 13以满足他的需要,例如关于广告或者付费方案。如果在 控制逻辑2与激活服务器12通信之前,用户之前未曾购买过访问代 码但是现在想要输入付费数据,它也将提供输入付费数据,像信用卡 数据的可能性。
一种不使用数据文件属性标识对插件数据文件访问的进一步的 可能性是定义软件应用程序1和控制逻辑2之间的专门应用编程接口 (API)用于这样的请求。该可能性需要软件应用程序1和控制逻辑2之 间的合作。专门API可用于在访问^皮拒绝时改进软件应用程序1关于 访问插件数据文件的行为。参考标号
I 软件应用程序 2控制
3 过程
4插件数据文件
5插件数据文件属性
6 应用编禾呈4妄口API
II 访问代码列表 12激活服务器
13 图形用户接口GUI 14加载程序
51 第一步骤
52 第二步骤
53 第三步骤
54 第四步骤
55 第五步骤
56 第六步骤
57 第七步骤
58 第八步骤
权利要求
1. 用于管理对由软件应用程序(1)使用的至少一个具有插件数据文件属性的插件数据文件(4)的访问的方法,所述方法包括步骤-监视所述软件应用程序对代码层的应用编程接口(API,6)的输入/输出命令以确定所述软件应用程序(1)是否请求对具有所述插件数据文件属性的数据文件的访问;-如果所监视的输入/输出命令中的至少一个命令请求对所述插件数据文件(4)的访问,检查与所述软件应用程序(1)相关的访问代码列表(11)中是否出现有对于所述插件数据文件(4)的访问代码,-如果所述访问代码未出现在所述访问控制列表(11)中,从所述访问控制列表(11)外面的外部源(12,13)取回所述访问代码,-如果出现所述访问代码,提供对所述插件数据文件(4)的访问。
2. 如权利要求1所述的方法,其中所述插件数据文件属性包括文件格式说明,所述方法还包括步骤-通过使用所述文件格式说明确定所述输入/输出命令是否请求对所述插件数据文件(4)的访问。
3. 如权利要求1或2所述的方法,还包括步骤
4. 如权利要求l、 2或3中任一项所述的方法,还包括步骤-加密所述插件lt悟文件(4);-如果所述软件应用程序请求所述插件数据文件(4),借助所述访问代码解密所述插件数据文件(4)。
5. 如权利要求1-4中任一项所述的方法,还包括步骤-要求由用户手动输入所述访问代码。
6. 如权利要求1-5中任一项所述的方法,还包括步骤-连接到作为所述外部源的激活服务器(12);-检查所述激活服务器(12)上是否有所述访问代码。
7. 如权利要求6所述的方法,还包括步骤-提供被准许使用所述软件应用程序和所述插件数据文件(4)的用户的用户标识,-当与所述激活服务器(12)连接时,检查所述用户标识是否对应于实际使用所述软件应用程序(l)的用户,-仅对具有所述用户标识的所述用户许可所述访问。
8. 如权利要求1-6中任一项所述的方法,还包括步骤-提供准许所述软件应用程序(1)和所述插件数据文件(4)在其上运行的计算机的硬件标识,-当与所述激活服务器(12)连接时,检查所述硬件标识是否对应于所述软件应用程序(l)当前在其上运行的所述计算机,-仅对具有所述石更件标识的所述计算机许可所述访问。
9. 如权利要求1-8中任一项所述的方法,其中所述软件应用程序(l)为计算机游戏并且所述插件数据文件(4)为级别文件和/或地图文件和/或式样文件和/或扩展文件。
10. —种用于管理对由软件应用程序(l)使用的具有插件数据文件属性的插件数据文件(4)的访问的系统,其包括-配置成用于生成对于所述插件数据文件(4)的访问代码的访问代码生成器;外部源(12, 13);以及-用于所述软件应用程序(1)的独立控制逻辑(2),所述独立控制逻辑(2)适用于〇检查所述软件应用程序对代码层的应用编程接口(API, 13)的输入/输出命令,是否所述软件应用程序(l)请求访问具有所述插件数据文件属性的数据文件,〇如果所述输入/输出命令请求对所述插件数据文件(4)的访问,检查所述访问代码列表(l 1)中是否出现有访问所述插件数据文件(4)的所述访问代码,〇如果所述访问代码未出现在所述访问控制列表(ll)中,检查是否可从所述外部源(12, B)获得所述访问代码,以及〇如果出现有所述访问代码,提供对所述插件凄t据文件(4)的访问。
11. 如权利要求10所述的系统,其中所述独立控制逻辑(2)适用于检查所述软件应用程序(l)的经授权的使用。
12. 如权利要求10或11所述的系统,其中所述软件应用程序(l)与所述独立控制逻辑(2)组合使得他们设置成用于在一个过程(3)中运行。
13. 如权利要求10-12中任一项所述的系统,还包括-图形用户接口(GUI, 13),作为所述外部源用于获得所述访问代码。
14. 如权利要求13所述的系统,其中所述图形用户接口(13)与所述控制逻辑分开。
15. 如权利要求10-14中任一项所述的系统,还包括-激活服务器(12),其为所述外部源,所述控制逻辑(2)在所述斗企查期间可与所述激活服务器(12)连接;以及-所述控制逻辑(2)适用于检查是否所述激活服务器(12)上出现有所述访问代码。
16. 如权利要求10-15中任一项所述的系统,其中所述控制逻辑(2)适用于如果所述插件数据文件以加密的版本出现时解密所述插件数据文件(4)。
17. —种用于管理对具有插件数据文件属性的插件数据文件(4)的访问的系统,其包才舌-用于在运行时间期间使用所述插件数据文件(4)的软件应用程序(1 );用于控制所述软件应用程序(1)对所述插件数据文件(4)的访问的代码层,所述代码层提供应用编程接口(API, 6);配置成用于生成对于所述插件数据文件(4)的访问代码的访问代码生成器;与所述软件应用程序(l)相关的访问代码列表(l 1);源(12, 13),以及-用于所述软件应用程序(1)的独立控制逻辑(2),所述独立控制逻辑(2)适用于〇检查所述软件应用程序(1)对所述应用编程接口(API, 6)的输入/输出命令,是否所述软件应用程序(1 )请求访问具有所述插件数据文件属性的数据文件,〇如果所述输入/输出命令请求对所述插件数据文件(4)的访问,检查所述访问代码列表(l 1)中是否出现有访问所述插件数据文件(4)的所述访问代码,检查是否可从所述外部源(12, 13)获得所述访问代码,以及〇如果出现有所述访问代码,提供对所述插件数据文件(4)的访问。-用于《连接所述独立控制逻辑(2)与所述软件应用程序(1)的《连4妄程序,使得所述独立控制逻辑(2)和所述软件应用程序(1)适用于在相同的过程(3)中运行。
全文摘要
呈现了一种用于管理对软件应用程序(1)所使用的插件(add-on)数据文件(4)的访问的方法,插件数据文件具有插件数据文件属性,该方法包括以下步骤监视所述软件应用程序对代码层的应用编程接口(API)的输入/输出命令(S1)以确定所述软件应用程序是否请求访问具有所述插件数据文件属性的数据文件(S2);如果所监视的输入/输出命令中的至少一个请求对所述插件数据文件的访问,检查在与所述软件应用程序相关的访问代码列表中是否出现有对于所述插件数据文件(4)的访问代码(S3),如果所述访问代码未出现在所述访问控制列表中,从所述访问控制列表外面的外部源中取回所述访问代码(S4);如果出现所述访问代码,提供对所述插件数据文件(4)的访问(S5)。也呈现了相应的系统。
文档编号G06F21/10GK101523398SQ200780033720
公开日2009年9月2日 申请日期2007年8月29日 优先权日2006年9月15日
发明者O·库贝拉, P·米尔瓦尔德, R·亚特斯, T·奥古斯丁 申请人:索尼达德克奥地利股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1