一种防范预发布游戏盗版的数字指纹系统和方法与流程

文档序号:11865139阅读:223来源:国知局

技术领域
本发明涉及一种防范预发布游戏盗版的数字指纹系统和方法,属于计算机游戏开发领域。
背景技术
:一般的游戏,在正式版本发布之前会经历多次预发布版本,用来进行技术测试,玩家数据调研或产品展示。这些预发布的版本经常会被内部工作人员有意或无意地泄露出去。如果是网络游戏,预发布版本泄露会造成程序代码和美术资源被破解,被竞争对手获取重要的技术与资源甚至整个游戏被全盘抄袭复制。如果是单机游戏,预发布版本泄露会造成更严重的后果,因为这意味着游戏还没有发布就已经被盗版了。事后追究这些责任往往难于找到造成事故的当事人,而且即使找到了也难以弥补造成的商业损失。死区,就是输出变量值不随输入变量值的变化而变化,这个输入变量的区域范围就可以理解为死区。技术实现要素:针对现有技术的不足,本发明的技术方案针对现有技术的缺陷,对一般游戏预发布的现状与造成的原因加以深入分析,分析预发布有哪些流程上的特点,各种职位的人员有哪些工作上的习惯,提出了一种防范预发布游戏盗版的数字指纹系统和方法,以达到提高内部工作人员的安全防范意识,保护游戏预发布版本的安全,方便各种职位的人员良好分工合作的目的。本发明的技术方案包括一种防范预发布游戏盗版的数字指纹系统,其特征在于,该系统包括:可视指纹模块,用于在游戏程序运行时的显著的图片和/或文字中添加数字指纹;附加文件模块,用于为游戏文件目录中添加至少一个指纹文件,该指纹文件只用于存储数字指纹,且指纹文件的位置可以自定义放置;纹理指纹模块,用于选择游戏中至少一个纹理文件添加数字指纹;程序指纹模块,用于为游戏中的至少一个可执行程序文件添加数字指纹,组合模块,用于自定义选取所述可视指纹模块、附加文件模块、纹理指纹模块、程序指纹模块中至少一个模块对游戏程序进行添加数字指纹。根据所述的防范预发布游戏盗版的数字指纹系统,所述的可视指纹模块还包括:用于采集游戏的开发、测试人员的姓名信息及对应指纹信息,并将姓名信息和指纹信息嵌入至游戏常见画面及文字当中。根据所述的防范预发布游戏盗版的数字指纹系统,所述的附加文件模块还包括:用于创建至少一个附加文件用于存储数字指纹,且存储数字指纹的附加文件位置可以自定义修改,同时还对附加文件位置信息进行保留。根据所述的防范预发布游戏盗版的数字指纹系统,所述的纹理指纹模块还包括:算法子模块,用于使用多个定制算法创建数字水印;添加子模块,用于根据所添加数字指纹对象的不同,获取添加数字指纹对象的原始文件,根据原始文件特性,在不影响原始文件的运行效果时,将所述算法子模块创建的数字水印以数字指纹形式嵌入对应的原始文件中,其中原始文件包括三维模型、动画文件及音效文件。根据所述的防范预发布游戏盗版的数字指纹系统,所述的程序指纹模块还包括:用于获取所添加数字指纹的已编译可执行文件,解析可执行文件并创建静态区域,其中静态区域包括密钥区和死区,其中密钥区用于后续添加标记字符,死区用来添加已加密的数字指纹,而密钥区用于解密已加密的数字指纹,进一步,所述包括数字指纹的静态区域与可执行文件其他的静态区域相似。根据所述的防范预发布游戏盗版的数字指纹系统,所述的程序指纹模块还提供了:查找已添加数字指纹的可执行文件,包括并选择可执行文件中的多个关键指令,对所述关键指令与数字指纹进行乱序处理,并根据乱序处理分配对应一个不为零的排序数,用于对应一种排序方式,进一步,通过排序数对数字指纹进行查找。本发明的技术方案还包括一种防范预发布游戏盗版的数字指纹方法,其特征在于,该方法包括:在游戏程序运行时的显著的图片和/或文字中添加数字指纹;为游戏文件目录中添加至少一个指纹文件,该指纹文件只用于存储数字指纹,且指纹文件的位置可以自定义放置;选择游戏中至少一个纹理文件添加数字指纹;为游戏中的至少一个可执行程序文件添加数字指纹,自定义选取所述可视指纹模块、附加文件模块、纹理指纹模块、程序指纹模块中至少一个模块对游戏程序进行添加数字指纹。进一步,该方法还包括:采集游戏的开发、测试人员的姓名信息及对应指纹信息,并将姓名信息和指纹信息嵌入至游戏常见画面及文字当中。进一步,该方法还包括:创建至少一个附加文件用于存储数字指纹,且存储数字指纹的附加文件位置可以自定义修改,同时还对附加文件位置信息进行保留。进一步,该方法还包括:使用多个定制算法创建数字水印;根据所添加数字指纹对象的不同,获取添加数字指纹对象的原始文件,根据原始文件特性,在不影响原始文件的运行效果时,将所述算法子模块创建的数字水印以数字指纹形式嵌入对应的原始文件中,其中原始文件包括三维模型、动画文件及音效文件。进一步,该方法还包括:获取所添加数字指纹的已编译可执行文件,解析可执行文件并创建静态区域,其中静态区域包括密钥区和死区,其中密钥区用于后续添加标记字符,死区用来添加已加密的数字指纹,而密钥区用于解密已加密的数字指纹,进一步,所述包括数字指纹的静态区域与可执行文件其他的静态区域相似。在一个优选的实施方案中,该方法还包括:查找已添加数字指纹的可执行文件,包括并选择可执行文件中的多个关键指令,对所述关键指令与数字指纹进行乱序处理,并根据乱序处理分配对应一个不为零的排序数,用于对应一种排序方式,进一步,通过排序数对数字指纹进行查找。如下表1所示为不同的数字指纹的实现程度和破解的难度技术名称实现的容易程度破解的难度介绍画面中的人名极容易较困难附加文件极容易非常困难AdobePhotoshopCS的数字水印滤镜极容易非常困难利用定制算法,为图片添加数字指纹非常容易极困难利用定制算法,为3D模型、动画或音效文件添加数字指纹较容易极困难为可执行程序添加数字指纹较容易极困难多种策略的组合使用较容易极困难表1本发明的有益效果为:方便找出预发布版本泄露后的负责人,进而警示所有相关人员注意保护产品保密性,提高产品的安全性,维护产品的商业利益;多种保密技术组合使用,利用工具自动化操作,操作流程方便,对游戏体验无影响。附图说明图1所示为根据本发明实施方式的总体结构图。具体实施方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的防范预发布游戏盗版的数字指纹系统和方法适用于游戏的开发。图1所示为根据本发明实施方式的总体结构图。其包括(1)可视指纹模块、(2)附加文件模块、(3)纹理指纹模块、(4)纹理指纹模块、(5)组合模块、(6)组合模块,具体如下所示:(1)可视指纹模块,这个模块主要是起到昭示和防范的作用。这个方法实现起来非常简单,因为只需要改动一些文字或者是图片就可以了,包括添加开发和测试人员的名称信息及指纹嵌入至明显的文字或图片。(2)附加文件,这个模块需要在游戏版本中增加一个或多个垃圾文件。之所以被称为垃圾文件,是因为游戏的正常运行根本不需要这些文件。这些文件存在的唯一价值就是为了数字指纹。这个技术堪称绝妙,因为它不但实现起来非常容易,而且添加的数字指纹也极难被发现。特别是知道,大多数的游戏都有着成千上万个文件。这个技术就像是在一个大干草堆上插了一根有标记的缝衣针。(3)如果要在游戏中的纹理文件中添加数字指纹,可以使用Photoshop的数字水印滤镜。这个特性让可以用四种不同级别的耐久性,将1到16777215之间的任意一个数字嵌入到图片中。数字水印的耐久性代表着其被破坏的难易程度。如果有人用简单的滤镜功能来处理这个图片,以破坏其中的数字水印。那么,这个图片的数字水印的耐久性越高,就越难以被破坏。由于一款游戏怎么也得有成百上千的纹理图片,在其中的两三个文件中添加数字指纹也就足够了。真要把它们都找出来,可不是一件容易的事情。利用定制算法,为图片添加数字指纹,由于Photoshop的数字水印滤镜是一个广泛使用的工具,一种变通的方法是开发一个自己的算法,来为图片添加数字指纹。结合上面讲过的“干草堆中的缝衣针”的方法,只需要为几个图片文件加上数字指纹就足够了。大海捞针似地想找到这些文件,几乎是不可能的。利用定制算法,为3D模型、动画或音效文件添加数字指纹,对于3D模型、动画和音效文件,可以微妙地改变这些文件的数据,就可以为它们添加数字指纹了。如果知道某个文件最初应该是什么样子的,对这个文件做些微小的改动,就可以将数字指纹嵌入其中。虽然这样会不可避免地引入数据噪音,但如果操作正确,应该不会改变这些文件的原貌和效果。攻击者也几乎无法找到其中的数字指纹。(4)程序指纹模块,前面讲到的那些技术都是集中在如何修改游戏的资产(图片、动画、3D模型等等)。但要知道,游戏的可执行代码也是一个非常适合隐藏数字指纹的地方。如果在编译之前,在代码盲区中添加数字指纹,这多少有些不值得,同时也会增加数字指纹嵌入工作的流程复杂度。最理想的做法是:将数字水印添加工作作为一个后期处理过程,对一个已经编译完毕的可执行文件添加数字指纹。有一个方法是在代码中说明几个静态数据,其中包括一个唯一的密钥和一些死区,比如—个24个字节的标记,后面跟一个32个字节的垃圾区。作为一个后期处理过程,可以利用工具软件读入游戏的可执行文件,找到那个24个字节的标记区,然后用一个加密的数字指纹来覆写那个32个字节的垃圾区。而读出这个数字指纹的过程也很简单,同样是先找到那个24个字节的标记区,然后就可以对下面的32个字节的垃圾区进行解密操作了。为了让这个数字指纹尽量的隐蔽,应该注意:让定义的这个静态数据看上去与静态数据区中其他的数据字节没有什么分别。还有一个方法可以帮助嵌入无法找到的数字指纹,就是重新编排关键指令的顺序。都知道,在游戏代码中,有些位置上的代码,其执行顺序是无关紧要的(毕竟,这是乱序处理器提高执行速度的方法)。如果能够找到这样的5个连续的指令,那么就可以拥有120种不同的排列方式,来重新排列这5条指令。如此这般,通过对现有指令代码的重新排序,就可以在其中隐式地嵌入一个1~119的数字作为数字指纹(这里请注意,不能嵌入数字0,这样就相当于保持原来的指令顺序)。要找到这样嵌入的数字指纹也几乎是不可能的。(5)组合模块,用于多种策略的组合使用。虽然上面的每个技术都是各有功效的,但如果能综合使用,则威力会更强大,更难以破解。多种技术的结合使用,使得至少会有一种技术有效,未被破解的概率大大提高,可以根据未被破解的数字指纹,来准确地辨别出被泄露的版本。由于上面讲到的大部分技术都比较容易实现,所以多种策略的组合使用,是非常明智的做法。下表中列出了各种方法的简要信息,以及各自实现的容易程度和被破解的困难程度。以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1