一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

unity代码安全防护方法、计算机可读介质与流程

2021-12-03 23:04:00 来源:中国专利 TAG:


1.本技术属于计算机科学技术领域,特别地属于数据处理技术领域,具体涉及unity代码安全防护方法、计算机可读介质。


背景技术:

2.基于unity的棋牌游戏玩法多,特别是各个地方的玩法都不大一样,在游戏推广使用中需要针对不同地域定做独立的工程包,而针对各个地区进行单独打包的推广模式无疑造成产品开发成本高;同时为了确保棋牌游戏的代码安全,防止被恶意篡改,需要采取合理措施确保unity棋牌游戏的代码安全。


技术实现要素:

3.有鉴于此,一方面,一些实施例公开的技术方案是unity代码安全防护方法,具体包括:
4.将基于unity棋牌游戏的所有玩法的合集工程拆分为只包括一种玩法的单一工程,其中,合集工程包括所有玩法的公共部分和每一种玩法的特征部分,单一工程包括所有玩法的公共部分和单一工程的特征部分;
5.将单一工程的代码进行混淆,并增加垃圾代码,单一工程变为不可读单一工程。
6.进一步,一些实施例公开的unity代码安全防护方法,还包括将不可读单一工程进行代码还原,恢复为单一工程。
7.一些实施例公开的unity代码安全防护方法,拆分合集工程包括代码拆分和资源拆分。
8.一些实施例公开的unity代码安全防护方法,代码拆分包括:将合集工程中与某一种单一工程无关的代码删除,只保留公共部分代码和该单一工程特征部分代码。
9.一些实施例公开的unity代码安全防护方法,每一种玩法的特征部分代码都以特别定义的宏进行标识。
10.一些实施例公开的unity代码安全防护方法,代码拆分过程包括对特别定义的宏的识别。
11.一些实施例公开的unity代码安全防护方法,资源拆分包括:保留包括公共资源的文件夹和包括某一个单一工程资源的文件夹,删除其他单一工程资源的文件夹。
12.一些实施例公开的unity代码安全防护方法,将单一工程的代码进行混淆包括:将单一工程的代码变成不可识别的代码。
13.一些实施例公开的unity代码安全防护方法,垃圾代码包括执行无效的代码。
14.另一方面,一些实施例公开了一种包含计算机执行指令的计算机可读介质,该计算机执行指令经由数据处理设备处理时,该数据处理设备执行unity代码安全防护方法。
15.本技术实施例公开的unity代码安全防护方法,能够将包括所有玩法的合集工程合理拆分为只包括一种玩法的单一工程,并对单一工程进行代码混淆,使其变为不可读代
码,提高另外代码的安全性,进一步通过增加垃圾代码,进一步提高了代码的安全性;合集工程集合了所有玩法的公共部分和每一种不同玩法的特征部分,通过合理拆分变成只包括一种玩法的单一工程有利于unity棋牌游戏的推广,同时减小了unity棋牌游戏的开发成本。unity代码安全防护方法能够防止代码被反编译后被二次开发,防止unity代码被根据符号表关键字定位内存位置然后进行修改,确保游戏数据安全。
附图说明
16.图1实施例1unity代码安全防护方法流程框图
17.附图标记
[0018]1ꢀꢀꢀꢀ
合集工程
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
11
ꢀꢀꢀ
代码集合
[0019]
12
ꢀꢀꢀ
资源集合
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ2ꢀꢀꢀꢀ
单一工程
[0020]
21
ꢀꢀꢀ
四川代码集合
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
22
ꢀꢀꢀ
四川资源集合
[0021]3ꢀꢀꢀꢀ
不可读单一工程
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
31
ꢀꢀꢀ
不可读代码
[0022]
32
ꢀꢀꢀ
不可读资源
具体实施方式
[0023]
在这里专用的词“实施例”,作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。本技术实施例中性能指标测试,除非特别说明,采用本领域常规试验方法。应理解,本技术中所述的术语仅仅是为描述特别的实施方式,并非用于限制本技术公开的内容。
[0024]
除非另有说明,否则本文使用的技术和科学术语具有本技术所属技术领域的普通技术人员通常理解的相同含义;作为本技术中其它未特别注明的试验方法和技术手段均指本领域内普通技术人员通常采用的实验方法和技术手段。
[0025]
在本文中,包括权利要求书中,连接词,如“包含”、“包括”、“带有”、“具有”、“含有”、“涉及”、“容纳”等被理解为是开放性的,即是指“包括但不限于”。只有连接词“由
……
构成”和“由
……
组成”是封闭连接词。
[0026]
为了更好的说明本技术内容,在下文的具体实施例中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在实施例中,对于本领域技术人员熟知的一些方法、手段、仪器、设备等未作详细描述,以便凸显本技术的主旨。
[0027]
在不冲突的前提下,本技术实施例公开的技术特征可以任意组合,得到的技术方案属于本技术实施例公开的内容。
[0028]
在一些实施方式中,unity代码安全防护方法包括:
[0029]
将基于unity棋牌游戏的所有玩法的合集工程拆分为只包括一种玩法的单一工程,其中,合集工程包括所有玩法的公共部分和每一种玩法的特征部分,单一工程包括所有玩法的公共部分和单一工程的特征部分;一般地,基于unity棋牌游戏种类较多,每一类棋牌游戏的玩法变化较大,规则不一,例如,对于麻将游戏而言,麻将游戏的玩法众多,特别是麻将游戏的地域性特征明显,每一个地域的玩法都不相同,甚至每一个地域的麻将游戏又有多种不同的玩法规则,如果对每一种麻将游戏进行单独开发,将其单独打包进行推广,无疑增加了麻将游戏的开发成本,所以,本技术人在游戏开发过程中对麻将游戏进行合理布
局规划,将麻将游戏中具有共性的内容作为共享内容,单独开发为所有玩法的公共部分,同时将每一种玩法对应的特征部分进行独立开发,形成与众多玩法一一对应的独立的特征部分,将公共部分与所有相互独立的特征部分整合为合集工程,形成每一类游戏的合集工程包;在实际推广应用过程中,根据不同的需要,例如地域特点,首先将基于unity棋牌游戏的所有玩法的合集工程拆分为只包括一种玩法的单一工程,该单一工程包括的特征部分适合于该地域特点,从而可以在该地域进行有效的推广使用;一般地,针对不同的地域特点进行工程拆分,可以将合集工程包拆分为符合该地域特点的单一工程包,实现游戏工程的合理拆分、有效推广;同时,合集工程包的拆分过程无疑也增加了一次代码保护过程,提高了代码安全性;
[0030]
将单一工程的代码进行混淆,并增加垃圾代码,单一工程变为不可读单一工程。为了进一步提高单一工程代码的安全性,可以对单一工程的代码进行混淆处理,使其变为不可读代码,增加安全性。例如,源代码为helloword,将其进行混淆处理后变为t2iioisfol,该代码失去了原来的含义,且不代表任何含义,变为不可理解的代码,当整个代码集合都被混淆处理后,变为不可理解的状态,同时失去了原来的关键字,很难通过二次开发和通过关键字查内存位置,实现了代码安全。
[0031]
还可以通过增加垃圾代码的方法对代码进一步保护,例如在有效代码中增加执行无效的代码,可以实现对代码的保护,但是通常情况下增加的无效代码应该不影响有效代码的正常逻辑,防止影响有效代码的执行过程。
[0032]
作为可选实施例,unity代码安全防护方法还包括将不可读单一工程进行代码还原,恢复为单一工程。一般地,对不可读单一工程进行代码还原,使其恢复为可读代码,以便进行单一工程维护。例如,不可读工程通过git进行代码还原,可以使其恢复为可读状态的单一工程代码,不影响代码的开发、维护。
[0033]
一般地,unity代码安全防护方法的拆分合集工程包括代码拆分和资源拆分。
[0034]
作为可选,代码拆分包括:将合集工程中与某一种单一工程无关的代码删除,只保留公共部分代码和该单一工程特征部分代码。例如,每一种玩法的特征部分代码都以特别定义的宏进行标识,拆分过程中识别定义的宏,将所定义的宏所标识的代码保留,没有被标识的代码删除,得到单一工程的代码。
[0035]
作为可选,资源拆分包括:保留包括公共资源的文件夹和包括某一个单一工程资源的文件夹,删除其他单一工程资源的文件夹。一般地,在合集工程包中公共资源汇集在一个文件夹下面,每一种玩法的特征部分资源放在不同的独立文件夹下面,若需要进行资源拆分得到某一个单一工程,可以将包含公共资源的文件夹和包含该单一工程对应的特定玩法的特征资源的文件夹保留,删除包含其他特征资源的文件夹,实现资源拆分,得到单一工程的资源。
[0036]
一般地,对于图片资源的混淆处理中,可以遍历所有的图片资源,然后对图片资源统一修改,改变其中一个像素点的一个值,对图片整体显示没有影响但文件md5值会发生变化。例如,图片中一个像素点颜色是(255,255,255,255),只修改其中一个点,修改成(255,255,255,254)。
[0037]
作为可选,unity代码安全防护方法中增加的垃圾代码包括执行无效的代码。
[0038]
一些实施例公开了一种包含计算机执行指令的计算机可读介质,该计算机执行指
令经由数据处理设备处理时,该数据处理设备执行unity代码安全防护方法。
[0039]
以下结合实施例对技术细节做进一步示例性说明。
[0040]
实施例1
[0041]
图1为实施例1公开的unity代码安全防护方法流程框图。
[0042]
实施例1中,unity棋牌游戏为麻将游戏,集合了各个地区的麻将游戏玩法,例如四川、广东、湖南、xx等地区的麻将游戏玩法,麻将游戏的合集工程1包括麻将游戏的代码集合11和资源集合12,代码集合11包括公共代码和地区代码,如四川代码、广东代码、湖南代码、xx代码;资源集合12包括公共资源、四川资源、广东资源、湖南资源、xx资源;
[0043]
为了在四川地区发布麻将游戏,选定四川地区,对合集工程1进行拆分,形成针对四川地区的单一工程2,单一工程2包括四川代码集合21和四川资源集合22,四川代码集合21包括公共代码和四川代码,四川资源集合22包括公共资源和四川资源;
[0044]
进一步,进行代码混淆和增加无效代码,得到针对四川地区的不可读单一工程3,不可读单一工程3包括不可读代码31和不可读资源32;
[0045]
该不可读单一工程3的代码和资源经过防护处理,能够防止被二次开发等恶意行为。
[0046]
实施例2
[0047]
代码拆分
[0048]
以下代码中,利用#if debug_mode到#endif这个宏定义,将其中的代码进行标识,在代码拆分过程中,通过识别定义的宏,将#if debug_mode到#endif这个宏定义的代码被保留,没有被定义的代码被删除,即,位于#ifdebug_mode和#endif之间的代码被保留(斜体字表示),其余代码被删除,即可实现代码拆分。
[0049][0050]
实施例3
[0051]
代码混淆
[0052]
实施例3公开的代码混淆过程,包括以下内容:
[0053]
遍历所有需要混淆的字符;
[0054]
遍历程序集,获取程序集里面所有类名、方法名、放到字典中;
[0055]
遍历字典中的所有字符,确定需要混淆的字符的替换字符;
[0056]
然后遍历所有需要混淆的字符,按照确定的替换字符进行替换,完成代码混淆过程。
[0057]
例如,对于如下具体代码:
[0058][0059]
changer是要替换的字符,q替换a,w替换b,依次类推,获取混淆过得字符后放入字典中;比如字符hello,混淆后就是itssg,放入字典的时候key是hello,value是itssg;
[0060]
遍历所有代码文件,获取每一个字符串,查找这个字符串是否在字典中,如果有直接替换,比如:public void hello()检查每个字符串,发现hello在字典中,就替换为itssg,最后代码成了public void itssg(),完成混淆,混淆后的代码基本很难读懂。
[0061]
实施例4
[0062]
增加垃圾代码
[0063]
一般地,在增加垃圾代码过程中,需要设立一个垃圾代码库,其中每一条垃圾代码是独立可以执行的。
[0064]
例如,下面一条垃圾代码:
[0065][0066]
其中,参数数量2,2表示里面有arg1和arg2两个字符可以替换,随机生成两个字符替换这两个字符,然后把代码arg1和arg2替换即可,最后写入整体代码中,写入的位置判断前面三个字符是

)
’‘
\n
’‘
{


[0067]
以上实施例公开的unity代码安全防护方法,能够将包括所有玩法的合集工程合理拆分为只包括一种玩法的单一工程,并对单一工程进行代码混淆,使其变为不可读代码,提高另外代码的安全性,进一步通过增加垃圾代码,进一步提高了代码的安全性;合集工程集合了所有玩法的公共部分和每一种不同玩法的特征部分,通过合理拆分变成只包括一种玩法的单一工程有利于unity棋牌游戏的推广,同时减小了unity棋牌游戏的开发成本。unity代码安全防护方法能够防止代码被反编译后被二次开发,防止unity代码被根据符号表关键字定位内存位置然后进行修改,确保游戏数据安全。
[0068]
本技术公开的技术方案和实施例中公开的技术细节,仅是示例性说明本技术的发明构思,并不构成对本技术技术方案的限定,凡是对本技术公开的技术细节所做的常规改变、替换或组合等,都与本技术具有相同的发明构思,都在本技术权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献