【步兵 cocos2dx】加密和混淆

【步兵 cocos2dx】加密和混淆 By EOS.

正值端午佳节,大家都吃粽子了么=、= 开始秀公司福利了么?
秀吧,反正我是 我只服公务员和老师,为什么? 分楼啊QAQ 这事一个悲伤的话题。


代码加密

主要以lua代码为例,js还没怎么用过,并不熟悉。
lua的代码,有两种状态:明文的lua文件和二进制的luac文件。
luac文件即用luajit编译后的文件,不但起到了加密的作用而且还有性能上的大福提升。
但是在大佬面前,好像这些都并不是什么问题=、=,可以看下这篇逆向的文章:
浅析android手游lua脚本的加密与解密

仿佛看到了大佬们智慧的碰撞,跪着看完过后我们继续,虽然做不到防专业的,
但是基本的加密还是要有点,美术辛辛苦苦搞出来的资源不能免费送人不是~
为什么不说代码? 因为看到你的代码人家会默默的alt+F4(跑
(ps: 上锁,防的不是开锁的、防的那些有心的=、=! 额,有心的会开锁去哪说理?)

luac文件和lua文件都可以进行二次加密,因为都是读取文件字节流,再对字节流进行处理的,
只要是这种方式,我们就可以在传入前进行解密,图片、动画啊也不例外。

解密位置:FileUtils::getDataFromFile

至于加密算法么网上一搜一大批,有简单的有复杂的。
包括之前写过的lzma算法也是可以用到已亲测。
但是考虑到运行时解密性能问题,常见的方法是对文件的一部分数据进行加密。
至于解密判断,一种是后缀名、或路径名标识、另外就是加密的时候对写入到字节流中。
比如(字节流:我被加密了快来搞我啊xxxxxxxxxxxxxx)
然后判断,头部是不是 我被加密了快来搞我啊。
路径名用途就是比如网上下来的玩家头像,根本不需要加密,而且加密耗时可能会造成程序卡顿。
我们放到一个包含”/open/”的一个路径下,这样直接跳过解密处理,直接进行操作。


图片加密

不用多说基本上都在用的TexturePacker,生成的pvr.ccz后缀文件,加载效率高且自带加密。
额。。但是,其实pvr.ccz,很好解密,所以要进行二次加密。至于方法么。。。
就是用TexturePacker命令行添加后导出 png 就可以看到原图了。。
再配合plist文件,切成碎图也不是问题,而且我也弄了一个。很好使,一键碎图。=、=
(ps:不过忘记存了离职后,就给弄丢了。。这一定是一个悲伤的故事。)
其实还有一个简单方法,虽然不能防止图片被还原,但是可以让人不顺心=、=
那就是设置间距的时候给一个随机值,切出来的图总会切不准,闹心不闹心!

简单的加密算法我之前也写过一篇 -> 图片加密之我见


音频加密

这个就比较蛋疼了。。至于为什么这么说呢,因为音频文件是通过 jni调用的java的
SoundPool 和 MediaPlayer,嗯,我暂时还没想到有什么好办法。。
这些都是和android api绑定的,不过cocos2dx好像出来一个newAudioEngine,有搞头。
稳定性吗,肯定就差那么点意思了,这点我相信触控。


so文件加密和apk加壳

还没搞过,感觉不会太简单,专业的事情还是交给专业的做比较好。先做个标记=、=
so加密接锅参考:对抗静态分析——so文件的加密
apk加壳接锅参考:APK加壳 初步方案实现详解


混淆

混淆是什么呢,就是让你看不懂!还运行的呗棒~
我之前做了个资源的文件名混淆,就是每个资源名看上去都是 !`@#$% 这样,但是有意想不到的坑,
莫名其妙的就会少文件,甚至少文件夹。。后来换成字母就没有问题了 = =!
不过有坑需要填。就是某些其他程序到处的文件需要识别出文件名,进行修改。
资源名混淆因为不需要可逆操作(像md5一样),所以可以使不定长可重复的,这样更安全些。
【步兵 cocos2dx】加密和混淆_第1张图片
至于实现么,重命名而已,还要教?找文件的时候对路径字符串转换就可以了。

混淆位置:FileUtils::getFullPathForDirectoryAndFilename

其次就是代码混淆,代码混淆有简单的 类名函数名混淆,这样是基本就可以直接运行的,
不需要可逆操作,因为语法并没有变,只不过保护了函数的明确意义而已。
厉害的高级混淆是可以改变函数运行过程的,比如 1-2-3-4-5 混淆后变 3-1-4-2-5,
运行时再恢复成1-2-3-4-5,感觉上去难度不小。
更吊的甚至写一个配套的语义解析,修改语法再进行还原,当然这成本我是无法估计了。

单机游戏需要的安全性更高,因为直接影响到收益,有服务器验证,则省心很多。


总结

安全问题很重要,就想前段时间WannaCry的爆发,根本不需要可逆操作,直接进行不可修复篡改,
比如 文件多少字节我就给保持原有长度,每个字节都随机一个byte值,恢复?他为什么要关心~
至于后来的的恢复手段也只不过是硬盘恢复,把删除的文件进行复原,也能猜出个大概。

讲道理,专业的事情交给专业的人做,不要影响人家就业吗!!!
但是基础的手段还是要会一些,就当是给自己一些心里安慰吧~
(ps:大王叫我来巡山,我把加密干一干,敲起我的鼓打起我的锣,生活充满安全感~ =3=)

See Again~
之前
真爱无价,欢迎打赏~
赞赏码

你可能感兴趣的:(cocos2d-x,3.x)