スクリプト暗号化キーを使用してコンパイルする¶
エクスポートダイアログには、ゲームをリリースするときに、256ビットAESキーでスクリプトを暗号化するオプションがあります。これにより、スクリプトがプレーンテキストで保存されず、一部のスクリプトキディが簡単にリッピングできないようになります。もちろん、キーはバイナリに保存する必要がありますが、コンパイルされ、最適化されており、シンボルがなければ、それを見つけるのに多少の努力が必要です。
これが機能するためには、同じキーを使用してソースからエクスポートテンプレートを構築する必要があります。
ステップ・バイ・ステップ¶
HEXで256ビットAESキーを生成します。this service のaes-256-cbcバリアントを使用できます。
または、OpenSSLを使用して自分で生成することもできます:
openssl rand -hex 32 > godot.gdkey
The output in
godot.gdkey
should be similar to:aeb1bc56aaf580cc31784e9c41551e9ed976ecba10d315db591e749f3f64890f
出力をファイルにリダイレクトせずにキーを生成できますが、その方法でキーを公開するリスクを最小限に抑えることができます。
次のように、このキーをGodotのコンパイルに使用するコンソールの環境変数として設定します:
export SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
set SCRIPT_AES256_ENCRYPTION_KEY=your_generated_key
$env:SCRIPT_AES256_ENCRYPTION_KEY="your_generated_key"
Godotエクスポートテンプレートをコンパイルし、エクスポートプリセットオプションでカスタムエクスポートテンプレートとして設定します。
エクスポートプリセットの
スクリプト
タブで暗号化キーを設定します:プロジェクトをエクスポートします。ゲームは暗号化されたスクリプトで実行されるはずです。
考えられるエラー¶
以下のようなエラーが表示された場合、キーがGodotビルドに適切に含まれていなかったことを意味します。Godotはエクスポート中にスクリプトを暗号化しますが、実行時にそれらを読み取ることはできません。
ERROR: open_and_parse: Condition "String::md5(md5.digest) != String::md5(md5d)" is true. Returning: ERR_FILE_CORRUPT
At: core/io/file_access_encrypted.cpp:103
ERROR: load_byte_code: Condition ' err ' is true. returned: err
At: modules/gdscript/gdscript.cpp:755
ERROR: load: Condition ' err != OK ' is true. returned: RES()
At: modules/gdscript/gdscript.cpp:2135
ERROR: Failed loading resource: res://Node2D.gde
At: core/io/resource_loader.cpp:279
ERROR: poll: res://Node2D.tscn:3 - Parse Error: [ext_resource] referenced nonexistent resource at: res://Node2D.gd
At: scene/resources/scene_format_text.cpp:439
ERROR: load: Condition ' err != OK ' is true. returned: RES()
At: core/io/resource_loader.cpp:202
ERROR: Failed loading resource: res://Node2D.tscn
At: core/io/resource_loader.cpp:279
ERROR: Failed loading scene: res://Node2D.tscn
At: main/main.cpp:1727
WARNING: cleanup: ObjectDB Instances still exist!
At: core/object.cpp:2081
ERROR: clear: Resources Still in use at Exit!
At: core/resource.cpp:425