5

このアンチチート手法は、プライベート サーバー (公開されていない実行可能ファイル) を使用するマルチプレイヤー ゲームで機能しますか?

クライアントがゲームを開始すると、毎日自動更新されます (ランチャーを使用)。サーバーも自分自身を更新します。実際のパッチがない限り、更新はゲームオブジェクトのメモリ レイアウト、ネットコード、およびシェーダーの変更のみで構成されます。これは、(C++) クラスを自動生成およびランダム化する自動システムを使用して行われます。おそらく、偽のオブジェクトを階層に追加して、オブジェクトの識別を難しくすることもできます。

このようにして、クラッカーよりも速くゲームを更新し、リバース エンジニアリング、更新、および新しいチートの公開/更新を行うことを望んでいます。

これは機能するのでしょうか、それともハッカーはこのメカニズムを回避できるのでしょうか? 彼らはこの作業を毎日行うでしょうか、それともある時点で自動化できるでしょうか? このシステムを改善するにはどうすればよいですか?

実行可能ファイルの関数呼び出しをたどり、そのコードからポインターオフセットを抽出することで、レイアウトを多かれ少なかれ簡単に抽出できるため、メモリレイアウトのランダム化は長期的には役に立たないようです。したがって、これを効率的に防ぐには、呼び出しの構造とコード自体もランダム化する必要があります。

それを行う良い方法はありますか?それは自動クラッキングに対してまったく機能していますか?

4

2 に答える 2

8

クライアント側の技術軍拡競争は、これを行うための完全に間違った方法です。時間に余裕のある大勢の子供たちよりも、上手になったり、速くなったりすることはありません。あなたの行動には時間とお金の両方がかかりますが、(宿題をしないことを除いて)コストのない攻撃者の大群と競争することはできません. これは、経済的にも最終的にも負けるレースです。

カンニングには 2 つの方法があります。

  1. 他の人が持っていない情報を得る (例えば、壁越しに見る)
  2. 他の人が手動で行わなければならないゲームプレイの自動化 (「ファーミング」)

人々がこれを行うのを防ぐには、正確に 2 つの方法があります。

  1. その情報をクライアントに提供するのをやめてください。サーバー上に保管してください。
  2. ゲームに楽しくない部分を持たせるのはやめましょう。人々は退屈な部分だけを自動化し、退屈するためにゲームをプレイしません。楽しくすれば、誰もそれを自動化しようとして時間を無駄にすることはありません。ゲームの自動化が必要な場合は、技術的にボットと戦うのではなく、ゲームを改善する方法をよく考えてください。

「クライアントは敵の手にある」という古いことわざを思い出してください。

于 2015-02-06T13:40:54.207 に答える
4

そのようなシステムが不正行為を回避することに成功するかどうかはわかりませんが、そのようなシステムの作成と維持については懸念があります。たとえば、あなたは言う

これは、(C++) クラスを自動生成およびランダム化する自動システムを使用して行われます。おそらく、偽のオブジェクトを階層に追加して、オブジェクトの識別を難しくすることもできます。

  • クラスをランダム化するとはどういう意味ですか? これは些細なことではありません。
  • フェイク オブジェクトは最終的に発見されます (デッド コード)

とにかく、パフォーマンスの低下や完全に間違った計算 (フロート計算など) などの重大な欠点なしに、コードの重要な部分で何らかの効率的な難読化を実行できるとは思えません。同じ値を計算するための 2 つの異なるメカニズムがある場合、同じ入力セットに対して最終的に異なる結果が得られます。

于 2015-02-06T14:04:35.670 に答える