日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

lua教程

Cocos2d-x使用Luajit實(shí)現(xiàn)加密

閱讀 (2469)

項(xiàng)目要求對lua腳本進(jìn)行加密,查了一下相關(guān)的資料 ,得知lua本身可以使用luac將腳本編譯為字節(jié)碼(bytecode)從而實(shí)現(xiàn)加密,試了一下,確實(shí)可行。下面是使用原生的lua解釋器編譯字節(jié)碼:

1、新建一個名為1.lua的文件,里面只有一句話print("Hello Lua"),新建一個空的out.lua腳本文件

2、開始--運(yùn)行--cmd3、luac -o out.lua 1.lua

注: luac -o [編譯后腳本名] [腳本名],必要時帶上腳本路徑,如:

[編譯后腳本名] [腳本名],必要時帶上腳本路徑

回車之后,再打開out.lua就可以看到編譯好的字節(jié)碼了,如:

然后實(shí)驗(yàn)一下,執(zhí)行這個字節(jié)碼腳本,可以看到lua原生的解釋器可以直接解析luac編譯出來的bytecode腳本,很方便!

重點(diǎn):做完了以上的一系列之后,我照著這個方法編譯項(xiàng)目中的腳本,然后在cocos2dx環(huán)境下使用,發(fā)現(xiàn)不行!于是又查了一下資料,發(fā)現(xiàn)2dx使用的是luajit,lua原生編譯出來的bytecode和luajit是不兼容的,所以照著上面方法編譯出來的bytecode腳本無法在2dx中使用。

解決這個問題其實(shí)很簡單,就是用2dx自帶的luajit編譯lua腳本,下面附上luajit編譯bytecode的方法:

1、在cocos2d-x-2.2.3\scripting\lua\luajit\LuaJIT-2.0.1\src目錄下有個msvcbuild.bat批處理文件,需要先把luajit.exe這個東西給編譯出來。

2、打開visual studio的命令行工具,這個只要裝了vs都會有,在安裝目錄里面可以找到。

3、用vs的命令行工具cd到luajit的src目錄

4、執(zhí)行msvcbuild.bat批處理文件,編譯出luajit.exe

5、將生成的luajit.exe、lua51.dll、jit 復(fù)制到打包工具的相對目錄下,這樣在工具中就可以直接調(diào)用luajit –b source_file out_file (一般都是lua后綴,代碼不用改動)

<img src="/attachments/image/cimg/pp接下來就可以使用luajit.exe編譯lua腳本的bytecode了:luajit -b [腳本名] [編譯后的腳本名],執(zhí)行完后會在src目錄下生成一個已經(jīng)編譯成bytecode的jit.lua文件。/ppimg src=" attachments="" image="" cimg="" 2016-02-22_56cb2ca40043a.jpg"="" alt="" p="" pimg="" jit.lua");運(yùn)行結(jié)果為:="" <="">

至此,luajit編譯bytecode加密已完成!

嚴(yán)重注意:例子中,我把編譯前后的腳本名字取的不一樣,是為了讓大家看出差異化來,實(shí)際在項(xiàng)目中使用的時候,腳本的名字編譯前后最好都一致,不然在腳本中相互require的時候可能會出現(xiàn)問題!一個一個轉(zhuǎn)換腳太麻煩了,分享一個bat批處理,可以批量轉(zhuǎn)換一個文件夾中的所有l(wèi)ua文件.

代碼如下:

@echo off
if exist out rd /s /q out
mkdir out
:input
cls
set input=:
set /p input= 拖入要編譯的lua文件夾:
set "input=%input:"=%"
if "%input%"==":" goto input
if not exist "%input%" goto input
for %%i in ("%input%") do if /i "%%~di"==%%i goto input
pushd %cd%
cd /d "%input%">nul 2>nul || exit
set cur_dir=%cd%
popd
set /a num = 0
for /f "delims=" %%i in ('dir /b /a-d /s "%input%"') do (set /a num += 1 & luajit -b %%~fsi out/%%~nxi & echo %%~nxi)
echo 編譯腳本數(shù)量:%num%
ATTRIB out/*.* +R
pause

編譯后,文件夾內(nèi)所有的lua腳本將被批量編譯為字節(jié)碼,并保存在xxx\out目錄下,如:

注:XXX為打包加密文件路徑

還有小提示:ios64目前只支持lua,不支持用luajit生成二進(jìn)制*.lua.

引用博客:http://jingyan.baidu.com/article/0a52e3f4179713bf62ed72f1.html

關(guān)閉
程序員人生
主站蜘蛛池模板: 精品久久久久国产 | 成人精品影院 | 久久国产精品99久久久久久牛牛 | 中文字幕av第一页 | 亚洲午夜精品视频 | aa国产| 在线播放一区二区三区 | 精品一区二区6 | 波多野结衣在线播放一区 | 成人黄色毛片 | 九九在线| 欧美成人视屏 | 国产精品99久久久 | 精品视频久久久 | 国产精品岛国久久久久久 | 国产精品视频导航 | av看片网站 | av在线播放网 | 色婷av | 99精品国产在热久久婷婷 | 亚洲一区二区成人 | 久久久久黄色 | 日韩亚洲 | а√ 天堂 在线官网 | 国产精品一区二区av日韩在线 | 91看电影 | 91精品成人久久 | 精品九九九 | 亚洲看片| www.日韩高清 | 成人福利在线观看 | 999免费视频| 在线免费福利 | 久久精品不卡 | 国产精品一区一区三区 | 狠狠操天天干 | 精品久久精品 | 日韩看片 | 在线看黄色av| 亚洲精品在线电影 | 亚洲欧美日韩电影 |