概述
xLua加密工具主要是一款Lua安全编译器,配置好xLua环境后,用几维提供的libluajit.a替换对应的默认文件,来实现对Lua文件的加密,加密后的Lua文件只能由几维提供的lua bytecode解释器解析,从而避免Lua文件被逆向分析,达到保护Lua核心代码的目的。
集成
1、获取xLua
从官方下载对应的xLua版本, 默认是master分支
1)这个步骤是属于开发环节,请自行下载并部署好【xLua是开源项目,请自行检测环境变量、Lua和Luajit的版本,以便顺利编译通过】
2)Luajit-2.1.0-beta2以上版本支持64位,几维编译器版本的luajit加密方案基于Luajit-2.1.0-beta2
2、Android快速集成加密版静态库
1)执行build目录下的make_android_luajit.sh(根据自己的平台选择编译脚本),确保原始的编译成功
2)编译成功之后查看luajit源码目录下src/libluajit.a文件
3)用几维提供的libluajit.a进行替换,x86对应x86,armeabi-v7a对应armeabi-v7a
4)修改make_android_luajit.sh文件,编译armeabi-v7a版本的libxlua.so,如下图
5)同理修改编译出x86版本的libxlua.so
6)复制编译好的libxlua.so替换项目中原来的libxlua.so(替换之前最好先做好备份),推荐先使用源码测试,然后换成几维提供的luajit编译器编译出二进制bytecode文件进行测试
3、iOS快速集成加密版静态库
1)执行make_ios_luajit.sh将原始版本的libxlua.a编译出来
注意:xlua默认是armv7、armv7s、arm64三种架构,如果使用xcode版本过高,比如9.3.x以后的不再支持armv7 armv7s,那么生成的只会有arm64这种架构
2)同android一样注释掉生成libluajit.a的过程如图
注意:这里区别在于如果需要arm64架构那么需要使用lipo -create arm64/libluajit.a -output libluajit.a,需要armv7和arm64使用lipo -create arm64/libluajit.a armv7/libluajit.a -output libluajit.a
3)再次执行make_ios_luajit.sh生成libxlua.a
4)替换项目中原来的libxlua.a编译对应平台的bytecode文件,32位对应32位,64位对应64位的,生成项目,使用xcode编译测试(几维luajit安全解释器支持armv7,armv7s,arm64所以支持真机)
友情告知地址,lua脚本加密:https://www.kiwisec.com/product/compiler-lua.html