概述html
xLua加密工具主要是一款Lua安全編譯器,配置好xLua環境後,用幾維提供的libluajit.a替換對應的默認文件,來實現對Lua文件的加密,加密後的Lua文件只能由幾維提供的lua bytecode解釋器解析,從而避免Lua文件被逆向分析,達到保護Lua核心代碼的目的。android
集成ios
一、獲取xLuaxcode
從官方下載對應的xLua版本, 默認是master分支安全
1)這個步驟是屬於開發環節,請自行下載並部署好【xLua是開源項目,請自行檢測環境變量、Lua和Luajit的版本,以便順利編譯經過】架構
2)Luajit-2.1.0-beta2以上版本支持64位,幾維編譯器版本的luajit加密方案基於Luajit-2.1.0-beta2工具
二、Android快速集成加密版靜態庫測試
1)執行build目錄下的make_android_luajit.sh(根據本身的平臺選擇編譯腳本),確保原始的編譯成功ui
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文件進行測試
三、iOS快速集成加密版靜態庫
1)執行make_ios_luajit.sh將原始版本的libxlua.a編譯出來
注意:xlua默認是armv七、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