从莉莉丝的彩蛋说起:如何给代码加密

来源:互联网 发布:货运记账软件 编辑:程序博客网 时间:2024/04/29 02:47

世界上有两种胜利:一举成功和绝地反击。身为围观者,到底还是喜欢后者,够刺激、倍儿爽。


近日,莉莉丝以一个小彩蛋取得uCool起诉案的关键性证据(后者为山寨版《Heroes Charge》开发商),不费吹灰之力即杀得对手丢盔卸甲,这事情一时成为手游界的热议话题。


(彩蛋之一:莉莉丝游戏英文名)


众所周知,《刀塔传奇》基于cocos引擎开发而成,一经推出即大获成功。各种山寨版本也在海外市场野蛮生长,uCool甚至为《Heroes Charge》狂砸千万疯抢“超级碗”广告时段。面对西风压倒东风的情形,此次莉莉丝凭借“木马计”虽然力挽狂澜,成功翻盘。但是俗话说得好,亡羊而补牢,不如防患于未然。


今天cocos君就传授各位“三步加密法”,把代码重重加固、像套娃般倍加呵护。


1拒绝纯裸奔,莫忘字节码



坚守节操,拒绝裸奔!所有攻城师请跟着我念:

lua要编译成字节码,不要白白送人!

lua要编译成字节码,不要白白送人!

lua要编译成字节码,不要白白送人!

——除非你真的懒到家了……


方法很简单,在cocos里调用cocos luacompile 命令,即可轻松将源码编译成字节码哦!

(命令行)

(duang~效果出来啦!)

2xxtea加密是个宝,谁用谁知道



做好了字节码,我们继续为心爱的代码升级安全措施。


Cocos2d-x v3.2版本已经加入了xxtea加密功能。开发者只需使用命令行 cocos luacompile 加-e参数,即可通过xxtea加密方式来升级安全指数,谁用谁知道!


输入-e True是为了支持xxtea加密,如果不再输入其它的参数,则xxtea加密的key和sign为默认值,分别为2dxLua和XXTEA。另外我们也可以通过输入-k和-b来改变key和sign。


下面就是见证奇迹的时刻啦!


(duang~代码一秒变乱码!)


具体使用方式可查看这篇教程:http://www.cocos2d-x.org/wiki/Cocos_luacompile


这里cocos君也要给大家一个小贴士:自2015年2月起,苹果官方要求所有iOS新应用必须支持64-bit,而当前Luajit稳定版本还不支持ARM64。所以为了让一套lua脚本能同时跑在32位和64位的iOS设备上,我们还可以使用`cocos luacompile -s src_dir -d dst_dir -e True -k sdfds -b affd --disable-compile True`指令来对Lua源文件进行xxtea加密,如此一来文件就可以同时跑在32位和64位的iOS设备上。


如下所示:


(命令行)

毫无源码痕迹,就是这么任性!


3加固软件也别落,专业工具就是好



除了上面两个,我们还可以使用专业工具给代码加层360度防护网。


目前Cocos Store与多家移动应用安全服务商建立了合作,提供了各种实用第三方工具。这些工具能够帮助开发者在不改变用户体验的同时,对游戏应用进行加固保护,防止逆向工程破解,杜绝恶意篡改、注入代码、窃取创意、内存修改等危胁,让游戏源码仿若身在瑞士银行地下保险箱般固若金汤。



(AnySDK加固功能)


此外,AnySDK也具有基础的加密功能,能够通过框架、打包工具、服务端等多方面加固处理,防止渠道包被破解,进行二次打包。


最后,让我们用一首诗来总结下——


代码安全打油诗

植入彩蛋虽然好,防范未然是最高;

代码就像女盆友,照顾好了没烦恼;

lua要编字节码,xxtea加密是个宝;

加固软件也别落,专业工具就是好;

一切都在cocos,保护安全任调教。



还!没!完!!最后的最后,cocos君也有个“小彩蛋”要送给大家:手把手教大家如何植入一颗自己的彩蛋。


世界上没有不透风的墙,也没有永远不被反编译的软件,即使强悍如微软Windows也挡不住山寨商的磨刀霍霍。所以像《刀塔传奇》那样加入彩蛋,为法律诉讼提供证据,未来可能成为游戏的标配。


(注:获取下述案例代码及资源请访问:http://upyun.cocimg.com/cocos/Brave.rar ,该代码需要在Quick-Cocos2d-x 3.3上运行哦)


启动案例游戏后,我们在背景的上下左右4个角各点一次,会弹出一个彩蛋界面。注意每个角只能点一次,多点少点都不行。


据说,世界上有两种成功:一举成功和绝地反击。但是身为行业中人,咱们到底还是喜欢前者,顺顺利利就好。 (。・`ω´・)


另外一个据说,转发此微信,没女票的男生今年注定脱单跑不掉,有女票的男生会幸福圆满一辈子哦! (/≧▽≦/)

0 0