dtcms 动态条形图 云计算架构 swift security d3 ipad plot sass bluetooth x86 Animsition vue插件库 vue遍历 bootstrap框架 js键值对数组 java三维数组 oracle查询数据库 winbox使用教程 bootstrap文本框 excel加减混合求和 linux重启mysql 表白网页源码 python写入txt文件 java文件 java写入文件 java类型 java平台 java怎么使用 java获取现在时间 java当前日期 java的date 局域网助手 ad19 ad下载 maxtoc4d 什么模拟器最好 万能低格工具还原u盘 网页自动点击 cad乘号
当前位置: 首页 > 学习教程  > 编程语言

怎样给代码加密,从莉莉丝的彩蛋说起

2020/8/31 16:05:29 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

 这个世界里,我们常常看到有两种胜利:一举成功和绝地反击。作为围观的酱油众,到底还是喜欢后者,因为够刺激、倍儿爽!

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

QQ截图20150325094401.png

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

 

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

 

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

 

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

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

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

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

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

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

 

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

only_jit_command.jpg

(命令行)

file_encrypted_only_jit.jpg

(duang~效果出来啦!)

 

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

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

 

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

jit_xxeta_encrypt.jpg

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

 

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

jit_xxtea_encrypt_file.jpg

(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设备上。

 

如下所示:

only_xxtea_encrypt_command.jpg

(命令行)

only_xxtea_encrypt_files.jpg

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

 

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

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

 

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

QQ截图20150325095939.jpg

(AnySDK加固功能)

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

 

最后,让我们用一首诗来总结下——代码安全打油诗

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

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

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

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

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

 

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

 

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

 

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

 

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

data1.jpg

data2.jpg


本文链接: http://www.dtmao.cc/news_show_150463.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?