0

結合長NH3の反転確率などの分子クラス変数の値を、チートエンジンユーザーのような人々から(あまり遅くすることなく)保護するにはどうすればよいですか?

これは外部効果から保護しますか?

class molecule
{
public:
    molecule()
    {
    ...
    }
protected:
    int *bond_length;
    int *probability;
}

これは安全ですか?

class molecule
{
...
private:
    int *bond_length;
    int *probability;
}

上記のすべてがチートエンジンのようなソフトウェアに対して脆弱である場合、以下は論理的である可能性がありますか?

class molecule
{
public:
    molecule(){... ... ...}
...
...
    //still public
    int *bond_length_fake;
    int *bond_length;
    int *prob_fake;
    int *prob;
}
...
//somewhere in the program
void thread_real_to_fake(void * molecule_parameters)
{
    int bond_length_backup;
    molecule * param=(molecule *)molecule_parameters;
    while(working)
    {
        if((param->bond_length_fake)!=(param->bond_length))
        {
            param->bond_length_fake=param->bond_length;
        }
    }
    _endthread();

}

さて、これはそれを常に本物と等しくすることによって偽物を保護します。しかし、実際のものを保護する方法は?ランダムポインタを使用して実際の値を取得できますか?はいの場合、どうすればよいですか?

4

1 に答える 1

2

実行中のソフトウェアからコンピューターを保護することはできません。誰かがマシンを制御している場合、彼らはそれを自由に操作できます。これには、実行中のプログラムの状態の変更が含まれます。

最も安全な方法は、アクセスできない別のサーバーでプログラムを実行し、ネットワークを介して(たとえば、ブラウザウィンドウに)I/Oを転送することです。

編集:別の方法として、プログラムのエンジン部分を、別のユーザーとして実行されるサービスとして実行することもできます。これにより、ある程度の保護が提供されます。エンジンは、送信されたユーザー入力(キーストロークなど)が妥当な速度で入力されることを確認する必要があります。これにより、ある程度ルールを適用できますが、たとえば、クライアントでグラフィックスレンダリングを操作することにより、ユーザーが壁越しに見ることを妨げることはありません。

于 2012-08-07T08:05:01.120 に答える