Cocos2d-x Lua引擎製作的遊戲程式碼加密
在Mac OS中的終端鍵入:cocos luacompile -h,可以獲得這個命令的幫助:
usage: cocos luacompile [-h] [-v] [-s SRC_DIR_ARR] [-d DST_DIR] [-e]
[-k ENCRYPTKEY] [-b ENCRYPTSIGN] [--disable-compile]
對 lua 檔案進行加密和編譯為位元組碼的處理。
optional arguments:
-h, --help show this help message and exit
-v, --verbose 更多輸出資訊。
-s SRC_DIR_ARR, --src SRC_DIR_ARR
指定需要編譯的 lua
檔案路徑,支援指定多個路徑。
-d DST_DIR, --dst DST_DIR
指定輸出檔案的路徑。
-e, --encrypt 開啟 XXTEA 加密功能。
-k ENCRYPTKEY, --encryptkey ENCRYPTKEY
指定 XXTEA 加密功能的 key 欄位。
-b ENCRYPTSIGN, --encryptsign ENCRYPTSIGN
指定 XXTEA 加密功能的 sign 欄位。
--disable-compile 關閉編譯為位元組碼的功能。
我們主要用到-s,-d,-e,-k,-b以及--disable-compile這幾個引數:
-s就是你需要加密的lua指令碼所在的目錄。
-d就是逆需要將加密後的lua指令碼放置的目錄。
-e是開啟XXTEA加密功能,如果不用這個引數,後面的也就不用了,這樣子做是編譯為位元組碼。
-k是在-e開啟的情況下使用,XXTEA加密演算法的key欄位,這個自己定,不要太長,但越複雜越好。
-b是在-e開啟的情況下使用,XXTEA加密演算法的sign欄位,這個自己定,不要太長,但越複雜越好。
--disable-compile是關閉位元組碼編譯。為什麼要加這個?因為現有的cocos引擎使用的是luajit來編譯位元組碼,它僅支援32位,不支援64位的機子(截止至2017.01資料),而蘋果官方要求上傳的app必須相容arm64的機子,因此只能選擇XXTEA加密,這種加密方式也是很不錯的,演算法小巧,在沒有key和sign的情況下不易被破解,相容32和64位,是目前用cocos開發唯一可取的加密方式。
這個命令舉個例子:
cocos luacompile -s /Users/xxx/src -d /Users/xxx/src0 -e -k testtt -b signnn --disable-compile
這條demo就是對src的所有lua指令碼做key=testtt,sign=signnn的XXTEA加密,並關閉位元組碼編譯。請注意,如果專案中除了lua指令碼外,還有其他一些檔案,比如plist,json,xml這些,是不會被編譯的,實際跑的時候記得拷貝過去,保持原始檔和目標檔案具有一致性,否則會有問題的。
---------------------
作者:坐著遊戲的火箭
來源:CSDN
原文:https://blog.csdn.net/hqc17/article/details/54565581
版權宣告:本文為博主原創文章,轉載請附上博文連結!