6

Luaファイルから構成を取得するC ++で書かれたプログラム(小さなゲーム)があります(基本的にプログラムのモジュールです)。たとえば、プログラムはその名前、バージョン、許可されていることと許可されていないこと、プレーヤーが実行できることを Lua ファイルから取得します。問題は、この小さなゲームを数人に配布し始めたときに、Lua ファイルを構成できるようになりたくないので、それらを暗号化し、プログラムの起動時に復号化することを考えましたが、どのように概念を理解できないかです。実際にそれをどのように行うか。全体として、これは私が想像するようなかなり単純な作業ですか?

私の見方は次のとおりです。特定の暗号化方法で何らかのプログラムを使用して lua ファイルを暗号化します。最初に Lua ファイルを復号化してから読み取りを開始するプログラムに C++ コードを書き込みます。この概念は正しいですか?暗号化自体は、機能する限り、可能な限り弱くすることができます。

4

3 に答える 3

5

luac を使用することで、最終的にすべてを機能させることができました。

このフレーズを使用してコンパイルしましたluac(そこにtester.luaは、出力ファイルの名前とtest.luaコンパイルされたファイルがあります):

luac -o tester.lua test.lua

コンパイルされているかどうかに関係なく、すべて自動的に機能します。ここでの問題は、コンパイルされた lua ファイルをコンパイルされていないバージョンに置くことができ、dofile が通常の lua とコンパイルされた lua の両方を読み取るため、まだ機能することです。dofile がコンパイルされた lua ファイルのみを読み取り、コンパイルされていないファイルは読み取らないようにするための解決策として、あなたは何を提案しますか?

于 2013-11-07T22:09:17.423 に答える
4

はい、基本的にはそれだけです。

現時点で次のようなものがあると仮定します

runLuaFromFile("config.lua");

あなたがしたいだろう

  • テキストファイル「config.lua」をメモリにロードします(例:文字列として)
  • 文字列を復号化する
  • runLuaFromMemory(myString);

明らかにrunLuaFromFileandrunLuaFromMemoryは実際の関数ではなく、使用している Lua システムの単なるプレースホルダーです。

于 2013-11-07T15:15:37.210 に答える
3

ソースの代わりにプリコンパイルされた Lua ファイルを配布することで、目的には十分でしょう。を参照してくださいluac

于 2013-11-07T16:23:26.870 に答える