《游戏安全与逆向》Cocos creator【2.x&3.x】游戏项目资源加密与方法

《游戏安全与逆向》Cocos creator【2.x&3.x】游戏项目资源加密与方法

各位游戏开发者同僚们,我想你们一定不想自己的游戏上线后被Crack利用、破解的吧?

或许你有想过,通过各种技术手段再一定程度上减少损失,但还是会被XX掉

在开始之前我先给大家介绍写提纲~

1.了解并知晓 | Crack如何一步步破解你的资源,并利用的

2. 加密的手法 | 针对不同的需求运用不同的技术

3. 科普时间 | 预判他的预判从而让自己预判

4. 做点手脚 | 在游戏包中下暗雷、暗桩、树人

5. 安全等级划分 | 敌人诡计多端,应当逐一当断!

【1.了解并知晓】

好戏开始了!首先先介绍一下各种Crack者

初级:

1.利用apktools 对 你的APK/APP 进行解包 | IOS 只需要改后缀为 .zip即可

2.将游戏工程目录拷贝出来,查看所有工程资源即可

3.如果有加密(图片、代码)在利用脚本、工具解密(通为市场流动的)

初级举例图:

image838×749 196 KB

描述:该游戏的资源都没有进行加密,而且内容很多

中级:

1.利用apktools 对 你的APK/APP 进行解包 | IOS 只需要改后缀为 .zip即可

2.将游戏工程目录拷贝出来,查看所有工程资源即可

3.如果有加密(图片、代码)在利用脚本、工具解密(通为市场流动的)

4.如果加密无法现成解密则=>手动对其解密

image906×752 52.2 KB

描述:该游戏的资源核心部分加密,以至于被找到漏洞口,从而全员丢失

高级:

1.利用apktools 对 你的APK/APP 进行解包 | IOS 只需要改后缀为 .zip即可

2.将游戏工程目录拷贝出来,查看所有工程资源即可

3.如果有加密(图片、代码)在利用脚本、工具解密(通为市场流动的)

4.如果加密无法现成解密则=>手动对其解密

5.解剖代码拷贝出js部分代码,进行解密还原,然后改写换皮,市场流通

image796×327 21.5 KB

描述:该游戏资源全部加密,不过是用了官方的 md5混淆。该方法一样可以被破解,还原名称回去

不过代码部分为JS 加密。还是很弱。。

建议大家用我推荐的 加密方式 ! 在本文章 3,4阶段中会做描述介绍。

【2.加密的手法】

[1星]

方法名:远程资源(res)

运行时: apk/app 游戏包的资源通过远程服务器获取到,而在获取时需要交换token才能取得资源文件

优点:使应用程序加快访问和下载速度,最简单的项目优化和加密手段

缺点:如果觉得这种加密可以称为加密,那真的是大聪明。

[2星]

方法名:异或暗调(res)

运行时:apk/app 该类游戏通常会有预加载场景,运行到此时不论资源存储在哪里,它一定会对所有图片资源进行异或反调。使得之前不可查看的方式变为可查看、可使用。

优点:可以防御 初级Crack 同时项目结构看起来清晰有序

缺点:预加载时间很长,在打包时要解决很多问题

异或暗调(res)加密方法:

image754×614 22.2 KB

建议:如果是个人游戏或小工程,含金量不大就用这种足够

[3星]

方法名:Aes秘钥加密(res、js、cpp\lua)

运行时:apk/app 游戏包的资源 每次运行时被该头文件库 进行解码

优点:可以防御 初级Crack,中级Crack

缺点:资源加载的时间变得更长了一些,同时在CC中,可能库引用不当会出现很多意料外的问题

Aes秘钥加密(res、js、cpp\lua)加密方法:

可以参考这篇文章来学习写法

CSDN: AES加解密之C++实现

https://blog.csdn.net/lixiang987654321/article/details/109009397

[4星]

方法名:Audio dk加密(res、js、cpp\lua、音频)

运行时:apk/app 游戏包的资源在首界面启动时,才会开始释放所有被加密的资源。且释放出的内容为缓存文件,对用户不可见、不可使用。即使搜索到也全都是无法打开的音频文件或被损坏的文件

优点:1.可以防御 初级Crack,中级Crack ,高级Crack

缺点:该加密方式为国外圈内捞金行业内使用的方法

1.使得游戏会消耗大量性能资源,且运行速度缓慢

2.硬件需求很高(手机设备、网络)

Audio dk加密方法非常抱歉,我不会写。我只懂得破解。有需求的朋友可以顺着这个逻辑自己去进阶

[5星]

方法名:odBat加密(res、js、cpp\lua)

运行时:apk/app 游戏包的资源在运行调用时,才会被解密在设备内存中(缓存)。且资源全部以Aes秘钥进行加密。如果crack操作不当,则直接会中圈套;

优点:可以防御 初级Crack,中级Crack ,高级Crack ,大神级Crack

缺点:同样的该加密方式也是国外圈内使用的方法

1.使得游戏会消耗大量性能资源(手机发热很快=》掉线、卡退)

2.硬件需求很高(手机设备、网络)

odBat加密方法:依赖前面的几种方式,只是它多了一个手脚模式。不过这种方式可以效仿借鉴!

【3.科普时间】

有许多CC开发者,不会加密,或者加密的方式过于简单。

还有一些加密很繁琐,外行看起来就很复杂!在Crack面前无卵用的加密手法。

防御,要先知道对方想要攻击你哪里。才能加强自己的技术,保护自己的知识。

先来了解一下破解者,拿到你的程序后,都会做什么吧

1.遍历一遍所有目录,看看代码和资源。(高效的算法、特效、逻辑或,资源利用)

2.有无重复利用的价值(二开换皮,上线这种)

3.倒卖你的游戏

4.查看代码,找到api接口处,渗入后端(攻击、恶心、敲竹杠、妨碍你)

个人觉得,前面3者到还好,最后一种就很恶心了,对方不仅拿了你的东西,还要阻碍你的游戏运营或者。。。所以,防御的手段是必须需要的。而且一定要趁早!针对自身的项目,采取对应的加密方式。

不是哪种高级就用哪种。 “知晓痛楚,了解痛楚,感受痛楚”—佩恩说的

我们都有这个痛楚,接下来针对以上第4点,科普一下API防御

api接口如何防御?不论后端是java\cpp\node\php

api攻击方式分为:

疯狂请求(拒绝服务) 拉爆你的服务器延迟

回执请求(访问服务) 我发1个1,你要回我64个1

探测请求(索引目录) 不停的给你全身检查,消耗后端性能

验证码请求(反正不是我的钱) 不停的消耗你的验证码次数

socket类:

垃圾填充(垃圾服务) 在大厅聊天系统中塞入乱码、编码 填充你的数据库

伪劫持(Ludp)截获自身与服务端的数据,改写其内容长度内容

要塞炸弹(Rmd2p)将事先写好的炸弹程序拷贝其核心底层编码,将其压缩成最短字节。然后通过socket某一项连接处,发送过去。一旦服务端接受。服务端会直接试图理解内容。然后就卡崩了。

api防御模式分为:

防御请求:做好验证机制,例如限制每IP时间段请求次数

防御探测:有专门的方探测工具和插件,装一个。服务器最好是linux,防火墙端口的放行进出很重要

防御垃圾:对内容限制长度和大小即可

防御验证码:同样做好验证,选用靠谱的第三方

防御要塞炸弹:对于匿名方、密文内容异常的包要做筛选接受验证的。

【4.做点手脚】

在游戏开发时、完成时都可以在代码内做些手脚

比如:

利用Aes加密方式,但cpp/lua文件中不包含token,需要通过socket首次接通时获取到,然后再对其资源进行解密。

注意:这里可能会被劫持socket内容,来查看你的报文。

加强防御:为你的socket内容,加密其内容,保护交互的token。

安全算法:sha1,sha512 其次sha256 , sha384

补充:sha256,sha384以均被本人破解过,未公布详细解法

利用Audio dk加密方式,能够非常有效的保护你的所有文件资源,同时非常考验Crack的耐心,但难免有些异常专注的人就是想一探究竟。 你还需要掌握一定的Bit语言基础,来对你的加密后的资源进行扰码加密

注意:前身的资源文件被解密后,audio格式的文件将会被打回原形!一定要留第二手[扰码]

加强防御:扰码是指将被加密的文件中写入一定的格式化乱码

var decode=[64][64][64][64]

每隔多少段,放入多少乱码。或乱码数值随机化,无规律。

【5.安全等级划分】

最后根据不同的项目等级,这里为大家推荐安全架构方式

项目团队安全架构:

注意点:防御好api接口处

image801×346 10.2 KB

注意点:防御好api接口处,在遇到攻击时,查看log日志是不错的问题排除方式

对于大型开发团队,建议前端资源加密采用 3.Aes加密(128位) .5 odBat加密方式

为什么不推荐第4种(Audio dk加密)

PS:已经是有许多作品的团队了,要考虑用户感受,第4种对用户很不友好,如果目标用户群体质量很高是可以考虑。 而且这种加密方式较为难实现,所以不是很推荐

最后感谢大家观看我的文章,希望以后各位开发的游戏大火!同时也希望Cocos 快点出新版本!

我是大菠萝!大大大大!菠萝!萝

相关资讯

《第五人格》园丁时装大全
365bet娱乐场网站

《第五人格》园丁时装大全

⌚ 07-11 👁️ 6147
剑与家园成为城主的条件 剑与家园怎么成为城主
365bet娱乐场网站

剑与家园成为城主的条件 剑与家园怎么成为城主

⌚ 08-17 👁️ 2017