cocos2d luajit对Lua脚本编译加密的批处理工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ST_DarkMoon/article/details/53168652

       


       首先关于luajit 在ios平台下的使用问题:

          参考:      1.cocos2d-x 3.14版本跟新说明


2.Quick-Cocos2dx-Community 中 64 位 Luajit 使用说明

       总结起来就是使用luajit 2.10编译字节码!



        下面回到正题:


         在项目中要对lua代码进行加密。在论坛上看到一个方法使用cocos2d引擎所包含的luajit对其进行编译加密。

        地址是:cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密 。

        作者还提供了一个批处理工具实现快速的编译。毕竟项目的lua文件量是很大的,如果全手动的话费力不讨好。但是这个批处理不是很满足需求。不管源代码的目录结构如何。都是统一输出到当前目录的out文件夹下。结果是还是得手动的重新组织目录结构。并且输出目录很死就是out

        

       所以这里对其进行一点改动实现能够灵活指定输出目录,并且输出后按照源目录结构保存。这样除了拖动指定两次目录基本无需任何操作了。

      这里放上批处理命令文件CompileToLuaBytecode.bat代码

@echo off
if exist out rd /s /q out
mkdir out

setlocal enabledelayedexpansion

cls
:input
set input=:
set /p input= 拖入要编译的lua文件夹:
if "%input%"==":" goto input
if not exist "%input%" goto input
set "input=%input:"=%"

:output
set output=:
set /p output= 拖入要编译后输出的目标文件夹:

if "%output%"==":" goto output
if not exist "%output%" goto output

for %%i in ("%input%") do if /i "%%~di"==%%i goto input
pushd %cd%
cd /d "%input%">nul 2>nul || echo cmd was runing error
set cur_dir=%cd%
popd
set /a num = 0
echo 正在目标文件夹中创建对应目录结构:
for /r %input%  %%a in (*) do xcopy %%a %output% /t /s
echo 创建完成,开始编译lua代码:
for /f "delims=" %%i in ('dir /b /a-d /s "%input%"') do (set /a num += 1 
set pt=%%~fi & set "pt=!pt:%input%=%output%!"
luajit -b %%~fi !pt! 
echo 编译后: !pt!)
echo 编译脚本数量:%num%
ATTRIB %output%/*.* +R
echo 编译完成,开始删除空白文件夹:
for /f "delims=" %%i in ('dir /b /ad /s "%output%"') do (echo 删除空白目录信息: %%i & rd %%i /q) 
pause

     在luajit.exe的同级目录下新建一个文本文档,将以上代码拷贝复制并修改后缀为.bat文件即可。然后双击运行按提示拖入源码目录与输出目录即可。

     具体操作及注意事项可以看下面的说明

     

## ReadMe.md

### 文件 :基于cocos2d-x 的 luajit 对lua代码进行批处理编译成字节码以实现代码加密
### 工具 :CompileLuaToBytecode.bat
### 作者 :长安长夜  
### 声明 :本文件及批处理命令供参考  CopyRight(c) Reserved All Rights
=====================================================================

#### 使用指南
1. 启动需求:
    
    本批处理命令依赖于cocos2d引擎中所包含的luajit,请将其放置于引擎目录下的luajit.exe的同级文件夹中    
    具体目录为: cocos2d-x引擎\tools\cocos2d-console\plugins\plugin_luacompile\bin

2. 使用流程:

    直接双击即可运行,运行后会提示你拖入lua源码文件夹,直接选中文件拖入到cmd窗口中即可。然后回车继续拖入生成的字节码目标存放目录,之后回车等待即可本命令运行完成即可。

#### 注意

--    本工具会删除目标存放目录的空白文件夹          
--    本工具需要明确指定输入目录和输出目录
--    本工具会按照源码目录结构存放编译后的的文件.并且文件夹名及生成的字节码文件名与源保持一致


      dos代码修改的可能不是很好。如有错漏与不足希望能够批评指正。

      

猜你喜欢

转载自blog.csdn.net/ST_DarkMoon/article/details/53168652
今日推荐