quick-3.5 打包加密的个人总结

对于quick-lua打包问题,在网上有很多文章介绍。可到了quick-lua 3.5 框架有很大的变化,以前的都不适用了。

最近从网上找了一些资料,总结记录下来 ,仅供个人参考


###加密###

quick-lua 3.5

1. quick2.2.6和quick 3.3使用lua 5.1.5
2. 2dx的方案是,64位iOS使用lua 5.1.5,其他的平台都使用luajit,所以如果编译lua代码,需要两套
3. quick 3.5可以看做是2dx 3.5之上的一个插件,所以在这方面和2dx的方案是一样的 


        因为luajit不支持64位,iOS 64位上使用了lua。考虑到性能问题,其他所有的平台(包含iOS 32位),使用了luajit。这意味着如果想让一套lua脚本同时运行在iOS32位和64位设备上,那就不能使用lua字节码,lua和luajit生成的字节码是不兼容的。

        首先,为什么要用luajit呢?我能想到的原因有两个,一是效率,二是加密。用luajit之后执行效率会有很大的提升,特别是在android下,另外呢luajit之后得到的文件是二进制的bytecode,基本无法反编译,因此对于商业产品来说,提高了被反解的成本。

        那么luajit与lua到底有什么区别呢?从使用上来说没有区别,因为头文件都是一致的,所以将lua换成luajit来说,有两个步骤,一个是将头文件换成luajit的,另外一个是将动态链接库或者静态链接库也换成luajit的


加密命令

1.windows,android ios 确保不编译代码,只加密不编译,安全性未知
cocos luacompile -s src/ -d out/src/ -e -k key123 -b sign123 --disable-compile 

2.未验证通过(无法实现)
WIN:
compile_scripts.bat -i D:\MyGame\src -o D:\MyGame\res\game.zip  -e 
xxtea_zip -es key123 -ek sign123

MAC:

./compile_scripts.sh -i /Developer/MyGame/src -o /Developer/MyGame/res/game.zip  -e xxtea_zip -es key123 -ek sign123


AppDelegate.cpp 修改

stack->loadChunksFromZIP("res/game.zip");

stack->executeString("require 'main'");


解决办法:待解决
1.修改quick-3.5框架,只使用lua不使用luajit,然后使用quick-3.3的加密工具加密 (牺牲性能,较可行)

2.更新quick-3.5 luajit库 使用2.1版本支持ios 64位(目前只是alph版本)

3.升级到3.7支持ios 64 bytecode (这个行不通,已经验证)


QQ群:239759131 cocos 技术交流 欢迎您


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值