オンラインゲーム/ソーシャルゲームに焦点を置いて、考え方的なものを。
はじめに
**※※※ オンラインゲーム/ソーシャルゲームでチートはされます、完全に防ぐ事は出来ません(キリッ※※※ **
チートとは
簡単に言うと、 「ゲームの不正改造」 です。
100人のユーザーが入れば、その内の1%に知識/技術を持った人が居たとしてもおかしくはありません。
チートの手段
-
パケットハック
クライアントーサーバ間でやりとりするパケットデータをハッキングし数値を書き換える方法。
理論値を超えた値を送る人も入れば、理論値ギリギリの値を送る事も可能なので、判別しにくい。
(例)
プレイヤーがモンスターに攻撃するシーンで、ダメージをクライアント側でダメージを計算し、
サーバーに送っていれば、その「ダメージ」を意図的に変更する事が可能 -
メモリ/セーブデータハック
バイナリエディタを使用して、数値を書き換える方法。
クライアントで扱っている全ての数値を書き換えられる事が可能。
(例)
攻撃力の変数の場所が分かったとして FF(16) -> 255(10) に変更出来てしまう。
対策ってあるの?
簡単に言うと、クライアント側で計算を行わない。
『サーバー側』で全ての計算を行い、結果だけを『クライアント側』に送る。