cocos-luac 游戏逆向破解反编译的一些启示

自助开通VIP,整站资源任意下载

在用cocos-2dx lua框架开发游戏时,为了防止源码泄露常常用cocos自带的加密命令**cocos luacompile**去加密,本人从破解的角度去谈谈这样做存在的一些弊病。(本文示例是用mac去做,用windows的同学可能需要去安装一些相应的工具)

为了方便,去网上随意下载了cocos-lua开发的且有做luac加密的apk包,

第一步,在apk路径使用命令apktool d xxx.apk解包,获得解包的文件夹(apktool命令工具,[https://ibotpeaches.github.io/Apktool/][1]

第二步,找到文件夹下的luac脚本目录

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示1.png,cocos-luac,游戏逆向破解,反编译,第1张

随便打开一个luac文件,找到第一个字符串,记录下来,待会要用到,如图中的RY_QP_2016,

(为什么要找到它呢,cocos的加密命令的弊端就是,加密后它的key已经暴露出来了,RY_QP_2016就是,当然,光有key还不够)

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示2.png,cocos-luac,游戏逆向破解,反编译,第2张

第三步,找到文件夹下cocos的lib库

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示3.png,cocos-luac,游戏逆向破解,反编译,第3张

在该路径下执行命令,strings -a libcocos2dlua.so,解析出库中的字符串,cmd+f搜索RY_QP_2016定位,看到了什么,RY_QP_MBCLIENT_!2016字样的字符串,它就是密钥(这里剧透了哈,其实这个包加密的方式做的很简陋,所以很快能找到,就算复杂一些通过这个方法同样能找到,麻烦一点而已,原理是什么呢,在游戏包中luac加密后,需要AppDelegate::applicationDidFinishLaunching中的方法,调用engine->getLuaStack()->setXXTEAKeyAndSign(xx,xxx)方法,xx和xxx分别是luac的key和密钥,而so文件用strings命令能暴露出这些字符串,所以用key就能定位密钥)

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示4.png,cocos-luac,游戏逆向破解,反编译,第4张

有了密钥和key基本上就成了,最后一步,下载这个工具包[https://github.com/dengxiaochun/luac_decodeTool][2],放在项目所在的src路径,修改shell脚本中相应的key和密钥后执行 ./decode.sh src命令

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示5.png,cocos-luac,游戏逆向破解,反编译,第5张

看到src中的.lua文件,就成功了

cocos-luac 游戏逆向破解反编译的一些启示 ,游戏逆向破解反编译的一些启示6.png,cocos-luac,游戏逆向破解,反编译,第6张

① 本网站名称及网址:八爷资源网 | www.8yweb.com
② 本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。
③ 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。
④ 如果你也有好源码或者教程,可以联系小编,有钻石奖励和额外收入。
⑤ 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。
⑥ 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦ 本站资源大多存储在云盘,如发现链接失效,请联系客服,我们会第一时间更新。内容投诉
八爷源码 » cocos-luac 游戏逆向破解反编译的一些启示

发表评论

欢迎 访客 发表评论

VIP会员尊享专属特权,真正的海量,无套路,无限量下载!

游戏演示 棋牌圈