【转】UNITY之LUA加密
【轉(zhuǎn)】UNITY之LUA加密
來(lái)自:Lua加密
兩種方式:一種用luac,一種用luajit
luac加密:
1、lua本身可以使用luac將腳本編譯為字節(jié)碼(bytecode)從而實(shí)現(xiàn)加密,去官網(wǎng)下載Lua源代碼包(http://www.lua.org/ftp/),下好解壓,目錄如下
2、啟動(dòng)一個(gè)Visual Studio 命令行工具,用32位命令行會(huì)生成32位版本,用64位則生成64位版本
3、在命令行中使用cd 進(jìn)入lua目錄(剛才解壓后的目錄),然后輸入 "etc\luavs.bat" 回車
4、如果沒(méi)有問(wèn)題的話,會(huì)顯示生成過(guò)程,(64位下還會(huì)有幾個(gè)warning C4334)、完成后會(huì)在src目錄下找到生成結(jié)果,4個(gè)主要文件一個(gè).exp的中間文件,luac.exe生成完畢,
? ? 然后把luac.exe所在存在的目錄設(shè)為環(huán)境變量,如果不設(shè)置的話,那么執(zhí)行生成字節(jié)碼的dos命令的時(shí)候就要轉(zhuǎn)到luac.exe所在的目錄才能執(zhí)行此dos命令了,都懂得,不多說(shuō)
5、(1)、新建一個(gè)名為1.lua的文件,里面只有一句話print("Hello Lua"),新建一個(gè)空的out.lua腳本文件
? ? (2)、開(kāi)始--運(yùn)行--cmd
? ? (3)、luac -o out.lua 1.lua
? ? ? 注:?luac?-o?[編譯后腳本名] [腳本名],必要時(shí)帶上腳本路徑,如:
然后實(shí)驗(yàn)一下,執(zhí)行這個(gè)字節(jié)碼腳本,可以看到lua原生的解釋器可以直接解析luac編譯出來(lái)的bytecode腳本,很方便!
luajit加密:
1、官網(wǎng)下載luajit(http://luajit.org/luajit.html),解壓,目錄如下
?
2、在命令行中使用cd 進(jìn)入luajit下src的目錄,然后執(zhí)行輸入msvcbuild.bat,執(zhí)行此批處理文件,編譯出luajit.exe
3、接下來(lái)就可以使用luajit.exe編譯lua腳本的bytecode了:luajit -b [腳本名] [編譯后的腳本名],執(zhí)行完后會(huì)在src目錄下生成一個(gè)已經(jīng)編譯成bytecode的lua文件
此時(shí)即使把此路徑加入環(huán)境變量是沒(méi)用的,進(jìn)行l(wèi)uajit加密命令的時(shí)候必須使用cd進(jìn)入此目錄(C:\Users\hengjingjing\Desktop\LuaJIT-2.0.4\src),因?yàn)閘uajit加密,必須是luajit.exe和src下的jit文件夾配合使用才管用!
如果unity項(xiàng)目用的是基于ulua擴(kuò)展的其他lua版本(cstolua、slua),或者本身用的就是ulua,那么要用luajit加密方式,因?yàn)閡lua底層就是用的luajit
兩者比較:
http://lua-users.org/lists/lua-l/2011-06/msg01052.html
LuaJIT is open source software, released under the MIT/X license. LuaJIT builds out-of-the-box on most x86 or x64 operating systems (Linux, Windows, OSX etc.) and can be cross-compiled for embedded systems based on ARM or PPC/e500 CPUs. The LuaJIT bytecode format is portable and ~40% smaller than Lua bytecode. The LuaJIT bytecode loader is 10x faster than the Lua bytecode loader. And LuaJIT bytecode loads 30x-40x faster than source code. Note that this is unrelated to the _execution_ speed of the code itself -- it doesn't matter how the code was loaded.可以看出:Luajit跨平臺(tái),滿足于32位和64位,并且加密后的bytecode比luac生成的bytecode至少小40%,速度也是它的10倍多,總之luajit就是比lua原生的好
posted on 2018-08-15 07:03 時(shí)空觀察者9號(hào) 閱讀(...) 評(píng)論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的【转】UNITY之LUA加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转】Luajit-2.1.0-beta
- 下一篇: ARMV7,ARMV8