アプリがまだ正常に動作するようにアプリケーションのアドレスを変更することは可能ですが、このアプリへのハッキング (メモリの読み取り/書き込みに基づく) はできませんか? 多分スタックか何かを移動しますか?
@updateランダム化ベースアドレスを探していません。アプリは引き続き機能するが、「ハックとボット」がメモリのこの部分を読み取ることができないように、実行中のアプリでアドレスを変更する方法を探しています。ASLR は私が探しているものではありません (バイパスするのは簡単です)
スタックを移動する前にメインに戻らない限り、スタックを移動するのは非常に困難です。スタック上の変数への参照またはポインタとして渡された変数は移動できません。そして、「まあ、すべてを動的に割り当てるだけです」と言う前に、まったく同じ問題が発生しました.HEAPは、予測可能な(少なくともある程度予測可能な)1つの場所にあり、したがって変更できます。そしてもちろん、ヒープが予測どおりに配置されていなくても、コードはヒープ内の他のデータへのポインターと参照に依存するため、実行中にヒープをランダムに移動することはできません。これらすべての参照を再配置する必要があります。最後に、既知の、または他の値から計算できるレジスタまたはメモリの場所がまだ残っています (例:
私の最善の提案は、ヒープでコードを生成し、それを使用して、ゲームで使用される結果を並列計算することです。
また、永続的な場所を回避する 1 つの方法は、動的に作成および破棄されるスレッドでコードを実行することです。この方法では、スタックは短時間だけ 1 つの場所に留まります。しかしもちろん、それはあなたの保護を回避する方法を見つけようとするスキルと決意を持った誰かを本当に止めるものではありません. そして、世界中の何百万人もの人々がコンピューターにアクセスでき、「何かに侵入する」ことができるため、「あいまいさによるセキュリティ」に本当に頼ることはできません [物事を複雑にすることはセキュリティではありません].
適切で安全な方法は、コードを保持するサーバー上ですべての重要な計算を実行することであり、コードは一般に公開されていません! ただし、FPS ゲームの場合、それはおそらく現実的ではありません。ポーカー ゲームの場合、特に上手にプレイして賞金を獲得できる場合は、非常に現実的です。