[Cocos 2 dx]cocos luacompileコマンドluaファイルの暗号化

2058 ワード

使い方の紹介
コマンド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                。

使用法
luacompile.sh暗号化スクリプトファイル
luacompile.sh      

PWD=`pwd`
COCOS='/Applications/Cocos2d-x/cocos2d-x-3.10/tools/cocos2d-console/bin/cocos'
rm  -rf  src_et
${COCOS} luacompile -s src -d src_et -e -k kBJMRK -b sTAMX --disable-compile

スクリプトコマンドの出力を実行します.
   luacompile     lua      XXTEA              。
            LuaJIT v2.0.3,                  iOS 64   。
     lua   。
    。

srcフォルダの下にあるluaファイルをsrc_に暗号化etフォルダの下にあります.luacファイル
コード解読
bool AppDelegate::applicationDidFinishLaunching()
{
...
    // set default FPS
    Director::getInstance()->setAnimationInterval(1.0 / 60.0f);

    // register lua module
    auto engine = LuaEngine::getInstance();
    ScriptEngineManager::getInstance()->setScriptEngine(engine);
    LuaStack* stack = engine->getLuaStack();
    stack->setXXTEAKeyAndSign("kBJMRK", strlen("kBJMRK"), "sTAMX", strlen("sTAMX"));

...

    #if COCOS2D_DEBUG
        if (engine->executeString("require('src/main')"))
    #else
        if (engine->executeString("require('src_et/main')"))
    #endif
        {
            return false;
        }
#endif

  return true;
}