quick-3.5 打包加密的個人總結

對於quick-lua打包問題,在網上有很多文章介紹。可到了quick-lua 3.5 框架有很大的變化,以前的都不適用了。

最近從網上找了一些資料,總結記錄下來 ,僅供個人參考


###加密###

quick-lua 3.5

1. quick2.2.6和quick 3.3使用lua 5.1.5
2. 2dx的方案是,64位iOS使用lua 5.1.5,其他的平臺都使用luajit,所以如果編譯lua代碼,需要兩套
3. quick 3.5可以看做是2dx 3.5之上的一個插件,所以在這方面和2dx的方案是一樣的 


        因爲luajit不支持64位,iOS 64位上使用了lua。考慮到性能問題,其他所有的平臺(包含iOS 32位),使用了luajit。這意味着如果想讓一套lua腳本同時運行在iOS32位和64位設備上,那就不能使用lua字節碼,lua和luajit生成的字節碼是不兼容的。

        首先,爲什麼要用luajit呢?我能想到的原因有兩個,一是效率,二是加密。用luajit之後執行效率會有很大的提升,特別是在android下,另外呢luajit之後得到的文件是二進制的bytecode,基本無法反編譯,因此對於商業產品來說,提高了被反解的成本。

        那麼luajit與lua到底有什麼區別呢?從使用上來說沒有區別,因爲頭文件都是一致的,所以將lua換成luajit來說,有兩個步驟,一個是將頭文件換成luajit的,另外一個是將動態鏈接庫或者靜態鏈接庫也換成luajit的


加密命令

1.windows,android ios 確保不編譯代碼,只加密不編譯,安全性未知
cocos luacompile -s src/ -d out/src/ -e -k key123 -b sign123 --disable-compile 

2.未驗證通過(無法實現)
WIN:
compile_scripts.bat -i D:\MyGame\src -o D:\MyGame\res\game.zip  -e 
xxtea_zip -es key123 -ek sign123

MAC:

./compile_scripts.sh -i /Developer/MyGame/src -o /Developer/MyGame/res/game.zip  -e xxtea_zip -es key123 -ek sign123


AppDelegate.cpp 修改

stack->loadChunksFromZIP("res/game.zip");

stack->executeString("require 'main'");


解決辦法:待解決
1.修改quick-3.5框架,只使用lua不使用luajit,然後使用quick-3.3的加密工具加密 (犧牲性能,較可行)

2.更新quick-3.5 luajit庫 使用2.1版本支持ios 64位(目前只是alph版本)

3.升級到3.7支持ios 64 bytecode (這個行不通,已經驗證)


QQ羣:239759131 cocos 技術交流 歡迎您


發佈了28 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章