博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于对quick-2dx项目中的Lua代码的加密
阅读量:5227 次
发布时间:2019-06-14

本文共 2236 字,大约阅读时间需要 7 分钟。

quick-cocos2dx lua脚本加密主要资源参考:http://my.oschina.net/lonewolf/blog/178515

我尝试过在LuaforWindows下面用Luac.exe来生成二进制文件来执行代码,

参照地址:http://www.dewen.org/q/10207

然后执行时:

我的命令是lua.exe luac.out 程序正常运行

然后我在lua的命令行模式下试了:dofile "luac.out" 程序也正常运行

但是这样的生成2进制代码在quick 2dx下面怎么运行呢,我主要思考的问题是require 路径引用的问题

上面的方法是通过原生的Lua来编译加密Lua脚本的,那样其实不是一个很好的选择

关于require问题的解决

cocos2dx lua脚本加密主要资源参考:http://www.cnblogs.com/mrblue/archive/2013/06/06/3122543.html

看到http://my.oschina.net/lonewolf/blog/178515,我想我需要换个方式来做了,所以选择了LuaJit这个工具。

首先安装Luajit工具,安装目的是为了编译Lua脚本成为2进制代码

他的方式是通过quick-2dx自带的lua加密工具来进行加密的。不过我的电脑是win-xp,不能正常的编译luajit,以及进行脚本加密等。

既然这条路走不通,只好把加密Lua脚本的工作推推,把mac下Lua脚本加密的资料收集一下,为以后的加密工作打下基础

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

目标其实很简单,就是将Lua文件的源码保护起来,生成字节码文件,这样做的目的是防止代码被盗用。

采用的方法是Luajit工具编译,接下来我将详细的说明我是如何将.lua文件生成字节码文件,并且加到项目中,替换原来的.lua文件

首先我们需要下载luajit工具,可以在网上下载,不过需要编译执行一些指令来安装,luajit官网上面有很详细的解释,不过是英文的,

看的时候要仔细一点。还有一种方法是使用quick-2dx里面已经配置好的luajit工具(路径:D:\android\quick-cocos2d-x\bin\win32),这个方式是我推荐使用的。首先使用win-xp cmd命令行模式,输入luajit看能否进入luajit模式中,如果不能,请配置系统环境变量,path = D:\android\quick-cocos2d-x\bin\win32。回到windows命令行模式,

开始编译我们的第一个Lua文件。为了偷懒,我直接将待编译的vokie.lua文件放在了D:\android\quick-cocos2d-x\bin\win32目录下面,然后命令行输入:

luajit -b vokie.lua vokie.out 

官网也给出了luajit的常用example:

 

luajit -b test.lua test.out                 # Save bytecode to test.outluajit -bg test.lua test.out                # Keep debug infoluajit -be "print('hello world')" test.out  # Save cmdline scriptluajit -bl test.lua                         # List to stdoutluajit -bl test.lua test.txt                # List to test.txtluajit -ble "print('hello world')"          # List cmdline scriptluajit -b test.lua test.obj                 # Generate object file# Link test.obj with your application and load it with require("test")

luajit的更多用法以及可选择的参数,官网:http://luajit.org/running.html

 

命令输入完毕,回车。片刻间,我们的vokie.out文件生成成功,这就是我们的字节码lua文件了

接下来就是替换掉我们的vokie.lua文件了。上面我曾经困惑关于require的问题,其实我们直接替换就行了

也就是把vokie.out文件更名vokie.lua,然后替换项目中的vokie.lua文件,然后重新运行项目,没有问题。

说明字节码文件已经生效了。然后就是如何批量编译lua文件了。quick2dx其实提供了强大的lua密码保护方式

上面也给出了链接。

转载于:https://www.cnblogs.com/vokie/p/3602082.html

你可能感兴趣的文章
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
Apache Common-IO 使用
查看>>
javaScript数组去重方法汇总
查看>>
评价意见整合
查看>>
二、create-react-app自定义配置
查看>>
Android PullToRefreshExpandableListView的点击事件
查看>>
系统的横向结构(AOP)
查看>>
linux常用命令
查看>>
NHibernate.3.0.Cookbook第四章第6节的翻译
查看>>
使用shared memory 计算矩阵乘法 (其实并没有加速多少)
查看>>
Django 相关
查看>>
git init
查看>>