###前提・実現したいこと
Unityでオンラインゲームを作っています。
こちらを参考にさせていただき、「チートでメモリのデータ書き換え」に対処する処理を実装したいと思っています。ですがチートする側についてあまりわからないので、対処方法もわからない状態です。
そこで疑問に思ったのですが、例えば下記スクリプト(Character_Status)の変数HPがチート対象にされる場合、
0. このスクリプトをアタッチしたゲームオブジェクトがScene上にInstantiate()で生成されたと同時に、メモリ上に変数HPが割り当てられて、そのメモリの内容を見れるようになる と考えてもいいでしょうか?(内部ではnew演算子でオブジェクト用のメモリ領域をゲーム中に割り当てている?)
0. チートへの対処に、変数HPをXOR(排他的論理和)で暗号化するクラスを実装して、暗号化してメモリ上に置いたとしても、例えばダメージ計算処理過程で瞬間的に復号した変数HPから簡単に改竄できてしまう のでしょうか?
また、メモリのデータ書き換え対処方法について他に知っておくことがあれば教えて頂けるとありがたいです
質問が纏まっていませんがよろしくお願いします
###該当のソースコード
c#
1 2using UnityEngine; 3using System.Collections; 4using System; 5//ステータスクラス 6 public class Character_Status 7 { 8 public int HP; 9 } 10 11//変数をXOR(排他的論理和)で暗号・復号化するクラス 12public class Encrypt { 13 const int Key = 0x111; 14 int value; //実際にメモリに置かれる値 15 16 //暗号化 17 public void setvalue(int HP) 18 { 19 value = HP ^ Key; 20 } 21 22 //復号化 23 public int get_value() 24 { 25 return value ^ Key; 26 } 27}
###補足情報(言語/FW/ツール等のバージョンなど)
Unity5.3.5f(64bit)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/03 12:55
2016/11/03 15:46 編集
2016/11/04 01:38