トップページ⇒tech
28コメント10KB

ネットワークゲームのチート対策

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
シングルプレイのゲームと比べて,
多大な影響を起こしてしまうネットワークゲームのチート。
どんな被害にあい,どんな対策を立てていますか?

まだまだ回線状態がよく無い今日,
サーバーで全てを処理させてしまう事は不可能なので,
クライアントでもある程度の処理はさせてあげないといけない。
そこにどうしてもスキが出来るのですが・・・
0002デフォルトの名無しさんNGNG
ちーとってなんですか?
0003デフォルトの名無しさんNGNG
>>2
たまには辞書を引きなさい。
0004デフォルトの名無しさんNGNG
説明してやってもいいが、ちーと面倒くさいな。
0005デフォルトの名無しさんNGNG
おおお。面白スレあげ。
0006デフォルトの名無しさんNGNG
つまらないよ。
0007デフォルトの名無しさんNGNG
>1
とりあえず、自分が知っていること書いてみてよ。
0008デフォルトの名無しさんNGNG
サーバーを立てないとネットワークゲームはできない。
00091NGNG
>>7
そうですね。

例えば,キャラクターが歩行する時,サーバーに歩行ルーチンを完全に持たせると,
安定した歩行にならない。
とすると,クライアントである程度歩行させる事になるのですが,
そこをチートされる可能性があります。
歩き当たり判定を外したり,高速歩行(V-SYNC待ちを外したり),色々・・・

この辺の問題に当たった人はいますか?

0010デフォルトの名無しさんNGNG
当然行き当たるけど、もっと情報クレ。出し惜しみすんなよー。
0011デフォルトの名無しさんNGNG
エバークエストをやって参照することがお勧め
今のところ一番まともな処理をしているリアルタイムネットワークRPGゲームだと思われ
0012デフォルトの名無しさんNGNG
ネットワークから自動アップデートをすることにして、
パッチ当て・改造チェックすれば、
プログラム改造系チートは防げるよな。

問題はキーマクロやネットワークを叩く手法なんだが・・・
あまりに異常な動作が見られた場合に
管理者がチェックを入れるという手法しか思いつかないなぁ。
0013デフォルトの名無しさんNGNG
公開鍵暗号かなんか使えへんの?
いや、よく考えずに言ってみただけだけど。
0014デフォルトの名無しさんNGNG
>>13
データ量激増
変換負荷激増
頻繁に細かくやりとりするとさらに激増

>>13みたいな馬鹿も激増
001513NGNG
すまん。
0016あげる人NGNG
面倒なことなんだなぁ。
がんばってくらはい。
0017デフォルトの名無しさんNGNG
どうでもいいが、>>4がものすごく寂しそうだ……。(/_;)
0018デフォルトの名無しさんNGNG
>>14
Ultima Online っつーネットゲーで実績ある手法なんだけどな。
アップデートサーバの負荷は馬鹿にならんとは思うけど、
ゲームの方がはるかに負荷が大きいから、
そんなこと言ってたらネットゲーは運用できん。

批判するより対策を考えてくれよぉぉぉぉぉぉぉぉぉぉぉぉぉぅ

>>13
ヲレもよーわからんけど、プログラムに対してMD5ハッシュ取って、
公開鍵暗号使って暗号化して、改竄不可にするってーのは無理なのかな。

あ、無理か・・・複号化ルーチンプログラム側に必要だもんな・・・
0019デフォルトの名無しさんNGNG
>>18
>ヲレもよーわからんけど、プログラムに対してMD5ヂnk">>>18
>ヲレもよーわからんけど、プログラムに対してMD5ハッシュ取って、
うーん、そもそも、ゲームにパッチ当てるような奴なら、
ハッシュルーチンにもパッチを当ててしまいそうだ。
0020デフォルトの名無しさんNGNG
うーむ。難しいね。
とりあえずミール見に行ってくるわ(見えるのか?)。
0021デフォルトの名無しさんNGNG
チートプログラムの原理が分かってないやつが多いから、
通信部分にばかり目がいく
0022デフォルトの名無しさんNGNG
>>9で言ってる事って、通信データを変更されるからまずいって言ってるの?
歩行ルーチンを改造されるから困るって言ってるんじゃないの?

暗号なんて関係ないような・・・・

俺もよくわかんねーけど、つまらん小細工をするなら、素直に
サーバに全部やらせた方が軽いなんて事にはならん?
ならんか。ハハハハハ、ケッ
00231NGNG
>>12
頻繁にクライアントを自動バージョンアップさせる事で,
クラックパッチをある程度防ぐ事が出来ますが,
それってユーザー怒らないですか?どうなんだろう。

>>22
通信データは,改ざんされても良いようにサーバー側でチェックしないといけないです。
基本的に,クライアントからの通信文は信用しない,というのが原則ですね。
通信の暗号化は,どんなに施しても復号したメモリ空間を覗いたらいいので意味がないけれど,
簡易なクラックを防ぐ為に処理の軽い暗号化を入れています。


0024デフォルトの名無しさんNGNG
>>>9で言ってる事って、通信データを変更されるからまずいって言ってるの?
>歩行ルーチンを改造されるから困るって言ってるんじゃないの?

だから、クライアントにパッチ当てまくりで直接の改造を阻止、
パケットの暗号化でパケットの改変を阻止の2段構えぢゃあ?
0025デフォルトの名無しさんNGNG
実際のUOで判明しているチート手法:
1.キー操作を高速化・自動化する(レベル上げに使う)
2.直接サーバのデータをいじる
3.パケットをいじる
この中でメジャーなのはどうも 1. みたいですよね。
2. 3. に比べて簡単ですし、不正アクセス法にもひっかからない。

1.の場合には、同じ場所で集中して反復的操作が行われた場合に、
管理者がチェックして警告を出し、場合によってはアカウントを
削除するそうです。
やっぱりプログラム的手法では管理しきれないのでしょうか。
0026デフォルトの名無しさんNGNG
プロセスメモリを直接いじられることへの対応策は?
0027デフォルトの名無しさんNGNG
iモードで作る。(……)
0028デフォルトの名無しさんNGNG
>>23
信頼されていない組織が運営していると、
ユーザーがハッキングや情報漏洩をおそれて利用してくれないかもしれない。
杞憂?

>>26
1.プロセスメモリはハッシュ取ってチェック(苦笑
これも >>1 さんや >>19 さんの言う理由で無理かな。

2.重要なデータ(キャラクタのHPとか)をサーバ管理にする
 ある程度は解決するかな。でも何かを見落としているような気がするな。はて。
※Diablo はクライアント側でデータを保存していたから
 チートされまくったそうで。

上に上がってる手段を全部複合させればある程度大丈夫だろうけど、
ひょっとしたらサーバ起動以外に究極的な方法はないのかも。
■ このスレッドは過去ログ倉庫に格納されています