1. 程式人生 > >Cocos2d-x Lua引擎製作的遊戲程式碼加密

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!