一种Cocos游戏包的资源加解密方法、系统及介质与流程

文档序号:29123138发布日期:2022-03-04 22:59阅读:1952来源:国知局
一种Cocos游戏包的资源加解密方法、系统及介质与流程
一种cocos游戏包的资源加解密方法、系统及介质
技术领域
1.本发明涉及游戏资源处理技术领域,特别是涉及一种cocos游戏包的资源加解密方法、系统及介质。


背景技术:

2.现有技术中,通常会采用cocoscreator对游戏进行打包,这种方法打包生成的游戏包中的数据资源都是未经加密的原始图片资源,且该原始图片资源是不支持加密的,故资源的未加密会导致该游戏包容易被解压和盗用,从而泄露游戏的重要资源信息,导致游戏被侵权。


技术实现要素:

3.本发明主要解决的是现有技术中,采用cocoscreator所打包的游戏包容易被解压和盗用的问题。
4.为解决上述技术问题,本发明采用的一个技术方案是:提供一种cocos游戏包的资源加解密方法,包括以下步骤:待加密资源获取步骤:获取游戏包打包进程;设定进程完成基准、资源类型和资源转换格式;基于所述打包进程和所述进程完成基准获取cocos游戏包;基于所述资源类型对所述cocos游戏包中的游戏资源进行遍历,得到第一待加密资源;基于所述资源转换格式对所述第一待加密资源执行资源格式转换操作,得到第二待加密资源数组;游戏资源加解密步骤:配置偏移加密算法、加密秘钥、解密秘钥和风险名单;基于所述偏移加密算法、所述加密秘钥和所述解密秘钥对所述第二待加密资源数组执行偏移迭代加密操作,得到加密游戏资源包;检测所述加密游戏资源包的调用状态,基于所述偏移迭代加密操作配置解密算法,基于所述风险名单、所述调用状态和所述解密算法执行资源解密操作。
5.作为一种改进的方案,所述基于所述打包进程和所述进程完成基准获取cocos游戏包的步骤进一步包括:识别所述打包进程的进程信息,比对所述进程信息与所述进程完成基准;当所述进程信息与所述进程完成基准相匹配时,获取所述游戏包的存储地址;访问所述存储地址,提取所述存储地址中与所述进程信息相匹配的数据包,得到所述cocos游戏包。
6.作为一种改进的方案,所述基于所述资源类型对所述cocos游戏包中的游戏资源进行遍历,得到第一待加密资源的步骤进一步包括:识别所述cocos游戏包中若干所述游戏资源所分别对应的若干属性信息;采用筛选算法在若干所述属性信息中筛选出与所述资源类型相匹配的第一属性信息;设定所述第一属性信息所对应的所述游戏资源为所述第一待加密资源。
7.作为一种改进的方案,所述资源格式转换操作包括:
将所述第一待加密资源转换为数据格式与所述资源转换格式相匹配的资源数据,得到第三待加密资源数据;设定第一存储阈值;识别所述第三待加密资源数据的存储占用值;计算所述存储占用值与所述第一存储阈值的商值,得到资源数组基准值;基于所述第一存储阈值和所述资源数组基准值配置资源数组容器;将所述第三待加密资源数据导入所述资源数组容器中,得到所述第二待加密资源数组。
8.作为一种改进的方案,所述偏移迭代加密操作包括:配置第一空数组和第一空数据包;设定字符串转换格式;将所述第二待加密资源数组、所述加密秘钥和所述解密秘钥整合至所述第一空数组中,得到第三待加密数组;调用所述偏移加密算法对所述第三待加密数组进行偏移处理,得到第四偏移数组;按照所述字符串转换格式将所述第四偏移数组转换为加密字符串;将所述加密字符串导入所述第一空数据包中,得到第四加密数据包;所述第四加密数据包为所述加密游戏资源包。
9.作为一种改进的方案,所述偏移加密算法对于所述第三待加密数组的偏移处理逻辑包括:设定数据偏移公式和秘钥偏移公式;基于所述加密秘钥和所述解密秘钥设定第一数据基准偏移值、第一加密基准偏移值和第一解密基准偏移值;识别所述第二待加密资源数组中的第一数据,设定所述第一数据为基准偏移数据;识别所述加密秘钥中的第一加密字符,识别所述解密秘钥中的第一解密字符,设定所述第一加密字符和所述第一解密字符分别为基准加密字符和基准解密字符;基于所述第一数据基准偏移值、所述第一加密基准偏移值和所述第一解密基准偏移值对所述基准偏移数据、所述基准加密字符和所述基准解密字符执行偏移步骤;所述偏移步骤包括:基于所述第一数据基准偏移值对所述基准偏移数据进行偏移处理,得到第一偏移数据;基于所述第一加密基准偏移值对所述基准加密字符进行偏移处理,得到第一加密偏移字符;基于所述第一解密基准偏移值对所述基准解密字符进行偏移处理,得到第一解密偏移字符;基于所述第一偏移数据、所述第一加密偏移字符和所述第一解密偏移字符执行偏移值迭代步骤;所述偏移值迭代步骤包括:将所述第一偏移数据代入所述数据偏移公式,得到第二数据基准偏移值;将所述第一加密偏移字符代入所述秘钥偏移公式,得到第二加密基准偏移值;将所述第一解密偏移字符代入所述秘钥偏移公式,得到第二解密基准偏移值;识别所述第二待加密资源数组的新基准偏移数据,识别所述加密秘钥的新基准加密字符,识别所述解密秘钥的新基准解密字符;基于所述第二数据基准偏移值、所述第二加密基准偏移值、所述第二解密基准偏移值、所述新基准偏移数据、所述新基准加密字符和所述新基准解密字符回到所述偏移步骤。
10.作为一种改进的方案,所述基于所述风险名单、所述调用状态和所述解密算法执行资源解密操作的步骤进一步包括:当所述调用状态为存在第一用户调用所述加密游戏资源包时,执行所述资源解密操作;
所述资源解密操作包括:获取所述第一用户的第一用户信息,判断所述风险名单中是否存在与所述第一用户信息相匹配的第二用户信息;若存在,则删除所述加密游戏资源包,并执行告警操作;若不存在,则调用所述解密算法对所述加密游戏资源包进行解密处理。
11.作为一种改进的方案,所述资源转换格式为:二进制格式;所述解密算法为根据与所述偏移迭代加密操作相反的处理逻辑所配置的操作算法;所述第一数据基准偏移值包括:数组首位偏移值、数组末位偏移值和与逻辑加密值。
12.本发明还提供一种cocos游戏包的资源加解密方法的cocos游戏包的资源加解密系统,包括:待加密资源获取模块和游戏资源加解密模块;所述待加密资源获取模块用于获取游戏包打包进程以及设定进程完成基准、资源类型和资源转换格式;所述待加密资源获取模块基于所述打包进程和所述进程完成基准获取cocos游戏包;所述待加密资源获取模块基于所述资源类型对所述cocos游戏包中的游戏资源进行遍历,得到第一待加密资源;所述待加密资源获取模块基于所述资源转换格式对所述第一待加密资源执行资源格式转换操作,得到第二待加密资源数组;所述游戏资源加解密模块用于配置偏移加密算法、加密秘钥、解密秘钥和风险名单;所述游戏资源加解密模块基于所述偏移加密算法、所述加密秘钥和所述解密秘钥对所述第二待加密资源数组执行偏移迭代加密操作,得到加密游戏资源包;所述游戏资源加解密模块检测所述加密游戏资源包的调用状态,所述游戏资源加解密模块基于所述偏移迭代加密操作配置解密算法,所述游戏资源加解密模块基于所述风险名单、所述调用状态和所述解密算法执行资源解密操作。
13.本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述cocos游戏包的资源加解密方法的步骤。
14.本发明的有益效果是:1、本发明所述的cocos游戏包的资源加解密方法,可以实现对采用cocoscreator所打包的游戏包中原本不支持加密的源文件进行了高复杂度的加密,且所使用的加密算法逻辑巧妙,易于调用但不易于破解,不影响游戏资源的打包过程同时也提高了游戏包的安全性,防止了游戏包被解压和调用,弥补了现有技术的不足。
15.2、本发明所述的cocos游戏包的资源加解密系统,可以通过待加密资源获取模块和游戏资源加解密模块的相互配合,进而实现对采用cocoscreator所打包的游戏包中原本不支持加密的源文件进行了高复杂度的加密,且所使用的加密算法逻辑巧妙,易于调用但不易于破解,不影响游戏资源的打包过程同时也提高了游戏包的安全性,防止了游戏包被解压和调用,弥补了现有技术的不足。
16.3、本发明所述的计算机可读存储介质,可以实现引待加密资源获取模块和游戏资源加解密模块进行配合,进而实现对采用cocoscreator所打包的游戏包中原本不支持加密的源文件进行了高复杂度的加密,且所使用的加密算法逻辑巧妙,易于调用但不易于破解,不影响游戏资源的打包过程同时也提高了游戏包的安全性,防止了游戏包被解压和调用,弥补了现有技术的不足,并有效提高所述cocos游戏包的资源加解密方法的可操作性。
附图说明
17.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明实施例1所述cocos游戏包的资源加解密方法的流程图;图2是本发明实施例1中步骤s100的具体流程示意图;图3是本发明实施例1中步骤s200的具体流程示意图;图4是本发明实施例2所述cocos游戏包的资源加解密系统的架构图。
具体实施方式
19.下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
20.在本发明的描述中,需要说明的是,本发明所描述的实施例是本发明一部分实施例,而不是全部的实施例;基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”、“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。
22.在本发明的描述中,需要说明的是:cocoscreator是一种游戏开发引擎。
23.实施例1本实施例提供一种cocos游戏包的资源加解密方法,如图1~图3所示,包括以下步骤:s100、待加密资源获取步骤,具体包括:s110、获取游戏包打包进程;在本实施例中,因考虑到游戏包需要在打包完成后进行相应的加密操作,故需要对游戏包的打包进程进行监测;s120、设定进程完成基准、资源类型和资源转换格式;在本实施例中,因考虑到游戏包中重要的资源以及难以加密的资源为图片资源,故需要对图片资源进行加密操作,故资源类型为图片类;进程完成基准为cocos打包游戏资源至完成状态;因对于图片类的资源进行加密时,只能对二进制数据进行处理,而图片由像素点数据和色彩值数据组合而成,故由此出发,设计资源转换格式为二进制格式;s130、基于所述打包进程和所述进程完成基准获取cocos游戏包;具体的,识别所述打包进程的进程信息,比对所述进程信息与所述进程完成基准;当所述进程信息与所述进程完成基准相匹配时,说明cocos打包完毕游戏,已经生成了相应的游戏包,故获取所述游戏包的存储地址,该存储地址是对应cocos所打包游戏时的打包目的地,包括但不限于存储路径的文本信息;访问所述存储地址,提取所述存储地址中与所述进程信息相匹配的数据包,该数据包则为cocos所打包的游戏包;在本步骤s100中,主要目的为完成初始化的配置操作以及相关的游戏包获取操作,为后续的加密操作提供数据基础,同时,通过进程校验的形式,得到了对应的游戏包,保证了数据的完整性,同时也在进程监控过程中防止了危险用户对打包的过程进行干扰或入侵,一定程度上提升了安全性;
对应的,步骤s130的部分实现代码如下:callforeach(getallbuildtextures(buildresults), (uuid, next) =》 {
ꢀꢀꢀꢀꢀꢀꢀꢀ
var file = buildresults.getnativeassetpath(uuid);
ꢀꢀꢀꢀꢀꢀꢀꢀ
if(file.substr(-3) === 'png') { // png结尾的图片
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
encryptonepng(file, next, next);
ꢀꢀꢀꢀꢀꢀꢀꢀ
} else {
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
next();
ꢀꢀꢀꢀꢀꢀꢀꢀ
}
ꢀꢀꢀꢀ
}, () =》 {
ꢀꢀꢀꢀꢀꢀꢀꢀ
_log('encrypt pngs finish');
ꢀꢀꢀꢀꢀꢀꢀꢀ
callback && callback();});s140、基于所述资源类型对所述cocos游戏包中的游戏资源进行遍历,得到第一待加密资源;具体的,识别所述cocos游戏包中若干所述游戏资源所分别对应的若干属性信息;属性信息包括但不限于游戏资源的资源类型、资源存储格式、资源占用值、资源id信息等等;采用筛选算法在若干所述属性信息中筛选出与所述资源类型相匹配的第一属性信息;在本实施例中,筛选算法采用正则匹配算法,进一步提升了筛选的效率且提升了方法的可操作性;设定所述第一属性信息所对应的所述游戏资源为所述第一待加密资源;第一待加密资源即为原本cocos游戏包中难以加密的资源,在本实施例中即为图片资源;s150、基于所述资源转换格式对所述第一待加密资源执行资源格式转换操作,得到第二待加密资源数组;步骤s150即为承上启下的步骤,一方面对待加密的资源进行格式转换,不仅使资源格式统一便于统一的调用或处理,另一方面解决了图片资源难以加密的问题,为后续的加密操作提供数据基础;具体的,所述资源格式转换操作包括:将所述第一待加密资源转换为数据格式与所述资源转换格式相匹配的资源数据,得到第三待加密资源数据;第三待加密资源数据即为二进制格式的图片资源数据,该数据在后续的加密、读取和调用时都要按照二进制格式进行读取;设定第一存储阈值;在本实施例中,第一存储阈值为1byte;识别所述第三待加密资源数据的存储占用值;存储占用值即为第三待加密资源数据的大小,例如100byte等;计算所述存储占用值与所述第一存储阈值的商值,得到资源数组基准值;因后续进行的加密操作主要采用偏移加密算法,故需要将资源转换为数组的形式进行分别存储,便于后续的加密操作;该资源数组基准值代表需要配置多少个资源数组容器;故基于所述第一存储阈值和所述资源数组基准值配置资源数组容器,得到资源数组基准值个大小为所述第一存储阈值的资源数组容器;将所述第三待加密资源数据导入所述资源数组容器中,得到所述第二待加密资源数组;在本实施例中,第二待加密资源数即为1byte的数组;对应的,步骤s150的部分实现代码如下:function encryptonepng(file, cbk, fail) {
ꢀꢀꢀꢀ
//_log('compressing: ' + file)
ꢀꢀꢀꢀ
//if(file.indexof('resources/native/0c/0c') !=
ꢀ‑
1)
ꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀ
fs.readfile(file,'binary',function(err,data)
ꢀꢀꢀꢀꢀꢀꢀꢀ
{
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
if(err)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
_log(err);
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
elses200、游戏资源加解密步骤,具体包括:s210、配置偏移加密算法、加密秘钥、解密秘钥和风险名单;在本实施例中,加密密钥和解密秘钥均根据具体的加密需求进行设置,加密秘钥和解密秘钥的格式均为字符串的形式,且相互关联;风险名单即为根据网络数据安防中心中所下载或获取的游戏资源方面的高危访问用户或劣迹访问用户或黑名单访问用户,进而用于在解密操作时,提供相应的用户校验,进一步把控加密后游戏包的调用安全性;s220、基于所述偏移加密算法、所述加密秘钥和所述解密秘钥对所述第二待加密资源数组执行偏移迭代加密操作,得到加密游戏资源包;具体的,所述偏移迭代加密操作包括:配置第一空数组和第一空数据包;第一空数组和第一空数据包均为待存放数据的空格式容器;设定字符串转换格式;该字符串转换格式即为数组转字符串格式,字符串格式与未转换成数组形式之前的二进制资源数据的格式相同;将所述第二待加密资源数组、所述加密秘钥和所述解密秘钥整合至所述第一空数组中,得到第三待加密数组;在本实施例中,不仅对游戏资源数据进行迭代偏移处理,同时对加密秘钥和解密秘钥也进行了迭代偏移处理,进一步提升了安全性;在所述加密秘钥和所述解密秘钥整合至所述第一空数组中时,同样将所述加密秘钥和所述解密秘钥分别转换为long数组的形式;调用所述偏移加密算法对所述第三待加密数组进行偏移处理,得到第四偏移数组;按照所述字符串转换格式将所述第四偏移数组转换为加密字符串;将所述加密字符串导入所述第一空数据包中,得到第四加密数据包;对数据进行偏移处理时,数据本身发生了改变,不影响数据所处的位置及占用,待偏移处理后再次观察数据皆为乱码的形式,安全性极高,不易被破解,故所述第四加密数据包为所述加密游戏资源包;具体的,所述偏移加密算法对于所述第三待加密数组的偏移处理逻辑包括:设定数据偏移公式和秘钥偏移公式;基于所述加密秘钥和所述解密秘钥设定第一数据基准偏移值、第一加密基准偏移值和第一解密基准偏移值;具体的,所述第一数据基准偏移值包括:数组首位偏移值、数组末位偏移值、与逻辑加密值和黄金常量;对应的,第一加密基准偏移值和第一解密基准偏移值的数据内容与第一数据基准偏移值的数据内容相同,均包括首位相关值、末位相关值、与逻辑相关加密值和黄金常量;对应的,在本实施例中,数据偏移公式和秘钥偏移公式具体情况具体设置;该公式均为后续用于步骤循环迭代时,对于第一数据基准偏移值、第一加密基准偏移值和第一解密基准偏移值进行迭代调整的数学公式,包括但不限于数学公式和取值范围;对应的,主要的偏移迭代原理为:识别所述第二待加密资源数组中的第一数据,设定所述第一数据为基准偏移数据;识别所述加密秘钥中的第一加密字符,识别所述解密秘钥中的第一解密字符,设定所述第一加密字符和所述第一解密字符分别为基准加密字符和基准解密字符;基于所述第一数据基准偏移值、所述第一加密基准偏移值和所述第一解密
基准偏移值对所述基准偏移数据、所述基准加密字符和所述基准解密字符执行偏移步骤;所述偏移步骤包括:基于所述第一数据基准偏移值对所述基准偏移数据进行偏移处理,得到第一偏移数据;基于所述第一加密基准偏移值对所述基准加密字符进行偏移处理,得到第一加密偏移字符;基于所述第一解密基准偏移值对所述基准解密字符进行偏移处理,得到第一解密偏移字符;基于所述第一偏移数据、所述第一加密偏移字符和所述第一解密偏移字符执行偏移值迭代步骤;对应的,偏移处理的具体原理以基准偏移数据作为举例:将基准偏移数据在原本的数据结构中右移与数组末位偏移值相同的位数,在本实施例中为两位,将右移后的数据首位补全与数组首位偏移值相同的值,在本实施例中,数组首位偏移值为0,故左侧补0;最终得到的偏移加部位后的数据再与与逻辑加密值绑定,得到最终的第一偏移数据;第一加密偏移字符、第一解密偏移字符的处理过程与上述原理相同;对应的,通过该偏移处理后的资源数据已经为乱码形式,破解难度极高,同时,在偏移处理中所加上的与逻辑加密值会进一步加大解密难度,在进行解密时,必须输入相同的与逻辑值进行匹配,才可以解密成功,这使本来就复杂的乱码形式的资源更加的安全;对应的,执行完一次上述步骤后,把得到的结果,即第一偏移数据、第一加密偏移字符和第一解密偏移字符代入数据偏移公式和秘钥偏移公式,得到新的基准偏移数据,之后根据该基准偏移数据再对数组中未加密的数据进行偏移处理,如此迭代处理,每一步的加密关键数据都会根据上一步偏移处理所产生的结果而发生改变,极难进行破解,在本实施例中,数据偏移公式和秘钥偏移公式根据黄金常量进行设置,可以将每次迭代的结果都增加该黄金常量,进而达到每次基准偏移数据的改变,安全性极高;最终循环迭代至数组中所有的数据都被偏移处理后,结束加密操作;故所述偏移值迭代步骤包括:将所述第一偏移数据代入所述数据偏移公式,得到第二数据基准偏移值;将所述第一加密偏移字符代入所述秘钥偏移公式,得到第二加密基准偏移值;将所述第一解密偏移字符代入所述秘钥偏移公式,得到第二解密基准偏移值;识别所述第二待加密资源数组的新基准偏移数据,识别所述加密秘钥的新基准加密字符,识别所述解密秘钥的新基准解密字符;基于所述第二数据基准偏移值、所述第二加密基准偏移值、所述第二解密基准偏移值、所述新基准偏移数据、所述新基准加密字符和所述新基准解密字符回到所述偏移步骤;通过此步骤,进行数据的高安全性加密操作,弥补了现有技术的不足;对应的,步骤s220的部分实现代码如下:function xxtea_encrypt(str, key) {
ꢀꢀꢀꢀ
if (str == "") {
ꢀꢀꢀꢀꢀꢀꢀꢀ
return "";
ꢀꢀꢀꢀ
}
ꢀꢀꢀꢀ
// 将传入的待偏移的图片字符串转为long数组;
ꢀꢀꢀꢀ
var v = str2long(str, true);
ꢀꢀꢀꢀ
// 将传入的秘钥转为long数组;
ꢀꢀꢀꢀ
var k = str2long(key, false);
ꢀꢀꢀꢀ
var n = v.length
ꢀ‑ꢀ
1;
ꢀꢀꢀꢀ
// z为数组末位值,y为数组首位值,delta为定值黄金常量;var z = v[n], y = v[0], delta = 0x9e3779b9;
ꢀꢀꢀꢀ
// 定义初始化的值,q为循环迭代次数;
ꢀꢀꢀꢀ
var mx, e, q = math.floor(6 + 52 / (n + 1)), sum = 0;
ꢀꢀꢀꢀ
// 循环每轮迭代加密;while (q
‑‑ꢀ
》 0) {
ꢀꢀꢀ
// 每次将上一轮的结果加上黄金常量;
ꢀꢀꢀꢀꢀꢀꢀꢀ
sum = sum + delta;
ꢀꢀꢀꢀꢀꢀꢀ
// 得到的接过右移2位,左侧补0,结果和3按位与逻辑处理;
ꢀꢀꢀꢀꢀꢀꢀꢀ
e = sum 》》》 2 & 3;s230、检测所述加密游戏资源包的调用状态,基于所述偏移迭代加密操作配置解密算法,基于所述风险名单、所述调用状态和所述解密算法执行资源解密操作;具体的,本步骤考虑到具体游戏包的应用,虽然进行了加密但也不能防止正常用户的调用;故当所述调用状态为存在第一用户调用所述加密游戏资源包时,带存在第一用户需要运行游戏,故执行所述资源解密操作;所述资源解密操作包括:获取所述第一用户的第一用户信息,判断所述风险名单中是否存在与所述第一用户信息相匹配的第二用户信息;若存在,则说明该第一用户为非法用户,存在游戏资源盗用风险,故从源头阻断游戏资源包的盗用,故删除所述加密游戏资源包,并执行告警操作,告警操作即为向游戏资源包的管理后台例如管理人员的移动端发送信息或拨打语音提示电话;若不存在,则说明该用户为正常使用用户,故调用所述解密算法对所述加密游戏资源包进行解密处理;具体的,在本实施例中,所述解密算法为根据与所述偏移迭代加密操作相反的处理逻辑所配置的操作算法,采用该解密算法专门为经过本方法所加密的游戏资源包进行解密;考虑到安全性,解密算法与游戏资源包不配置在同一个数据文件中。
[0024]
实施例2本实施例基于实施例1中所述cocos游戏包的资源加解密方法的发明构思,提供一种cocos游戏包的资源加解密系统,如图4所示,包括:待加密资源获取模块和游戏资源加解密模块;所述cocos游戏包的资源加解密系统中,待加密资源获取模块用于获取游戏包打包进程以及设定进程完成基准、资源类型和资源转换格式;所述待加密资源获取模块基于所述打包进程和所述进程完成基准获取cocos游戏包;所述待加密资源获取模块基于所述资源类型对所述cocos游戏包中的游戏资源进行遍历,得到第一待加密资源;所述待加密资源获取模块基于所述资源转换格式对所述第一待加密资源执行资源格式转换操作,得到第二待加密资源数组;具体的,待加密资源获取模块识别所述打包进程的进程信息,并比对所述进程信息与所述进程完成基准;当所述进程信息与所述进程完成基准相匹配时,待加密资源获取模块获取所述游戏包的存储地址;待加密资源获取模块访问所述存储地址,并提取所述存储地址中与所述进程信息相匹配的数据包,得到所述cocos游戏包;具体的,待加密资源获取模块识别所述cocos游戏包中若干所述游戏资源所分别对应的若干属性信息;待加密资源获取模块采用筛选算法在若干所述属性信息中筛选出与所述资源类型相匹配的第一属性信息;待加密资源获取模块设定所述第一属性信息所对应
的所述游戏资源为所述第一待加密资源;具体的,所述资源格式转换操作包括:待加密资源获取模块将所述第一待加密资源转换为数据格式与所述资源转换格式相匹配的资源数据,得到第三待加密资源数据;待加密资源获取模块设定第一存储阈值;待加密资源获取模块识别所述第三待加密资源数据的存储占用值;待加密资源获取模块计算所述存储占用值与所述第一存储阈值的商值,得到资源数组基准值;待加密资源获取模块基于所述第一存储阈值和所述资源数组基准值配置资源数组容器;待加密资源获取模块将所述第三待加密资源数据导入所述资源数组容器中,得到所述第二待加密资源数组。
[0025]
所述cocos游戏包的资源加解密系统中,游戏资源加解密模块用于配置偏移加密算法、加密秘钥、解密秘钥和风险名单;所述游戏资源加解密模块基于所述偏移加密算法、所述加密秘钥和所述解密秘钥对所述第二待加密资源数组执行偏移迭代加密操作,得到加密游戏资源包;所述游戏资源加解密模块检测所述加密游戏资源包的调用状态,所述游戏资源加解密模块基于所述偏移迭代加密操作配置解密算法,所述游戏资源加解密模块基于所述风险名单、所述调用状态和所述解密算法执行资源解密操作;具体的,所述偏移迭代加密操作包括:游戏资源加解密模块配置第一空数组和第一空数据包;游戏资源加解密模块设定字符串转换格式;游戏资源加解密模块将所述第二待加密资源数组、所述加密秘钥和所述解密秘钥整合至所述第一空数组中,得到第三待加密数组;游戏资源加解密模块调用所述偏移加密算法对所述第三待加密数组进行偏移处理,得到第四偏移数组;游戏资源加解密模块按照所述字符串转换格式将所述第四偏移数组转换为加密字符串;游戏资源加解密模块将所述加密字符串导入所述第一空数据包中,得到第四加密数据包;所述第四加密数据包为所述加密游戏资源包;具体的,所述偏移加密算法对于所述第三待加密数组的偏移处理逻辑包括:游戏资源加解密模块设定数据偏移公式和秘钥偏移公式;游戏资源加解密模块基于所述加密秘钥和所述解密秘钥设定第一数据基准偏移值、第一加密基准偏移值和第一解密基准偏移值;游戏资源加解密模块识别所述第二待加密资源数组中的第一数据,并设定所述第一数据为基准偏移数据;游戏资源加解密模块识别所述加密秘钥中的第一加密字符,并识别所述解密秘钥中的第一解密字符,游戏资源加解密模块设定所述第一加密字符和所述第一解密字符分别为基准加密字符和基准解密字符;游戏资源加解密模块基于所述第一数据基准偏移值、所述第一加密基准偏移值和所述第一解密基准偏移值对所述基准偏移数据、所述基准加密字符和所述基准解密字符执行偏移步骤;所述偏移步骤包括:游戏资源加解密模块基于所述第一数据基准偏移值对所述基准偏移数据进行偏移处理,得到第一偏移数据;游戏资源加解密模块基于所述第一加密基准偏移值对所述基准加密字符进行偏移处理,得到第一加密偏移字符;游戏资源加解密模块基于所述第一解密基准偏移值对所述基准解密字符进行偏移处理,得到第一解密偏移字符;游戏资源加解密模块基于所述第一偏移数据、所述第一加密偏移字符和所述第一解密偏移字符执行偏移值迭代步骤;所述偏移值迭代步骤包括:游戏资源加解密模块将所述第一偏移数据代入所述数据偏移公式,得到第二数据基准偏移值;游戏资源加解密模块将所述第一加密偏移字符代
入所述秘钥偏移公式,得到第二加密基准偏移值;游戏资源加解密模块将所述第一解密偏移字符代入所述秘钥偏移公式,得到第二解密基准偏移值;游戏资源加解密模块识别所述第二待加密资源数组的新基准偏移数据,并识别所述加密秘钥的新基准加密字符,游戏资源加解密模块识别所述解密秘钥的新基准解密字符;游戏资源加解密模块基于所述第二数据基准偏移值、所述第二加密基准偏移值、所述第二解密基准偏移值、所述新基准偏移数据、所述新基准加密字符和所述新基准解密字符回到所述偏移步骤。
[0026]
具体的,当所述调用状态为存在第一用户调用所述加密游戏资源包时,游戏资源加解密模块执行所述资源解密操作;所述资源解密操作包括:游戏资源加解密模块获取所述第一用户的第一用户信息,并判断所述风险名单中是否存在与所述第一用户信息相匹配的第二用户信息;若存在,则游戏资源加解密模块删除所述加密游戏资源包,并执行告警操作;若不存在,则游戏资源加解密模块调用所述解密算法对所述加密游戏资源包进行解密处理。
[0027]
实施例3本实施例提供一种计算机可读存储介质,包括:所述存储介质用于储存将上述实施例1所述的cocos游戏包的资源加解密方法实现所用的计算机软件指令,其包含用于执行上述为所述cocos游戏包的资源加解密方法所设置的程序;具体的,该可执行程序可以内置在实施例2所述的cocos游戏包的资源加解密系统中,这样,cocos游戏包的资源加解密系统就可以通过执行内置的可执行程序实现所述实施例1所述的cocos游戏包的资源加解密方法。
[0028]
此外,本实施例具有的计算机可读存储介质可以采用一个或多个可读存储介质的任意组合,其中,可读存储介质包括电、光、电磁、红外线或半导体的系统、装置或器件,或者以上任意组合。
[0029]
区别于现有技术,采用本技术一种cocos游戏包的资源加解密方法、系统及介质可以通过本方法对采用cocoscreator所打包的游戏包中原本不支持加密的源文件进行了高复杂度的加密,且所使用的加密算法逻辑巧妙,易于调用但不易于破解,不影响游戏资源的打包过程同时也提高了游戏包的安全性,通过本系统为本方法提供了有效的技术特征,最终防止了游戏包被解压和调用,弥补了现有技术的不足。
[0030]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0031]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0032]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1